
    F\hN                       % S r SSKJr  SSKrSSKJrJr  SSKrSSKJ	r	  SSK
r
SSKJr  SSKJrJr  SS	KJr  SS
KJr  S\S'   S\S'    SSKJrJr  \
R:                  " 5       =(       d    Sr\R>                  rSSK J!r!J"r"  SSK#J$r$JrJ%r%J&r&  Sr'\'(       a  SSK(J)r)J*r*  \!\+/\,4   r-/ SQr.\ " S S5      5       r/\" SS9 " S S\R`                  \5      5       r1S.S jr2S/S jr3S0S jr4S1S  jr5S2S! jr6 " S" S#\R>                  5      r7 " S$ S%\R>                  5      r8\" SS&9 " S' S(5      5       r9\9" 5       r:\:Rv                  r;\:Rx                  r<\:Rz                  r=\:R|                  r>\:R~                  r?\:R                  r@\:R                  rA\:R                  rB\:R                  rC\:R                  rD\:R                  rE\:R                  rF\:R                  rG\:R                  rH\:R                  rI\:R                  rJ\:R                  rK\:R                  rL\:R                  rM\:R                  rN\:R                  rO\:R                  rQS3S) jrRS* H!  u  rSrT\S\U" 5       ;  d   \S5       e\R" \S\T5        M#     S4S+ jrVSqWS,\S-'   g! \ a    SSKJrJr   GN4f = f)5zA compatibility wrapper reimplementing the 'readline' standard module
on top of pyrepl.  Not all functionalities are supported.  Contains
extensions for multiline input.
    )annotationsN)	dataclassfield)gethistoryfile)	Completer   )commandshistorical_reader)CompletingReader)Consoleztype[ConsoleType]r   z-tuple[type[Exception], ...] | type[Exception]_error)UnixConsoler   )WindowsConsoler   latin1)Callable
Collection)Callbackr   KeySpecCommandNameF)AnyMapping)add_historyclear_history
get_begidxget_completerget_completer_delimsget_current_history_length
get_endidxget_history_itemget_history_lengthget_line_bufferinsert_textparse_and_bindread_history_fileremove_history_itemreplace_history_itemset_auto_historyset_completerset_completer_delimsset_history_lengthset_startup_hookwrite_history_filemultiline_inputc                  >    \ rS rSr% SrS\S'   \" S5      rS\S'   Srg)	ReadlineConfigb   NCompleter | Nonereadline_completerz! 	
`~!@#$%^&*()-=+[{]}\|;:'",<>/?zfrozenset[str]completer_delims )	__name__
__module____qualname____firstlineno__r2   __annotations__	frozensetr3   __static_attributes__r4       '/usr/lib/python3.13/_pyrepl/readline.pyr/   r/   b   s    +/(/'01X'YnYr<   r/   T)kw_onlyc                     ^  \ rS rSr% SrSrSrS\S'   SrS\S'   Sr	S	\S
'   SU 4S jjr
SSS jjrSS jrSS jrSS jrSS jrSU 4S jjrSU 4S jjrSrU =r$ )ReadlineAlikeReaderh   FTr/   configNzMoreLinesCallable | None
more_lines
str | Nonelast_used_indentationc                   > [         TU ]  5         [        U R                  S'   [        U R                  S'   [        U R                  S'   [        U R                  S'   g )Nmaybe_acceptmaybe-acceptbackspace_dedentbackspace-dedent)super__post_init__rG   r	   rI   self	__class__s    r=   rL   !ReadlineAlikeReader.__post_init__t   sH    (4n%(4n%,<(),<()r<   c                    g Nr4   )rN   msgs     r=   errorReadlineAlikeReader.error{       r<   c                    U R                   nU R                  S-
  nU R                  R                  nUS:  a  X   U;  a  US-  nUS:  a
  X   U;  a  M  SR	                  XS-   U R                   5      $ )Nr   r    )bufferposrB   r3   join)rN   bpr3   s       r=   get_stemReadlineAlikeReader.get_stem~   sq    KKHHqL;;771f%55FA 1f%55wwqQ*++r<   c                   [        U5      S:X  ai  U R                  b\  U R                  nU R                  nUS:  a#  X#S-
     S:w  a  US-  nUS:  a  X#S-
     S:w  a  M  SU R                  U-
  S-  -
  nSU-  /$ / nU R                  R
                  nUbV   [        U5      nSn  U" X5      n[        U[        5      (       d  OUR                  U5        US-  nM7  UR                  5         U$ ! [         a     NXf = f! [         a     M/  f = f)Nr   r   
    )lenrC   rY   rZ   rB   r2   strUnicodeEncodeError	Exception
isinstanceappendsort)	rN   stemr\   r]   
num_spacesresultfunctionstatenexts	            r=   get_completions#ReadlineAlikeReader.get_completions   s$   t9>doo9AAa%A!eH,Q a%A!eH,txx!|q01J*$%%;;114y E#D0D "$,,d#
  KKM &  ! s$   C, $C< ,
C98C9<
D
	D
c                r    US:  a!  [        U R                  5      U-
  nUS:  a  SnOSnU R                  US  $ Nr   )rd   history)rN   	maxlengthcuts      r=   get_trimmed_history'ReadlineAlikeReader.get_trimmed_history   s?    >dll#i/CQwC||CD!!r<   c                B    [        U R                  5      nUb  Xl        g g rR   )_get_first_indentationrY   rE   )rN   indentations     r=   update_last_used_indentation0ReadlineAlikeReader.update_last_used_indentation   s!    ,T[[9")4& #r<   c                &   > [         TU ]  5       S-   $ )N))z\nrH   )z\<backspace>rJ   )rK   collect_keymaprM   s    r=   r   "ReadlineAlikeReader.collect_keymap   s    w%' +
 
 	
r<   c                <  > [         TU ]  U5        U R                  co   U R                  R	                  S5      nU R                  S U U l        U R
                  [        U R                  5      :  a  [        U R                  5      U l        g g g ! [         a     g f = fNra   )rK   after_commandrC   rY   indexrZ   rd   
ValueError)rN   cmdr   rO   s      r=   r   !ReadlineAlikeReader.after_command   s    c"??"
0))$/ #kk&5188c$++.."4;;/DH / #  s   B 
BB)rY   rE   rZ   returnNone)none)rS   re   r   r   r   re   )rk   re   r   	list[str])rv   intr   r   )r   z'tuple[tuple[KeySpec, CommandName], ...])r   Commandr   r   )r5   r6   r7   r8   assume_immutable_completionsuse_bracketssort_in_columnr9   rC   rE   rL   rT   r^   rq   rx   r}   r   r   r;   __classcell__)rO   s   @r=   r@   r@   h   s`     $) LN +/J(/(,:,=,<"5
0 0r<   r@   c                ,    [        U 5      [        l        g)z#Enable or disable automatic historyN)boolr
   should_auto_add_history)_should_auto_add_historys    r=   r'   r'      s    045M0N-r<   c                    SnUS:  a(  XS-
     S;   a  US-  nUS-  nUS:  a  XS-
     S;   a  M  US:  a  XS-
     S:X  a  U$ g)Nr   r    	ra   r4   )rY   rZ   indents      r=   _get_this_line_indentr      sa    F
'f1Wo.!q 'f1Wo. Qw6'?d*r<   c                    UnUS:  a#  XS-
     S:w  a  US-  nUS:  a  XS-
     S:w  a  M  UnX1:  a  X   S;   a  US-  nX1:  a
  X   S;   a  M  X1:X  a  S nX$4$ X2-
  nX$4$ )Nr   r   ra   r   r4   )rY   rZ   prevlinestartprevlinetextr   s        r=   _get_previous_line_indentr      s    M
!
q'8 9T A !
q'8 9T A L

!5!> 
!5!>    -  r<   c                    S n[        [        U 5      5       HQ  nU[        U 5      S-
  :  a  X   S:X  a  XS-      S;   a  US-   nM/  Uc  M4  X   S;  d  M>  SR                  XU 5      s  $    g )Nr   ra   r   z 	
rX   )rangerd   r[   )rY   indented_line_startis      r=   r{   r{      su    3v;Fa	T!1u&"#a% ,'1I776:;;   r<   c                    S nUS:  a5  US-  nUc  X   S;  a  X   nOX   S:X  a   US:H  $ X   S:X  a  S nUS:  a  M5  US:H  $ )Nr   r   z 	
#ra   #:r4   )rY   rZ   	last_chars      r=   _should_auto_indentr      st     I
'q{(*"K	
 {d"  {c! 	 ' r<   c                      \ rS rSrSS jrSrg)rG   i	  c                  ^^ U R                   mSTl        U R                   R                  (       a  TR                  S5        g TR	                  5       mSTR
                  TR                  S  ;   d%  TR                  GbA  TR                  T5      (       Ga*  UU4S jnU" 5       (       a*  TTR                  S  R                  5       (       a  SU l	        g [        TR
                  TR                  5      u  p#TR                  S5        U R                   R                  (       d  U(       a3  [        X"U-   5       H!  nTR                  TR
                  U   5        M#     TR                  5         [        TR
                  TR                  5      (       a.  TR                  b  TR                  nOSnTR                  U5        g g g U R                   R                  (       d  SU l	        g TR                  S5        g )NTra   c                    > TR                   S-
  n U S:  a=  TU    R                  5       (       a%  U S-  n U S:  a  TU    R                  5       (       a  M%  TU TR                    R                  S5      S:  $ )Nr   r   ra   )rZ   isspacecount)
before_idxrtexts    r=   _newline_before_pos,maybe_accept.do.<locals>._newline_before_pos  sp    UUQY
 1nj)9)A)A)C)C!OJ !1nj)9)A)A)C)CJ/55d;a??r<   z    )readerdirtyin_bracketed_pasteinsertget_unicoderY   rZ   rC   r   finishr   
paste_moder   r}   r   rE   )rN   r   r   r   r   r|   r   r   s         @@r=   domaybe_accept.do
  sp   KK;;))HHTN }}188AEEG$$LL$d););@ #$$aeef)=)=)?)?" %>ahh$N!MHHTN;;))"=&2HI!- J..0&qxx77..:&'&=&= '.HH[) 8 * ''DKHHTNr<   )r   Nr   r5   r6   r7   r8   r   r;   r4   r<   r=   rG   rG   	  s    /r<   rG   c                      \ rS rSrSS jrSrg)rI   i<  c                   U R                   nUR                  nUR                  S:  a  SnX!R                  S-
     S:w  aU  [        X!R                  5      nUS:  a:  UR                  U-
  nUS:  a%  [	        X%S-
  5      u  pVUb
  Xd:  a  XF-
  nOUS:  a  M%  U=R                  U-  sl        X!R                  UR                  U-   2	 SUl        g U R                   R                  S5        g )Nr   r   ra   Tzcan't backspace at start)r   rY   rZ   r   r   r   rT   )rN   r   r\   repeatr   lspis          r=   r   backspace_dedent.do=  s    KKHH5519F|t#.q%%8A:Bq&!:11f!E>bk%+[F!	 q&
 EEVOE%%!%%&.()AGKK89r<   r4   Nr   r   r4   r<   r=   rI   rI   <  s    :r<   rI   )slotsc                     \ rS rSr% SrS\S'   SrS\S'   \" SSS9rS	\S
'   Sr	S\S'   Sr
S\S'   \" \SS9rS\S'   S,S jrS-S jrS.S/S jjrS0S jrS1S jrS2S3S jjrS4S jrS5S jrS6S jrS7S jrS8S jrS9S jrS8S jr\" 5       4S:S jjr\" 5       4S:S jjrS,S  jrS;S! jrS<S" jrS=S# jr S>S$ jr!S2S?S% jjr"S6S& jr#S@S' jr$S8S( jr%S8S) jr&SAS* jr'S+r(g)B_ReadlineWrapperiU  r   f_inf_outNF)defaultreprzReadlineAlikeReader | Noner   saved_history_lengthCallback | Nonestartup_hook)default_factoryr   r/   rB   c                    U R                   S:X  a  [        R                  " S5      U l         U R                  S:X  a  [        R                  " S5      U l        g g )Nr   r   r   )r   osdupr   rN   s    r=   rL   _ReadlineWrapper.__post_init__^  s<    99?q	DI::DJ r<   c                    U R                   c;  [        U R                  U R                  [        S9n[        XR                  S9U l         U R                   $ )N)encoding)consolerB   )r   r   r   r   ENCODINGr@   rB   )rN   r   s     r=   
get_reader_ReadlineWrapper.get_readerd  s<    ;;diihGG-gkkRDK{{r<   c                     U R                  5       n[        U5      nX2l        [
        R                  " SU5        UR                  U R                  S9n[
        R                  " SU5        U$ ! [         a    [        c   e[        U5      s $ f = f)Nzbuiltins.inputr   zbuiltins.input/result)	r   r   	raw_inputre   ps1sysauditreadliner   )rN   promptr   
prompt_strrm   s        r=   input_ReadlineWrapper.inputj  s    	%__&F [

		"J/d.?.?@		)62  	%(((V$$	%s   A, ,BBc                T   U R                  5       nUR                  n Xl        X$l        X$l        X4l        SUl        [        R                  " SS9   UR                  5       sSSS5        XTl        SUl	        $ ! , (       d  f       O= f XTl        SUl	        g! XTl        SUl	        f = f)zRead an input on possibly multiple lines, asking for more
lines as long as 'more_lines(unicodetext)' returns an object whose
boolean value is true.
rX   ignore)actionNF)
r   rC   r   ps2ps3ps4warningscatch_warningsr   r   )rN   rC   r   r   r   saveds         r=   r-    _ReadlineWrapper.multiline_inputw  s    
 "!!
	& *JJJFJ((9( :9 !& %F	 :99 !& %F !& %Fs#   3B A8!	B 8
BB B'c                    g rR   r4   )rN   strings     r=   r#   _ReadlineWrapper.parse_and_bind  rV   r<   c                $    XR                   l        g rR   rB   r2   rN   rn   s     r=   r(   _ReadlineWrapper.set_completer  s    )1&r<   c                .    U R                   R                  $ rR   r   r   s    r=   r   _ReadlineWrapper.get_completer  s    {{---r<   c                8    [        U5      U R                  l        g rR   )r:   rB   r3   )rN   
delimiterss     r=   r)   %_ReadlineWrapper.set_completer_delims  s    '0'<$r<   c                ^    SR                  [        U R                  R                  5      5      $ )NrX   )r[   sortedrB   r3   r   s    r=   r   %_ReadlineWrapper.get_completer_delims  s     wwvdkk::;<<r<   c                (    UR                  S5      nU$ r   )rstriprN   lines     r=   	_histline_ReadlineWrapper._histline  s    {{4 r<   c                    U R                   $ rR   r   r   s    r=   r    #_ReadlineWrapper.get_history_length  s    (((r<   c                    Xl         g rR   r  )rN   lengths     r=   r*   #_ReadlineWrapper.set_history_length  s    $*!r<   c                H    [        U R                  5       R                  5      $ rR   )rd   r   ru   r   s    r=   r   +_ReadlineWrapper.get_current_history_length  s    4??$,,--r<   c           	        U R                  5       R                  n[        [        R                  R                  U5      S5       nUR                  5       R                  S5      nU(       a  SnOUR                  S5        SnUR                  5       R                  S5       Vs/ s H  ofR                  USS9PM     nn/ nU H  nUR                  S	5      (       a  UR                  US
-   5        M/  U R                  U5      nU(       a8  U R                  SR                  U5      R!                  S	S5      U-   5      nUS S 2	 U(       d  M  UR                  U5        M     S S S 5        g s  snf ! , (       d  f       g = f)Nrbs   _HiStOrY_V2_zunicode-escaper   utf-8   
replace)errorsra   rX   )r   ru   openr   path
expanduserr   
startswithseekreadsplitdecodeendswithri   r  r[   r  )	rN   filenameru   fis_editliner   r  linesrY   s	            r=   r$   "_ReadlineWrapper.read_history_file  s'   
 //#++"''$$X.5**,11/BK+q	"IJX]I^_I^[[)[<I^E_F==&&MM$t),>>$/D#~~bggfo.E.EdB.ORV.VW"1Itt,  65 ` 65s&   AE,"E';B
E,	E,'E,,
E:c                B   U R                   nU R                  5       R                  U5      n[        [        R
                  R                  U5      SSSS9nU   U H)  nUR                  SS5      nUR                  US-   5        M+     S S S 5        g ! , (       d  f       g = f)Nwr  ra   )r   newlinez
)	r   r   rx   r  r   r  r  r  write)rN   r  rv   ru   r  entrys         r=   r,   #_ReadlineWrapper.write_history_file  s}    --	//#77	B##H-s!41 dF3% ! QQs   0B
Bc                >    U R                  5       R                  S S 2	 g rR   )r   ru   r   s    r=   r   _ReadlineWrapper.clear_history  s    OO%%a(r<   c                x    U R                  5       R                  nSUs=::  a  [        U5      ::  a
  O  g X!S-
     $ g Nr   )r   ru   rd   rN   r   ru   s      r=   r   !_ReadlineWrapper.get_history_item  s<    //#++%W%  19%%r<   c                    U R                  5       R                  nSUs=::  a  [        U5      :  a  O  OX!	 g [        SU-  5      eNr   zNo history item at position %d)r   ru   rd   r   r,  s      r=   r%   $_ReadlineWrapper.remove_history_item  s;    //#++$G$=EFFr<   c                    U R                  5       R                  nSUs=::  a  [        U5      :  a  O  OU R                  U5      X1'   g [	        SU-  5      er/  )r   ru   rd   r  r   )rN   r   r  ru   s       r=   r&   %_ReadlineWrapper.replace_history_item  sF    //#++$G$!^^D1GN=EFFr<   c                t    U R                  5       R                  R                  U R                  U5      5        g rR   )r   ru   ri   r  r  s     r=   r   _ReadlineWrapper.add_history  s&    !!(()=>r<   c                    Xl         g rR   r   r   s     r=   r+   !_ReadlineWrapper.set_startup_hook  s    $r<   c                >    U R                  5       R                  5       $ rR   )r   r   r   s    r=   r!    _ReadlineWrapper.get_line_buffer  s     ,,..r<   c                    U R                  5       R                  =pU R                  5       n[        US-
  SS5       H  nX4   U R	                  5       ;   a    X4$ UnM!     X4$ )Nr   r   )r   rZ   r!   r   r   )rN   startcursorbufr   s        r=   	_get_idxs_ReadlineWrapper._get_idxs  sk    *...""$vz2r*Av2244} E + }r<   c                (    U R                  5       S   $ rt   r=  r   s    r=   r   _ReadlineWrapper.get_begidx      ~~""r<   c                (    U R                  5       S   $ r+  r@  r   s    r=   r   _ReadlineWrapper.get_endidx  rB  r<   c                B    U R                  5       R                  U5        g rR   )r   r   )rN   r   s     r=   r"   _ReadlineWrapper.insert_text  s      &r<   )r   r   r   r   r   r   )r   r@   )rX   )r   objectr   re   )rC   MoreLinesCallabler   re   r   re   r   re   )r   re   r   r   rR   )rn   r1   r   r   )r   r1   )r   zCollection[str]r   r   r   )r  re   r   re   )r   r   )r	  r   r   r   )r  re   r   r   )r   r   r   rD   )r   r   r   r   )r   r   r  re   r   r   )r  re   r   r   )rn   r   r   r   )r   ztuple[int, int])r   re   r   r   ))r5   r6   r7   r8   r   r9   r   r   r   r   r   r/   rB   rL   r   r   r-   r#   r(   r   r)   r   r  r    r*   r   r   r$   r,   r   r   r%   r&   r   r+   r!   r=  r   r   r"   r;   r4   r<   r=   r   r   U  s    D#NE3O).t%)HF&H "#"$(L/(">NFNN#&&2.==)+. 1?0@ -8 2@1A &)GG?%/##'r<   r   c                >   ^  SU 4S jjnT Ul         U[        5       T '   g )Nc                 6   > SS K nUR                  " ST-  SS9  g )Nr   zreadline.%s() not implemented   )
stacklevel)r   warn)argskwdsr   _names      r=   stub_make_stub.<locals>.stub'  s    5=!Lr<   )rN  rG  rO  rG  r   r   )r5   globals)rP  _retrQ  s   `  r=   
_make_stubrU  &  s    M
 DMGIer<   ))read_init_fileN)	redisplayN)set_pre_input_hookNc                .   [         b  g  [        R                  R                  5       n[        R                  R                  5       n[        R                  " U5      (       a  [        R                  " U5      (       d  g U[        l
        U[        l        [        U [        5      (       d  [        U 5      n [        U 5      R                  [        R                   l        SS KnUR&                  q [        R&                  Ul        g ! [
        [        4 a     g f = frt   )r   r   stdinfilenostdoutAttributeErrorr   r   isatty_wrapperr   r   rh   dictRLCompletercompleterB   r2   builtinsr   )	namespacer   r   rc  s       r=   _setupre  ;  s    yy!

!!# 99T??"))E"2"2HMHN i&&O	)4Y)?)H)HHOO& I^^HN! J' s   <D DDzCallable[[object], str] | Noner   )r   r   r   r   )rY   r   rZ   r   r   r   )rY   r   rZ   r   r   ztuple[int, int | None])rY   r   r   rD   )rY   r   rZ   r   r   r   )rP  re   rT  rG  r   r   )rd  zMapping[str, Any]r   r   )X__doc__
__future__r   r   dataclassesr   r   r   siter   r   rlcompleterr   ra  rX   r	   r
   completing_readerr   r   r   ConsoleTyper9   unix_consoler   r   ImportErrorwindows_consoler   getdefaultencodingr   r   collections.abcr   r   typesr   r   r   TYPE_CHECKINGtypingr   r   re   r   rH  __all__r/   HistoricalReaderr@   r'   r   r   r{   r   rG   rI   r   r_  r#   r(   r   r)   r   r    r*   r   r$   r,   r   r   r%   r&   r   r+   r!   r   r   r"   r-   r   _get_readerrU  rP  rT  rS  re  r   r4   r<   r=   <module>rx     s  0
 #  ( 	  
 0 ) / +	 5 5C< !!#/x 

 0 < <# cUD[) > Z Z Z
 4_0+<<>N _0 _0DO
!
(08## 0f:x'' :2 i' i' i'X 
 ((&&&&44 44 00 00 %@@ .. 00 &&,, 22 44 "",, **  
  
"" ** !!KE4
 	!(5(!ud$6 -1	) 0O  CBBCs   	I4 4JJ