
    hd                     :   % S r SSKJr  SSKrSSKrSSKrSSKJr  SSK	J
r
JrJrJrJrJrJrJr  SSKJr  SSKJrJrJr  Sr\R2                  r\R4                  r\R6                  r\R8                  r\R:                  r\R<                  r\R>                  r\R@                  r \RB                  r!\RD                  r"\RF                  r#\RH                  r$\RJ                  r% " S	 S
\
5      r&\RN                  " S5      r(0 r)\\\&4   \*S'   SS.S jr+S r,SSS.S jr-S r.S r/Sr0\." S\0-   S-   5      r1\." S\0-   S-   5      r2\." S5      r3\." S5      r4S r5 " S S\
5      r6 " S S\65      r7 " S  S!5      r8S" r9S# r:S$S%.S&\;S'\S(\\<\<4   S)\\7   4S* jjr=S+ r>SS$S,S-.S.\\;   S'\S/\\<   S(\\<\<4   S)\\7   4
S0 jjr?S1 r@\AS2:X  aM  \R                  S3   rC\D" \C5       rE\ER                  5       rGSSS5        \=" \G\" S45      S59 H  rH\I" \H5        M     gg! , (       d  f       N,= f)6a  
This tokenizer has been copied from the ``tokenize.py`` standard library
tokenizer. The reason was simple: The standard library tokenizer fails
if the indentation is not right. To make it possible to do error recovery the
    tokenizer needed to be rewritten.

Basically this is a stripped down version of the standard library module, so
you can read the documentation there. Additionally we included some speed and
memory optimizations here.
    )absolute_importN)BOM_UTF8)
NamedTupleTupleIteratorIterableListDictPatternSet)PythonTokenTypes)split_linesPythonVersionInfoparse_version_stringu   􏿿c                       \ rS rSr% \\S'   \\   \S'   \\   \S'   \\\4   \S'   \\S'   \\\4   \S'   \	\   \S'   S	r
g
)TokenCollection+   pseudo_tokensingle_quotedtriple_quotedendpats
whitespacefstring_pattern_mapalways_break_tokens N)__name__
__module____qualname____firstlineno__r   __annotations__r   strr
   r   __static_attributes__r       hC:\Users\julio\OneDrive\Documentos\Trabajo\Ideas Frescas\venv\Lib\site-packages\parso/python/tokenize.pyr   r   +   sI    s8s8#w,c3h's#r#   r   zutf-8_token_collection_cacheFcapturec                 ^    U(       a   eSnU (       d  US-  nUSR                  U5      -   S-   $ )N(z?:|))join)r'   choiceskwargsstarts       r$   groupr0   :   s4    :E388G$$s**r#   c                      [        U 6 S-   $ )N?)r0   )r-   s    r$   mayber3   C   s    '?S  r#   include_fstringonly_fstringc                     S n/ SQnS1nU (       a  SS/nU(       a  Un[        5       nOX5-  nOU(       a
  [        5       $ U H7  n[        R                  " U5       H  nUR                  U" U5      5        M     M9     U$ )Nc              3      #    [         R                  " U  Vs/ s H  oUR                  5       4PM     sn6  H  nSR                  U5      v   M     g s  snf 7f)N )
_itertoolsproductupperr,   )prefixcss      r$   different_case_versions5_all_string_prefixes.<locals>.different_case_versionsI   sC     ##f%Ef!'')nf%EFA''!* G%Es   AA$A)brubrr9   ffr)setr:   permutationsupdate)r5   r6   r@   valid_string_prefixesresultrF   r=   ts           r$   _all_string_prefixesrN   H   s     2TF$K$%!UF!&!	u (((0A MM1!45 1 (
 Mr#   c                 L    [         R                  " U [         R                  5      $ N)recompileUNICODE)exprs    r$   _compilerU   e   s    ::dBJJ''r#   c                      [         [        U 5         $ ! [         a"    [        U 5      =[         [        U 5      '   nUs $ f = frP   )r%   tupleKeyError_create_token_collection)version_inforL   s     r$   _get_token_collectionr[   i   sG    &u\':;; $\2	3l 34vs    )A A z"[A-Za-z0-9\-]+(?: [A-Za-z0-9\-]+)*z(?:\{\{|\}\}|\\N\{z*\}|\\(?:\r\n?|\n)|\\[^\r\nN]|[^{}\r\n\\])+z\}|\\[^N]|[^{}\\])+z(?:\\(?:\r\n?|\n)|[^{}\r\n])+z[^{}]+c                    Sn[        U5      nSnS[        -   S-   nSnSnSnSn[        XVXx5      n	S	n
[        S
S5      [        U
5      -   nSU
-   n[        X5      n[        SUS-   5      n[        XU	5      n[	        5       n[        U6 n[        [	        SS96 n[	        SSS9n[        U6 nSnSnSnSn[        US-   US-   5      n[        SSSSSSS5      nSn/ S QnU S!:  a  UR                  S"S#5        OUR                  S"S$5        [        U6 n[        UUU5      n[        US%-   [        S&S'5      -   US(-   [        S)S'5      -   5      nUU/n S*n!U(       a  U R                  U[        U!6 -   5        [        S+/U Q76 n"[        USS,9[        U"UUUUSS,9-   n#0 n$U HG  n%[        U5      U$U%S&-   '   [        U5      U$U%S)-   '   [        U5      U$U%S-   '   [        U5      U$U%S-   '   MI     [        5       n&[        5       n'0 n(U H=  n)S- H  n*U&R                  U)U*-   5        M     S. H  n*U'R                  U)U*-   5        M     M?     U H  n)U! H  n*U*U(U)U*-   '   M     M     S/n+[        U#5      n,[        U,U&U'U$UU([        U+5      5      $ )0Nz[ \f\t]*z	#[^\r\n]*u   ([A-Za-z_0-9-z]+)z0[xX](?:_?[0-9a-fA-F])+z0[bB](?:_?[01])+z0[oO](?:_?[0-7])+z(?:0(?:_?0)*|[1-9](?:_?[0-9])*)z[eE][-+]?[0-9](?:_?[0-9])*z)[0-9](?:_?[0-9])*\.(?:[0-9](?:_?[0-9])*)?z\.[0-9](?:_?[0-9])*z[0-9](?:_?[0-9])*z[0-9](?:_?[0-9])*[jJ]z[jJ]T)r5   r4   z(?:\\.|[^'\\])*'z(?:\\.|[^"\\])*"z(?:\\.|'(?!'')|[^'\\])*'''z(?:\\.|"(?!"")|[^"\\])*"""'''"""z\*\*=?z>>=?z<<=?z//=?z->z[+\-*/%&@`|^!=<>]=?~z[][(){}])z\.\.\.z\r\n?z\nz[;.,@])      r   z:=?:z'[^\r\n'\\]*(?:\\.[^\r\n'\\]*)*'z\\(?:\r\n?|\n)z"[^\r\n"\\]*(?:\\.[^\r\n"\\]*)*")rd   rc   r^   r]   z\\(?:\r\n?|\n)|\Zr&   )rd   rc   )r^   r]   );importclassdeftryexceptfinallywhilewithreturncontinuebreakdelpassglobalassertnonlocal)
rU   MAX_UNICODEr0   r3   rN   insertappendrH   addr   )-rZ   
Whitespacer   CommentName	Hexnumber	Binnumber	Octnumber	Decnumber	IntnumberExponent
PointfloatExpfloatFloatnumber
ImagnumberNumberpossible_prefixesStringPrefixStringPrefixWithFfstring_prefixesFStringStartSingleDoubleSingle3Double3TripleOperatorBracketspecial_argsSpecialFunnyContStrpseudo_extra_pool
all_quotesPseudoExtrasPseudoTokenr   _prefixr   r   r   rM   quoteALWAYS_BREAK_TOKENSpseudo_token_compileds-                                                r$   rY   rY   ~   s&    J*%JG ;.6D*I#I$I2IiIAI,HC-/16xAJ#h.H
-K/w1FGJ:I6F -.+,L3DIJ+DtT*+L !F F+G+G$u,.?%.GHF
 Ye+H
 G:LvAu%As#\"G(GW-E L#EEC!234 #EEC!2345G !&)'J  z0B!BC-B0ABL
D1lFE7D$GHK G$!)&!1#!)&!1##+G#4% #+G#4% 	 % EMEMEa%i(  "Ea%i( "	  E-2E	*   S %[1}mW'-@)A r#   c                   j    \ rS rSr% \\S'   \\S'   \\\4   \S'   \\S'   \	S\\\4   4S j5       r
Srg	)
Token   typestring	start_posr=   rn   c                     [        U R                  5      n[        U5      S:  a   U R                  S   [        U5      -   S-
  S4$ U R                  S   U R                  S   [        U R                  5      -   4$ N   r   )r   r   lenr   )selfliness     r$   end_posToken.end_pos   sh    DKK(u:>>>!$s5z1A5q88>>!$dnnQ&7#dkk:J&JJJr#   r   N)r   r   r   r   r   r    r!   r   intpropertyr   r"   r   r#   r$   r   r      sD    
KS#XKKsCx K Kr#   r   c                       \ rS rSrS rSrg)PythonToken   c                 N    SU R                  U R                  R                  S9-  $ )Nz6TokenInfo(type=%s, string=%r, start_pos=%r, prefix=%r))r   )_replacer   namer   s    r$   __repr__PythonToken.__repr__   s%    H499>>23 	4r#   r   N)r   r   r   r   r   r"   r   r#   r$   r   r      s    4r#   r   c                   8    \ rS rSrS rS rS rS rS rS r	Sr
g	)
FStringNode   c                 H    Xl         SU l        SU l        S U l        SU l        g )Nr   r9   )r   parentheses_countprevious_lineslast_string_start_posformat_spec_count)r   r   s     r$   __init__FStringNode.__init__   s)    
!" %)" "#r#   c                 .    U =R                   S-  sl         g )Nr   )r   r   	characters     r$   open_parenthesesFStringNode.open_parentheses	  s    !#r#   c                 ^    U =R                   S-  sl         U R                   S:X  a  SU l        g g r   r   r   r   s     r$   close_parenthesesFStringNode.close_parentheses  s.    !#!!Q&%&D" 'r#   c                 2    [        U R                  5      S:H  $ )Nr`   )r   r   r   s    r$   allow_multilineFStringNode.allow_multiline  s    4::!##r#   c                 4    U R                   U R                  :  $ rP   r   r   s    r$   
is_in_exprFStringNode.is_in_expr  s    %%(>(>>>r#   c                 R    U R                  5       (       + =(       a    U R                  $ rP   )r   r   r   s    r$   is_in_format_specFStringNode.is_in_format_spec  s    ??$$?)?)??r#   )r   r   r   r   r   N)r   r   r   r   r   r   r   r   r   r   r"   r   r#   r$   r   r      s!    #$'$?@r#   r   c           
      t   [        U 5       H  u  pVUR                  5       n[        U5      [        U5      -
  nUR                  UR                  5      (       d  MN  [        [        UR                  X#U-   4XAS U -   S9n	SnUR                  (       a   eXS 2	 U	S[        UR                  5      U-   4s  $    S US4$ )Nr=   r9   r   )	enumeratelstripr   
startswithr   r   FSTRING_ENDr   )
fstring_stackr   line_nrcolumnadditional_prefixfstring_stack_indexnodelstripped_string
len_lstriptokens
             r$   _close_fstring_if_necessaryr     s    %.}%=!!==?[3'7#88
&&tzz22

:-.()<<	E !#****23"c$**o
::: &> "A%%r#   c                    US   nUR                  5       nUR                  5       (       a  U(       a  [        nO[        nOU(       a  [        nO[
        nUR                  X$5      nUc  UR                  U4$ UR                  (       d  X44Ul        UR                  S5      n	U HM  n
X
R                     R                  U	5      nUc  M%  UR                  S5      S [        U
R                  5      *  n	MO     UnU[        U	5      -  nU	R                  S5      (       d  U	R                  S5      (       a  U=R                  U	-  sl        Sn	X4$ UR                  U	-   n	X4$ )Nr   
r9   )r   r   fstring_format_spec_multi_linefstring_format_spec_single_linefstring_string_multi_linefstring_string_single_linematchr   r   r0   r   r   endswith)r   r   linelnumpostosr   regexr   r   fstring_stack_node	end_matchnew_poss                r$   _find_fstring_stringr   .  sD   

C))+O
2E3E-E.EKK"E}!!3&&%)K![[^F+445;;FC	 __Q'(G#.@.F.F*G)GHF ,
 Gs6{G t 5 5f$ ? ##f,?r#   )r   r   )r   coderZ   r   rn   c                *    [        U SS9n[        X1US9$ )z0Generate tokens from a the source code (string).T)keepends)rZ   r   )r   tokenize_lines)r   rZ   r   r   s       r$   tokenizer   V  s     t,E%iPPr#   c                    ^  U 4S jnU$ )zD
A small helper function to help debug the tokenize_lines function.
c               ?   J   >#    T" U 0 UD6 H  n[        U5        Uv   M     g 7frP   )print)argsr.   r   funcs      r$   wrapper_print_tokens.<locals>.wrapperb  s&     4*6*E%LK +s    #r   )r  r  s   ` r$   _print_tokensr  ^  s    
 Nr#   T)indentsr   is_first_tokenr   r  c          
   #     ^^.^/#    UU.U/4S jn[        U5      u  pgpn
pSnTc  S/mSnSnSnSnSnSnUS   S-
  m./ nU  GHO  nT.S-  m.Sn[        U5      nU(       aI  UR                  [        5      (       a  [        nUSS n[        U5      nSUS   -  U-   nUS   nXS   -  nS	nU(       aT  WR	                  U5      nU(       a0  UR                  S5      n[        [        UUSU -   WU5      v   SnSnOUU-   nWU-   nM  UU:  d  M  U(       a  US
   nUR                  5       (       dG  [        U	UUT.U5      u  nnU(       a%  [        [        UUR                  SS9v   SUl        Mg  UU:X  a  GM1  UUS n[        UUT.UU5      u  nnnUU-  nUb  Uv   M  U(       a  Un U Hx  n!U!R                  n"U	U"   R	                  UU5      n#U#c  M)  U#R                  S5      n$[        U$5      [        U"5      -
  U-   [        U 5      :  d  Mc  USU U$S[        U"5      *  -   n Mz     UR	                  U U5      n%OUR	                  UU5      n%U%(       aY  UU%R                  S5      -   nSnU%R!                  S5      u  n&nT.U&4m/U%R                  S5      n'U'S:X  a  U(       d   eUnGM]  U'S   n(O9U
R	                  UU5      n)UU)R                  5          n(U)R                  5       n&T.U&4m/U(       a^  U(S;  aX  U(S:w  d  U%cO  S	nUS:X  aG  U(       d@  U&n*U*TS
   :  a%  [        ["        ST/S5      v   TR%                  U*5        U" U*5       Sh  vN   U%(       d  U
R	                  UU5      n)U(       a+  US:X  a%  U(       d  U" U)R                  5       5       Sh  vN   U)R                  5       nS	n[        [&        UU   T.U4UU)R                  S5      -   5      v   SnUS-  nGM  U(U;   d  U(S:X  a"  W'S:w  a  U'S:w  a  [        [(        W'T/U5      v   GOU%R                  S5      b  W'U;   aP  U(       d  U(       aB  / USS& Sn[*        R                  " SUSU& 5      n+U+b  U" U+R                  5       5       Sh  vN   U'R-                  5       (       a  [        [.        U'T/U5      v   GO[1        U'T/U5       Sh  vN   GOU(S;   aY  [3        S U 5       5      (       a  UR5                  5         U(       d"  US:X  a  U(       d  [        [6        W'T/U5      v   OUW'-   nSnGO|U(S:X  ao  W'R9                  S5      (       d  U'R9                  S5      (       a   eU(       a3  US
   R                  5       (       a  [        [&        U(T/U5      v   U&S-   nGOUU'-   nGOW'U;   aV  U	U'   nUR	                  UU5      nU(       a,  UR                  S5      nUU&U n'[        [        U'T/U5      v   GOT/nUU&S nUnGM  U(U;   d  U'SS U;   d	  U'SS U;   at  U'S
   S;   aU  T.U&4nU	R;                  U(5      =(       d/    U	R;                  U'S   5      =(       d    U	R;                  U'S   5      nUU&S nUnGM  [        [        U'T/U5      v   GOU'U;   a2  UR%                  [=        UU'   5      5        [        [>        U'T/U5      v   OU(S:X  a  UU&S S;   a  UUUU&S -   -  nGM|  U'S;   a"  U(       a  US
   RA                  U'5        OUS-  nOU'S;   a)  U(       a  US
   RC                  U'5        OlU(       a  US-  nO_U'R                  S5      (       aI  U(       aB  US
   RD                  US
   RF                  -
  S:X  a  US
   =RF                  S-  sl#        Sn'U&S-   n[        [H        U'T/U5      v   UU:  a  GM  GMR     U(       aB  [        [&        UWU5      v   UR9                  S5      (       d  UR9                  S5      (       a  SnU(       a<  US
   nUR                  (       a&  [        [        UR                  UR                  SS9v   T.U4n,TSS  H'  n-TRK                  5         [        [L        SU,S5      v   M)     [        [N        SU,U5      v   g GN- GN GN GN7f)a  
A heavily modified Python standard library tokenizer.

Additionally to the default information, yields also the prefix of each
token. This idea comes from lib2to3. The prefix contains all information
that is irrelevant for the parser like newlines in parentheses or comments.
c              3      >#    U TS   :  aU  U TS   :  a  [        [        STU 4S5      v   U TS'   g TR                  5         [        [        STS5      v   U TS   :  a  MT  g g 7f)Nr   r9   )r   ERROR_DEDENTpopDEDENT)r/   r  r   sposs    r$   dedent_if_necessary+tokenize_lines.<locals>.dedent_if_necessaryz  sg     gbk!wr{"!,T5M2FF#KKMfb$33 gbk!s   AA#!A#r   N
0123456789r9   Tr   ^Fr   r      z
#\.z...r`   z	[ \f\t]*$z
c              3   J   #    U  H  oR                  5       (       + v   M     g 7frP   )r   ).0rF   s     r$   	<genexpr>!tokenize_lines.<locals>.<genexpr>  s     F1,,...s   !##r   r   )z\
z\
z\z([{z)]}rb   )(r[   r   r   BOM_UTF8_STRINGr   endr   STRINGr   r   FSTRING_STRINGr   r   r   r   r0   spanINDENTrx   
ERRORTOKENNUMBERrQ   isidentifierNAME_split_illegal_unicode_nameanyclearNEWLINEr   getr   FSTRING_STARTr   r   r   r   OPr  r  	ENDMARKER)0r   rZ   r  r   r  r  r   r   r   r   r   r   r   paren_levelmax_numcharscontstrnew_liner=   r   r   r   r   endprogendmatchcontstr_startcontliner   r   restfstring_end_tokenquote_lengthstring_liner   r   r   end_match_stringpseudomatchr/   r   initialr   indent_startmr   indentr   r  s0     `                                           @@r$   r   r   k  s    4 	l+2LK#DHG HFQ<!D')M	4y//$3!ABx4y 1%,DA,CaL D"N}}T*Hll1o!Gd4Cj0!6+ + !D.#d?Dj#B'~~''"6wtUY[^"_KFC)*F55 $&  .0* d{CDzE`!%FB!#4l |#$0++ "*7&.44E ' 4 4T3 ?I ,+4??1+=(/03u:=Cc+FVV*.t*7G#e*7U*UK +8 +00cB*00s;*[->->q-AA$&!(--a0
se}#))!,B;!M6(.% ("((s3uyy{+		e}G724;K^ !#M#(L#gbk1)&"dB??|42<@@@"((s3q 02599;???iik !S	D#;%A6  %'!q8#35C<EUN!&%v>>""1%1//]k')M!$"#KtFU|<A}#6quuw#???%%''%dE4@@:5$OOOF"FFFF!'')K1$4]%gudFCC(.%C >>$//t8L8LLL ]2%6%A%A%C%C%j'4HH!)C(.%-'!%."==s3",,q/C sOE%feT6BB$(M"56lG#H M)"1I."1I.9& %)%KM&{{73  8w{{587L  8")++eAh"7 "56lG#H%feT6BB--$$[1DU1K%LM!-fEEDT%&\5O%O!Vd56l%::!E>$%b)::5A#q(e^$%b);;EB&'1,K%%c**})"-??'+==>ABC ""%771<7E!)C!"eT6::m Djj? n *g}fEED!!W%5%5d%;%;HB 2 2))   DjG !"+&"gr22  iW.?
@@O A
 @* @ Psf   C>a3B>a3	6a3D7a3:a';A
a3a*Ca3"a-#?a3"a0#K'a3Ca3*a3-a30a3c              #     ^^^^	#    UUU	U4S jnSmSmUm	[        U 5       H  u  pET(       a:  UR                  5       (       a  U" 5       v   UmSmSmUS   US   U-   4m	M?  TU-  mMF  TU-   nUR                  5       (       a  UmMd  T(       a  U" 5       v   SmUS   US   U-   4m	UmSmM     T(       a
  U" 5       v   g g 7f)Nc                  B   > [        T(       a  [        O[        T TT5      $ rP   )r   r   r#  )found
is_illegalr   r=   s   r$   create_token1_split_illegal_unicode_name.<locals>.create_token  s    :uc6RRr#   r9   Fr   r   T)r   r"  )
r   r   r=   rC  ichar	new_foundrA  rB  r   s
     `    @@@r$   r$  r$    s     S S EJ
CU#  """n$"
lIaL1$44I%%''!&.(F#A,	!q(88C!
) $, n s   B8B>__main__r   z3.10)rZ   )J__doc__
__future__r   sysrQ   	itertoolsr:   codecsr   typingr   r   r   r   r	   r
   r   r   parso.python.tokenr   parso.utilsr   r   r   rv   r  r#  r!  r*  r'  r  r  r+  r   r
  r)  r  r   r   decoder  r%   r    r0   r3   rN   rU   r[   unicode_character_namer   r   r   r   rY   r   r   r   r   r   r!   r   r   r  r   r$  r   argvpathopenrF   readr   r   r   r   r#   r$   <module>rW     s  	 ' 
 	     0 L L 		 	 		 	 

"
"		 	 		 	 &&	((
,, ..!00**$j $ //'*DF /@A F " +!
 -2 :( ? %2234  %225KK  #++K"L !))!4 iXKJ K4% 4@ @:&$%R QWQ
Q 1Q>CCHoQkQ	" !'ZAC=ZA $ZA #Y	ZA
 S#XZA kZAzB z88A;D	dqvvx 
 $-A&-IJe K 	s   H
H