
    @OOf7"                    t   d dl mZ d dlZd dlZd dlmZ d dlmZ d dlZd dl	m
Z
 d dl	mZ d dlmZ d dlmZ d d	lmZ d
Zd Zd Z G d dej&                        Z G d dej*                        Z G d dej.                        Z G d dej2                        Z G d dej6                  ej8                        Zy)    )annotationsN)Sequence)Optional)
exceptions)
optmanager)layoutwidget)overlay)signals   c                    | j                   ry| j                  t        t        t        t           t        t           fv ryy )NFT)choicestypespecstrintr   )opts    `/var/www/premiumrankchecker/venv/lib/python3.12/site-packages/mitmproxy/tools/console/options.pycan_edit_inplacer      s2    
{{
||S(3-#?? @    c                L    t        |       } d|t        j                  || f      fS )Nfixed)r   urwidText)swidthattrs      r   fcolr      s%    AAUEJJay122r   c                  6     e Zd Z fdZd Zd Zd Zd Z xZS )
OptionItemc                    |||c| _         | _        | _        || _        || _        t
        |   d        | j                         | _        y N)	walkerr   focused	namewidtheditingsuper__init__
get_widget_w)selfr!   r   r"   r#   r$   	__class__s         r   r&   zOptionItem.__init__    sB    .4c7+TXt|"//#r   c           	     d   | j                   j                         }| j                   j                  t        k(  r|rdnd}nL|sd}nG| j                   j                  t        t
           k(  rt        j                  |d      }nt        |      }| j                  j                  j                  j                  | j                   j                        }| j                  r|rdnd}n|rdnd	}| j                  rt        j                   |
      }n?t        j"                  t        j$                  t        j&                  ||fg            |      }t        j(                  | j*                  t        j&                  d| j                   j                  j-                  | j*                        fg      f|gdd      S )Ntruefalse    )indentoption_active_selectedoption_selectedoption_activetext)	edit_texttitle   )dividecharsfocus_column)r   currentr   boolr   r   pprintpformatr!   masteroptionshas_changednamer"   r$   r   EditAttrMapPaddingr   Columnsr#   ljust)r)   val
displayvalchangedvalstylevalws         r   r'   zOptionItem.get_widget'   sI   hh 88$#&GJJXX(3-/A6JSJ++$$,,88G<<3:/@QH*1vH<<::
3D==ejj8Z*@)ABCXD }} NNJJ$((--*=*=dnn*M NOP  

 
	
r   c                <    | j                   d   j                         S Nr/   )r(   get_edit_textr)   s    r   rN   zOptionItem.get_edit_textK   s    wwqz''))r   c                     yNT rO   s    r   
selectablezOptionItem.selectableN   s    r   c                ^    | j                   r | j                  d   j                  ||       y |S rM   )r$   r(   keypress)r)   sizekeys      r   rU   zOptionItem.keypressQ   s)    <<GGAJc*
r   )	__name__
__module____qualname__r&   r'   rN   rS   rU   __classcell__r*   s   @r   r   r      s    $"
H*r   r   c                  R    e Zd ZddZd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 ZddZy)OptionListWalkerc                p   || _         || _        d| _        d | _        t	        |j
                  j                               | _        t        d | j                  D              | _	        d| _
        | j                  d       | j                   j
                  j                  j                  | j                         y )Nr   c              3  2   K   | ]  }t        |        y wr    len.0is     r   	<genexpr>z,OptionListWalker.__init__.<locals>.<genexpr>a        4Q#a&4   F)r>   help_widgetindexfocusobjsortedr?   keysoptsmaxmaxlenr$   	set_focusrI   connectsig_mod)r)   r>   ri   s      r   r&   zOptionListWalker.__init__Y   s    &
6>>..01	4$))44q##++DLL9r   c                    t        | j                  j                  j                               | _        t        d | j                  D              | _        | j                          | j                  | j                         y )Nc              3  2   K   | ]  }t        |        y wr    ra   rc   s     r   rf   z+OptionListWalker.sig_mod.<locals>.<genexpr>h   rg   rh   )
rl   r>   r?   rm   rn   ro   rp   	_modifiedrq   rj   )r)   argskwargss      r   rs   zOptionListWalker.sig_modf   sQ    4;;..3356	4$))44tzz"r   c                t    d| _         | j                  | j                  d      | _        | j	                          y rQ   )r$   _getrj   	focus_objrv   rO   s    r   start_editingzOptionListWalker.start_editingl   s)    4::t4r   c                    d| _         | j                  | j                  d      | _        | j	                  | j                         | j                          y NF)r$   rz   rj   r{   rq   rv   rO   s    r   stop_editingzOptionListWalker.stop_editingq   s9    4::u5tzz"r   c                6    | j                   j                         S r    )r{   rN   rO   s    r   rN   zOptionListWalker.get_edit_textw   s    ~~++--r   c                    | j                   |   }| j                  j                  j                  |   }t	        | ||| j
                  k(  | j                  |      S r    )rn   r>   r?   _optionsr   rj   rp   )r)   posr$   rA   r   s        r   rz   zOptionListWalker._getz   sI    yy~kk!!**40$SDJJ%6WMMr   c                2    | j                   | j                  fS r    )r{   rj   rO   s    r   	get_focuszOptionListWalker.get_focus   s    ~~tzz))r   c                D   d| _         | j                  |   }| j                  j                  j                  |   }|| _        | j                  | j
                  | j                         | _        | j                  j                  |j                         | j                          y r~   )r$   rn   r>   r?   r   rj   rz   r{   ri   update_help_texthelprv   )r)   rj   rA   r   s       r   rq   zOptionListWalker.set_focus   st    yykk!!**40
4::t||<))#((3r   c                l    |t        | j                        dz
  k\  ry|dz   }| j                  |d      |fS )Nr/   NNF)rb   rn   rz   r)   r   s     r   get_nextzOptionListWalker.get_next   s9    #dii.1$$Agyye$c))r   c                @    |dz
  }|dk  ry| j                  |d      |fS )Nr/   r   r   F)rz   r   s     r   get_prevzOptionListWalker.get_prev   s+    Ag7yye$c))r   c                    |r't        t        t        | j                                    S t        t        | j                              S r    )reversedrangerb   rn   )r)   reverses     r   	positionszOptionListWalker.positions   s0    E#dii.122TYY((r   Nri   
OptionHelp)F)rX   rY   rZ   r&   rs   r|   r   rN   rz   r   rq   r   r   r   rR   r   r   r^   r^   X   s:    :#
.N
***)r   r^   c                  0     e Zd Zd fdZd Z fdZ xZS )OptionsListc                h    || _         t        ||      | _        t        |   | j                         y r    )r>   r^   r!   r%   r&   )r)   r>   ri   r*   s      r   r&   zOptionsList.__init__   s)    &v{;%r   c                    	 t        j                  | j                  j                  |       y # t        j
                  $ r3}t        j                  j                  t        |             Y d }~y d }~ww xY w)Nmessage)
r   saver>   r?   r   OptionsErrorr
   status_messagesendr   )r)   pathes      r   save_configzOptionsList.save_config   sS    	8OODKK//6&& 	8""''A'77	8s   *- A3 )A..A3c                   | j                   j                  r|dk(  r| j                         \  }}| j                   j                         }	 | j                  j
                  j                  |j                  j                   d|        | j                   j                          y |dk(  r| j                   j                          y |dk(  r-| j!                  d       | j                   j#                          n|dk(  rM| j!                  t%        | j                   j&                        dz
         | j                   j#                          nO|d	k(  rI| j                         \  }}|j                  j(                  t*        k(  re | j                  j
                  j-                  |j                  j                                | j!                  | j                   j.                         nt1        |j                        r6| j                   j3                          | j                   j#                          ni|j                  j4                  r| j                  j7                  t7        j8                  | j                  |j                  j                  |j                  j4                  |j                  j;                         | j                  j
                  j=                  |j                  j                                     n|j                  j(                  t>        t           k(  rq| j                  j7                  t7        j@                  | j                  |j                  j                  |j                  j;                         tB        d
z         d       n
tE               tF        |   ||      S # t        j                  $ r4}t        j                  j                  t        |             Y d }~ad }~ww xY w)Nenter=r   escm_startr   m_endr/   m_selectr   top)valign)%r!   r$   r   rN   r>   r?   setr   rA   r   r   r
   r   r   r   r   rq   rv   rb   rn   r   r;   togglerrj   r   r|   r   r	   Chooserr:   setterr   OptionsOverlayHELP_HEIGHTNotImplementedErrorr%   rU   )r)   rV   rW   focidxvr*   s         r   rU   zOptionsList.keypress   s   ;;g~>>+SKK--/@KK''++sww||nAaS,AB ((*((*iq!%%'s4;;#3#34q89%%'
">>+S77##t+=DKK''//=?NN4;;#4#45%cgg.KK--/KK))+WW__KK'' KKGGLLGGOOGGOO- KK//66sww||D WW%%#6KK''.. KKGGLLGGOO-'!O	  % (  .//wc**[ ".. @**//A/??@s   >N( (O/;)O**O/r   )rX   rY   rZ   r&   r   rU   r[   r\   s   @r   r   r      s    &
84+ 4+r   r   c                  2     e Zd Z fdZd Zd ZddZ xZS )r   c                r    || _         t        | 	  | j                  d             | j	                  d       y )Nr.   F)r>   r%   r&   widget
set_active)r)   r>   r*   s     r   r&   zOptionHelp.__init__   s+    R)r   c                p    t        j                  d      }|rdnd}t        j                  ||      | _        y )NzOption Helpheadingheading_inactive)r   r   AttrWrapheader)r)   rG   hstyles       r   r   zOptionHelp.set_active   s,    JJ}% 	&8nnQ.r   c                    | j                   j                  j                         \  }}t        j                  t        j                  ||      D cg c]  }t        j                  |       c}      S c c}w r    )r>   uiget_cols_rowsr   ListBoxtextwrapwrapr   )r)   txtcols_re   s        r   r   zOptionHelp.widget   sL    ++....0a}}X]]35MNejjmNOONs   A2c                D    | j                  | j                  |             y r    )set_bodyr   )r)   r   s     r   r   zOptionHelp.update_help_text   s    dkk#&'r   )r   r   returnNone)rX   rY   rZ   r&   r   r   r   r[   r\   s   @r   r   r      s    
/
P(r   r   c                  >     e Zd ZU d ZdZded<    fdZd Zd Z xZ	S )Optionsr?   r   focus_positionc                    t        |      }t        ||      | _        t        |   | j                  t
        |fg       || _        y r    )r   r   optionslistr%   r&   r   r>   )r)   r>   ohr*   s      r   r&   zOptions.__init__   sH    &vr2  b!	
 r   c                h    | j                   j                         \  }}|j                  j                  S r    )r   r   r   rA   )r)   r   r   s      r   current_namezOptions.current_name  s(    ##--/Sww||r   c                   |dk(  rW| j                   dz   t        | j                        z  | _         | j                  d   j                  | j                   dk(         d }d }t        |      dk(  r| j	                  |d      }| j                  j                  | j                        }| j                  ||d|      }| j                  j                  ||      S )Nm_nextr/   r7   T)focus)	r   rb   widget_listr   get_item_rowsrj   
focus_itemget_item_sizerU   )r)   rV   rW   	item_rowsre   tsizes         r   rU   zOptions.keypress	  s    (?#'#6#6#:c$BRBR>S"SDQ**4+>+>!+CDC 	t9>**4t*<I""4??3""4D)<''s33r   )
rX   rY   rZ   r6   keyctx__annotations__r&   r   rU   r[   r\   s   @r   r   r      s"    EF	4r   r   )
__future__r   r<   r   collections.abcr   typingr   r   	mitmproxyr   r   mitmproxy.tools.consoler   r	   r
   r   r   r   
WidgetWrapr   
ListWalkerr^   r   r   Framer   PileLayoutWidgetr   rR   r   r   <module>r      s    "   $       0 + +3
6!! 6rC)u'' C)L@+%-- @+F( (&"4ejj,33 "4r   