
    kj!                    v   d dl mZ d dl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 G d dej$                        Z G d dej(                        Z G d dej,                        Z G d dej0                        Z G d dej4                  ej6                        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    h/home/ubuntu/.cache/pipx/cdb5059130eadca/lib/python3.12/site-packages/mitmproxy/tools/console/options.pycan_edit_inplacer      s2    
{{
||S(3-#?? @    c                  6     e Zd Z fdZd Zd Zd Zd Z xZS )
OptionItemc                    |||c| _         | _        | _        || _        || _        t
        |   | j                                y N)walkerr   focused	namewidtheditingsuper__init__
get_widget)selfr   r   r   r   r   	__class__s         r   r   zOptionItem.__init__   s;    .4c7+TXt|"*+r   c           	     b   | j                   j                         }| j                   j                  t        u 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   urwidEditAttrMapPaddingText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&   )_wget_edit_textr    s    r   rH   zOptionItem.get_edit_textF   s    wwqz''))r   c                     yNT rI   s    r   
selectablezOptionItem.selectableI   s    r   c                ^    | j                   r | j                  d   j                  ||       y |S rF   )r   rG   keypress)r    sizekeys      r   rO   zOptionItem.keypressL   s)    <<GGAJc*
r   )	__name__
__module____qualname__r   r   rH   rM   rO   __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>\        4Q#a&4   F)r5   help_widgetindexfocusobjsortedr6   keysoptsmaxmaxlenr   	set_focusrB   connectsig_mod)r    r5   rc   s      r   r   zOptionListWalker.__init__T   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   r[   r]   s     r   r`   z+OptionListWalker.sig_mod.<locals>.<genexpr>c   ra   rb   )
rf   r5   r6   rg   rh   ri   rj   	_modifiedrk   rd   )r    argskwargss      r   rm   zOptionListWalker.sig_moda   sQ    4;;..3356	4$))44tzz"r   c                t    d| _         | j                  | j                  d      | _        | j	                          y rK   )r   _getrd   	focus_objrp   rI   s    r   start_editingzOptionListWalker.start_editingg   s)    4::t4r   c                    d| _         | j                  | j                  d      | _        | j	                  | j                         | j                          y NF)r   rt   rd   ru   rk   rp   rI   s    r   stop_editingzOptionListWalker.stop_editingl   s9    4::u5tzz"r   c                6    | j                   j                         S r   )ru   rH   rI   s    r   rH   zOptionListWalker.get_edit_textr   s    ~~++--r   c                    | j                   |   }| j                  j                  j                  |   }t	        | ||| j
                  k(  | j                  |      S r   )rh   r5   r6   _optionsr   rd   rj   )r    posr   r8   r   s        r   rt   zOptionListWalker._getu   sI    yy~kk!!**40$SDJJ%6WMMr   c                2    | j                   | j                  fS r   )ru   rd   rI   s    r   	get_focuszOptionListWalker.get_focusz   s    ~~tzz))r   c                D   d| _         | j                  |   }| j                  j                  j                  |   }|| _        | j                  | j
                  | j                         | _        | j                  j                  |j                         | j                          y rx   )r   rh   r5   r6   r|   rd   rt   ru   rc   update_help_texthelprp   )r    rd   r8   r   s       r   rk   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)r\   rh   rt   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)rt   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ranger\   rh   )r    reverses     r   	positionszOptionListWalker.positions   s0    E#dii.122TYY((r   Nrc   
OptionHelp)F)rR   rS   rT   r   rm   rv   ry   rH   rt   r   rk   r   r   r   rL   r   r   rX   rX   S   s:    :#
.N
***)r   rX   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   )r5   rX   r   r   r   )r    r5   rc   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   saver5   r6   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#                          nd|d	k(  r^| j                         \  }}|j                  j(                  t*        u re | j                  j
                  j-                  |j                  j                                | j!                  | j                   j.                         nt1        |j                        r6| j                   j3                          | j                   j#                          n|j                  j4                  r| j                  j7                  t7        j8                  | j                  |j                  j                  |j                  j4                  |j                  j;                         | j                  j
                  j=                  |j                  j                                     n|j                  j(                  t>        t           t@        j>                  t           fv rq| j                  j7                  t7        jB                  | j                  |j                  j                  |j                  j;                         tD        d
z         d       n
tG               tH        |   ||      S # t        j                  $ r4}t        j                  j                  t        |             Y d }~vd }~ww xY w)Nenter=r   escm_startr   m_endr&   m_selectr   top)valign)&r   r   r   rH   r5   r6   setr   r8   r   r   r
   r   r   r   ry   rk   rp   r\   rh   r   r2   togglerrd   r   rv   r   r	   Chooserr1   setterr   typingOptionsOverlayHELP_HEIGHTNotImplementedErrorr   rO   )r    rP   rQ   focidxvr!   s         r   rO   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%%(3-9M)NNKK''.. KKGGLLGGOO-'!O	  % (  .//wc**[ ".. @**//A/??@s   >N= =P)O??Pr   )rR   rS   rT   r   r   rO   rU   rV   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)r5   r   r   widget
set_active)r    r5   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)r9   r=   r;   header)r    r@   hstyles       r   r   zOptionHelp.set_active   s,    JJ}% 	&8mmAu-r   c                    | j                   j                  j                         \  }}t        j                  t        j                  ||      D cg c]  }t        j                  |       c}      S c c}w r   )r5   uiget_cols_rowsr9   ListBoxtextwrapwrapr=   )r    txtcols_r_   s        r   r   zOptionHelp.widget   sL    ++....0a}}X]]35MNejjmNOONs   A2c                0    | j                  |      | _        y r   )r   body)r    r   s     r   r   zOptionHelp.update_help_text   s    KK$	r   )r   r   returnNone)rR   rS   rT   r   r   r   r   rU   rV   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 )Optionsr6   r   focus_positionc                    t        |      }t        ||      | _        t        |   | j                  t
        |fg       || _        y r   )r   r   optionslistr   r   r   r5   )r    r5   ohr!   s      r   r   zOptions.__init__   sH    &vr2  b!	
 r   c                h    | j                   j                         \  }}|j                  j                  S r   )r   r   r   r8   )r    r   r   s      r   current_namezOptions.current_name   s(    ##--/Sww||r   c                t   |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                   d|      }| j                  j                  ||      S )Nm_nextr&   r.   T)focus)r   r\   widget_listr   get_item_rowsget_item_sizer   rO   )r    rP   rQ   	item_rowstsizes        r   rO   zOptions.keypress  s    (?#'#6#6#:c$BRBR>S"SDQ**4+>+>!+CDC 	t9>**4t*<I""4)<)<dINzz""5#..r   )
rR   rS   rT   r-   keyctx__annotations__r   r   rO   rU   rV   s   @r   r   r      s"    EF	/r   r   )
__future__r   r3   r   r   collections.abcr   r   r9   	mitmproxyr   r   mitmproxy.tools.consoler   r	   r
   r   r   
WidgetWrapr   
ListWalkerrX   r   r   Framer   PileLayoutWidgetr   rL   r   r   <module>r      s    "    $       0 + +5!! 5pC)u'' C)L@+%-- @+F% %&!/ejj,33 !/r   