
    F\hB'                    H   S SK Jr  S SKJrJr  S SKrSSKJrJrJ	r	  SSK	J
r
  \R                  r SSS jjr\R                   " S5      rSS	 jrSS
 jrSS jr            SS jr " S S\R                  5      r " S S\R.                  5      r\ " S S\
5      5       rg)    )annotations)	dataclassfieldN   )commandsconsolereader)Readerc                    0 nUn  U  H
  nSX$U   '   M     [        U5      S:  a  U S   X $ US-  n0 nM/  ! [         a
    U S   X s $ f = fNr   r   )len
IndexError)wordlistjdiwords        0/usr/lib/python3.13/_pyrepl/completing_reader.pyprefixr   $   sv    
A	A	  q'
 !1vz{1''FAA    {1 s   &6 	6 A
	A
z&\x1B\[([0-9]{1,3}(;[0-9]{1,2})?)?[m|K]c                .    [         R                  SU 5      $ )N )STRIPCOLOR_REGEXsubss    r   
stripcolorr   6   s    A&&    c                *    [        [        U 5      5      $ N)r   r   r   s    r   real_lenr    :   s    z!}r   c                l    [        U 5      n[        U5      U:  a  US U $ U[        U5      -
  nU SU-  -   $ )N )r   r   )r   maxlenstrippedpaddings       r   
left_alignr&   >   s@    !}H
8}v  s8}$Gs7{?r   c           	     f   U(       a  SnSnOSnSn[        [        [        [        U5      5      U R                  U-
  5      n[        U R                  Xv-   -  5      n[        [        U5      S-
  U-  S-   5      n	U(       a[  X-  [        U5      -
  n
US/U
-  -   n[        [        U5      5       Vs/ s H  oU-  U	-  X-  -   PM     nnU Vs/ s H  oU   PM	     nn/ nUn[        U	5       H  n/ n[        U5       H9  nUR                  U[        X   U5      -  5        US-  nU[        U5      :  d  M9    O   UR                  SR                  U5      5        U[        U5      :  a  Sn  X4$ US-   U R                  :  d  M  UR                  S	[        U5      U-
  -  5          X4$    X4$ s  snf s  snf )
Nz[ %s ]   z%s     r   r   r      z   %d more... )minmaxmapr    widthintr   rangeappendr&   joinheight)consr   startuse_bracketssort_in_columnitemr%   r#   colsrowsmissingr   indexesmenurrowcols                    r   
build_menurA   G   s    S8,-tzzG/CDFtzzV-./DH!4'!+,D )c(m+rd7l*:?H:NO:NQH$qy0:NO)01AQK1DA4[;CJJtjf==>FACM!	 
 	BGGCL!HA 7N q54;;KK(CMA,=>?7N  7N% P1s   .F)
F.c                      \ rS rSrSS jrSrg)complete   c                z   U R                   nUR                  U R                  5      nUR                  nU=(       a    UnUR	                  5       nU(       d  UR                  U5      Ul        UR                  nU(       d  UR                  S5        g [        U5      S:X  aQ  U(       a)  [        US   5      [        U5      :X  a  SUl	        SUl
        UR                  US   [        U5      S  5        g [        U[        U5      5      nU(       a  UR                  U5        U(       aY  SUl        SUl        [        UR                   XaR"                  UR$                  UR&                  5      u  Ul        Ul        SUl
        g UR                  (       d-  SUl        XW-   U;   a  SUl	        SUl
        g SUl	        SUl
        g g )	Nz
no matchesr   r   z[ sole completion ]TFz[ complete but not unique ]z[ not unique ])r	   last_command_is	__class__assume_immutable_completionsget_stemget_completionscmpltn_menu_choiceserrorr   msgdirtyinsertr   cmpltn_menu_visiblecmpltn_message_visiblerA   r   cmpltn_menu_endr6   r7   cmpltn_menu)selfr>   last_is_completerimmutable_completionscompletions_unchangablestemcompletionsps           r   docomplete.do   sh   KK--dnn= ! > >"3"M8Mzz|&$%$5$5d$;A!++GGL!"&3{1~+>#d)+K-HH[^CIJ/0{CI.A (,%+0(3=II{,=,=NNA$4$4460q0 **+/(8{*9AE"AG,AE"AG +r    NreturnNone__name__
__module____qualname____firstlineno__r[   __static_attributes__r]   r   r   rC   rC      s    $#r   rC   c                      \ rS rSrSS jrSrg)self_insert   c                   U R                   n[        R                  R                  U 5        UR                  (       a  UR                  5       n[        U5      S:  a  UR                  5         g UR                   Vs/ s H  nUR                  U5      (       d  M  UPM     nnU(       a;  [        UR                  USUR                  UR                  5      u  Ul        Ul        g UR                  5         g g s  snf r   )r	   r   rh   r[   rP   rI   r   cmpltn_resetrK   
startswithrA   r   r6   r7   rS   rR   )rT   r>   rX   wrY   s        r   r[   self_insert.do   s    KK%  ::<D4y1} *+*?*? 6*?Q"#,,t"4  !*? 67A		;(8(88:4AM1#4 NN$ !
6s   ;C5C5r]   Nr^   ra   r]   r   r   rh   rh      s    %r   rh   c                  
  ^  \ rS rSr% SrSrSrSr\" SS9r	S\
S'   \" SS9rS\
S	'   \" SS9rS\
S
'   \" SS9rS\
S'   \" SS9rS\
S'   SU 4S jjrSU 4S jjrSU 4S jjrSU 4S jjrSU 4S jjrSS jrSS jrSS jrSrU =r$ )CompletingReader   zAdds completion supportTF)init	list[str]rS   boolrP   rQ   r/   rR   rK   c                   > [         TU ]  5         U R                  5         [        [        4 HC  nXR
                  UR                  '   XR
                  UR                  R                  SS5      '   ME     g )N_-)super__post_init__rk   rC   rh   r   rb   replace)rT   crG   s     r   ry   CompletingReader.__post_init__   sV    K(A()MM!**%:;MM!**,,S#67 )r   c                &   > [         TU ]  5       S-   $ )N))z\trC   )rx   collect_keymaprT   rG   s    r   r~   CompletingReader.collect_keymap   s    w%' +" " 	"r   c                |   > [         TU ]  U5        [        U[        [        45      (       d  U R                  5         g g r   )rx   after_command
isinstancerC   rh   rk   )rT   cmdrG   s     r   r   CompletingReader.after_command   s3    c"#+677 8r   c                  > [         TU ]  5       nU R                  (       aj  U R                  S   S-   nU R                  XU& U R
                  [        U R                  5      :w  a'  S/ 4/[        U R                  5      -  U R                  X"& U$ r   )	rx   calc_screenrP   lxyrS   posr   buffer
screeninfo)rT   screenlyrG   s      r   r   CompletingReader.calc_screen  sy    $&##!qB ,,FbM
 xx3t{{+++,b'3t7G7G3H)H&r   c                B   > [         TU ]  5         U R                  5         g r   )rx   finishrk   r   s    r   r   CompletingReader.finish  s    r   c                J    / U l         SU l        SU l        SU l        / U l        g )NFr   )rS   rP   rQ   rR   rK   )rT   s    r   rk   CompletingReader.cmpltn_reset  s*    #( &+# #% r   c                6   U R                   n[        R                  nU R                  nU R                  S-
  nUS:  a=  UR                  X4   U5      U:X  a%  US-  nUS:  a  UR                  X4   U5      U:X  a  M%  SR                  X4S-   U R                   5      $ )Nr   r   r   )syntax_tabler	   SYNTAX_WORDr   r   getr2   )rT   stSWbrZ   s        r   rI   CompletingReader.get_stem  s    KKHHqL1fb)R/FA 1fb)R/wwq1TXX''r   c                    / $ r   r]   )rT   rX   s     r   rJ    CompletingReader.get_completions&  s    	r   )rS   rK   rR   rP   rQ   r^   )r_   z'tuple[tuple[KeySpec, CommandName], ...])r   Commandr_   r`   )r_   rs   )r_   str)rX   r   r_   rs   )rb   rc   rd   re   __doc__rH   r6   r7   r   rS   __annotations__rP   rQ   rR   rK   ry   r~   r   r   r   rk   rI   rJ   rf   __classcell__)rG   s   @r   rp   rp      s    ! $( LN #.K. %5 11#(e#4D4 e,OS,%*%66<" 
&( r   rp   )r   )r   rs   r   r/   r_   r   )r   r   r_   r   )r   r   r_   r/   )r   r   r#   r/   r_   r   )r4   zconsole.Consoler   rs   r5   r/   r6   rt   r7   rt   r_   ztuple[list[str], int])
__future__r   dataclassesr   r   rer   r   r   r	   r
   r   typesKeySpecCommandNamer   compiler   r   r    r&   rA   rC   rh   rp   r]   r   r   <module>r      s   * # ( 	 ' '  

  ::GH '--- - 	-
 - -~%#x %#P%(&& %* Cv C Cr   