ó
    áÅŸg­!  ã            	       ó€  • S r SSKrSSKrSSKrSSKJrJr  SSKJrJ	r	J
r
Jr  SSKJr  SSKJr  SSKJr  SSKJr  SS	KJr  SS
KJr  SSKJrJr   " S S\5      rS\\
   S\\   4S jr S&S\ S\\
   S\4S jjr!S\ S\S\"4S jr#S\S\ 4S jr$ " S S\%5      r&S\ S\'\(\(4   S\"S\RR                  4S jr*S\ S\RR                  4S jr+S\ S\ S\ 4S  jr,S\RR                  S\\    4S! jr-S\RR                  S"\\RR                     S#\RR                  S\\    4S$ jr.S\RR                  S"\\RR                     S\\    4S% jr/g)'z/
Parse Python code and perform AST validation.
é    N)Ú
CollectionÚIterator)ÚVERSION_TO_FEATURESÚFeatureÚTargetVersionÚsupports_feature)Úsyms)Úpygram)Údriver)ÚGrammar)Ú
ParseError)Ú
TokenError)ÚLeafÚNodec                   ó   • \ rS rSrSrSrg)ÚInvalidInputé   z7Raised when input source code fails all parse attempts.© N©Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__static_attributes__r   ó    ÚN/var/www/blue/EV-Temp_rev04/venv/lib/python3.13/site-packages/black/parsing.pyr   r      s   † ÜAr   r   Útarget_versionsÚreturnc                 ó  • U (       d/  [         R                  [         R                  [         R                  /$ / n[	        U [
        R                  5      (       d>  [	        U [
        R                  5      (       d  UR                  [         R                  5        [	        U [
        R                  5      (       d  UR                  [         R                  5        [        S U  5       5      (       a  UR                  [         R                  5        U$ )Nc              3   óT   #   • U H  n[         R                  [        U   ;   v •  M!     g 7f©N)r   ÚPATTERN_MATCHINGr   )Ú.0Úvs     r   Ú	<genexpr>Úget_grammars.<locals>.<genexpr>.   s!   é € Ð
WÁÀ!Œ7×#Ñ#Ô':¸1Ñ'=Ö=Âùs   ‚&()r
   Úpython_grammar_async_keywordsÚpython_grammarÚpython_grammar_soft_keywordsr   r   ÚASYNC_IDENTIFIERSr#   ÚappendÚASYNC_KEYWORDSÚany)r   Úgrammarss     r   Úget_grammarsr0      s¿   € Þô ×0Ñ0ä×!Ñ!ä×/Ñ/ð
ð 	
ð €HäØœ×2Ñ2÷ñ ä˜´×0HÑ0H×IÑIà�‰œ×<Ñ<Ô=Ü˜O¬W×-CÑ-C×DÑDà�‰œ×-Ñ-Ô.Ü
Ñ
WÁÓ
W×WÑWà�‰œ×;Ñ;Ô<ð €Or   Úsrc_txtc                 óX  • U R                  S5      (       d  U S-  n [        [        U5      5      nU(       a  [        US S9nSUR	                  5        3nOSn0 nU H,  n[
        R                  " U5      n UR                  U S5      n  O$   [!        U5      S:¼  d   eU[        U5         nUSe[#        U[$        5      (       a  ['        [(        R*                  U/5      nU$ ! [         aj  n	U	R                  S   u  p«U R                  5       n XÊS-
     nO! [         a    Sn Of = f[        S	U S
U
 SU S
U 35      XVR                  '    Sn	A	Mó  Sn	A	f[         aM  nUR                  S   u  p«[        S	U S
U
 SU S
UR                  S    35      XVR                  '    SnAGMH  SnAff = f)z4Given a string with source, return the lib2to3 Node.Ú
c                 ó   • U R                   $ r"   )Úvalue)Útvs    r   Ú<lambda>Úlib2to3_parse.<locals>.<lambda>@   s   € °R·X²Xr   )Úkeyz for target version Ú Té   z<line number missing in source>zCannot parsez: Ú:Nr   )Úendswithr0   ÚsetÚmaxÚprettyr   ÚDriverÚparse_stringr   ÚcontextÚ
splitlinesÚ
IndexErrorr   Úversionr   ÚargsÚlenÚ
isinstancer   r   r	   Ú
file_input)r1   r   r/   Úmax_tvÚtv_strÚerrorsÚgrammarÚdrvÚresultÚpeÚlinenoÚcolumnÚlinesÚfaulty_lineÚteÚexcs                   r   Úlib2to3_parserX   7   s°  € ð ×Ñ˜D×!Ñ!Ø�4‰ˆäœC Ó0Ó1€HÞÜ�_Ñ*=Ñ>ˆØ'¨¯©«Ð'8Ð9‰àˆà€FÛˆÜ�mŠm˜GÓ$ˆð	Ø×%Ñ% g¨tÓ4ˆFÙñ	 ô4 �6‹{˜aÓÐÐØ”S˜“[Ñ!ˆØ�tÐä�&œ$×ÑÜ”d—o‘o¨ xÓ0ˆØ€Møô5 ó 		ØŸZ™Z¨™]‰NˆFØ×&Ñ&Ó(ˆEð@Ø#¨Q¡JÑ/‘øÜó @Ø?’ð@úä&2Ø˜v˜h b¨¨°°&°¸¸K¸=ÐIó'ˆF—?‘?×#ûô ó 	àŸW™W Q™Z‰NˆFÜ&2Ø˜v˜h b¨¨°°&°¸¸B¿G¹GÀA¹J¸<ÐHó'ˆF—?‘?×#Ð#ûð	úsI   Á6C Ã 
F)Ã*!EÄDÄEÄD#Ä EÄ"D#Ä#&EÅF)ÅAF$Æ$F)rN   c                 óŒ   • [         R                  " U5      n UR                  U S5        g! [        [        [
        4 a     gf = f)NTF)r   rA   rB   r   r   ÚIndentationError)r1   rN   rO   s      r   Úmatches_grammarr[   i   sF   € Ü
�-Š-˜Ó
 €CðØ×Ñ˜ $Ô'ð øô œ
Ô$4Ð5ó Ùðús   ˜+ «AÁAÚnodec                 ó   • [        U 5      nU$ )z7Given a lib2to3 node, return its string representation.)Ústr)r\   Úcodes     r   Úlib2to3_unparser`   s   s   € äˆt‹9€DØ€Kr   c                   ó   • \ rS rSrSrSrg)ÚASTSafetyErroréy   zDRaised when Black's generated code is not equivalent to the old AST.r   Nr   r   r   r   rb   rb   y   s   † ÜNr   rb   ÚsrcrF   Útype_commentsc                óü   • Sn[         R                  " 5          [         R                  " S[        5        [         R                  " S[        5        [
        R                  " XXS9sS S S 5        $ ! , (       d  f       g = f)Nz	<unknown>Úignore)Úfeature_versionre   )ÚwarningsÚcatch_warningsÚsimplefilterÚSyntaxWarningÚDeprecationWarningÚastÚparse)rd   rF   re   Úfilenames       r   Ú_parse_single_versionrq   }   sS   € ð €HÜ	×	 Ò	 Õ	"Ü×Ò˜h¬Ô6Ü×Ò˜hÔ(:Ô;Ü�yŠyØ¨7ñ
÷ 
#×	"×	"ús   ˜AA-Á-
A;c                 óz  • [        S[        R                  S   S-   5       Vs/ sH  nSU4PM	     nnSn[        USS9 H  n [	        XSS9s  $    [        USS9 H  n [	        XSS9s  $    [        U5      es  snf ! [
         a#  nU(       d  [        U5      n S nAM`   S nAMf  S nAff = f! [
         a     M_  f = f)Né   r;   r:   T)Úreverse)re   F)ÚrangeÚsysÚversion_infoÚsortedrq   ÚSyntaxErrorr^   )rd   ÚminorÚversionsÚfirst_errorrF   Úes         r   Ú	parse_astr~   ‰   sÉ   € ä(-¨a´×1AÑ1AÀ!Ñ1DÀqÑ1HÔ(IÓJÑ(I˜u��E“
Ñ(I€HÐJà€KÜ˜(¨DÔ1ˆð	%Ü(¨ÀTÑJÒJñ 2ô ˜(¨DÔ1ˆð	Ü(¨ÀUÑKÒKñ 2ô �kÓ
"Ð"ùò# Køô ó 	%ÞÜ! !›f–õ ûð	%ûô ó 	Úð	ús/   £A7Á	A<Á	B,Á<
B)ÂB$Â$B)Â,
B:Â9B:Úlineendr5   c                 ó¦   • UR                  5        Vs/ sH  o"R                  5       PM     nnU R                  U5      nUR                  5       $ s  snf r"   )rD   ÚstripÚjoin)r   r5   ÚiÚstrippedÚ
normalizeds        r   Ú
_normalizer†   Ÿ   sL   € ð /4×.>Ñ.>Ô.@ÓAÑ.@¨Ÿ7™7ž9Ñ.@€HÐAØ—‘˜hÓ'€Jð ×ÑÓÐùò	 Bs   “Ac                 ó   • [        U / 5      $ )z=Simple visitor generating strings to compare ASTs by content.)Ú_stringify_ast)r\   s    r   Ústringify_astr‰   ©   s   € ä˜$ Ó#Ð#r   Úparent_stackÚ
new_parentc              #   óx   #   • UR                  U5        [        X5       S h  v•N   UR                  5         g  N7fr"   )r,   rˆ   Úpop)r\   rŠ   r‹   s      r   Ú_stringify_ast_with_new_parentrŽ   ®   s4   é € ð ×Ñ˜
Ô#Ü˜dÓ1×1Ð1Ø×ÑÕñ 2ùs   ‚ :¢8£:c              #   óô  #   • [        U [        R                  5      (       a6  [        U R                  [        5      (       a  U R
                  S:X  a  S U l        S[        U5      -   U R                  R                   S3v •  [        U R                  5       GH  n[        U [        R                  5      (       a    GO÷ [        X5      nS[        U5      S-   -   U S3v •  [        U[        5      (       a®  U H¥  nUS:X  ag  [        U [        R                  5      (       aH  [        U[        R                   5      (       a)  UR"                   H  n[%        XQU 5       S h  v•N   M     Mp  [        U[        R&                  5      (       d  M‘  [%        XAU 5       S h  v•N   M§     GM  [        U[        R&                  5      (       a  [%        X1U 5       S h  v•N   GMC  [        U [        R                  5      (       aY  US:X  aS  [        U[        5      (       a>  [        U5      S:¼  a/  [        US	   [        R(                  5      (       a  [+        S
U5      nO.US:X  a&  [        U[        5      (       a  UR-                  5       nOUnS[        U5      S-   -   U< SUR                  R                   3v •  GM     S[        U5      -   SU R                  R                   3v •  g ! [         a     GMU  f = f GN“ GN[ GN$7f)NÚuz    Ú(r;   Ú=Útargetsr5   é   éÿÿÿÿr3   Útype_commentz,  # z)  # /)rI   rn   ÚConstantr5   r^   ÚkindrH   Ú	__class__r   rx   Ú_fieldsÚ
TypeIgnoreÚgetattrÚAttributeErrorÚlistÚDeleteÚTupleÚeltsrŽ   ÚASTÚExprr†   Úrstrip)r\   rŠ   Úfieldr5   ÚitemÚeltr…   s          r   rˆ   rˆ   ¶   st  é € ä�4œŸ™×&Ñ&Ü�t—z‘z¤3×'Ñ'Ø�I‰I˜Óð
 ˆŒ	à”c˜,Ó'Ñ'Ð(¨¯©×)@Ñ)@Ð(AÀÐ
CÒCä˜Ÿ™×%ˆä�dœCŸN™N×+Ñ+Úð	Ü# DÓ0ˆEð œ3˜|Ó,¨qÑ0Ñ1Ð2°5°'¸Ð;Ò;ä�eœT×"Ñ"Û�ð ˜YÓ&Ü" 4¬¯©×4Ñ4Ü" 4¬¯©×3Ñ3à#Ÿyœy˜Ü#AØ¨tó$÷ ò ó  )ô
   ¤c§g¡g×.Ó.Ü=¸dÐRVÓW×WÒWô ô  ˜œsŸw™w×'Ñ'Ü5°eÈ4ÓP×PÓPô
 ˜4¤§¡×.Ñ.Ø˜WÓ$Ü˜u¤c×*Ñ*Ü˜Ó%¨Ó*ô ˜|¨BÑ/´·±×:Ñ:ô
 (¨¨eÓ4‘
Ø˜.Ó(¬Z¸¼s×-CÑ-Cà"Ÿ\™\›^‘
à"�
àœS Ó.°Ñ2Ñ3Ð4°Z±Nð CØ—O‘O×,Ñ,Ð-ð/õñi &ðr ”c˜,Ó'Ñ'Ð(¨¨t¯~©~×/FÑ/FÐ.GÐ
HÓHøôe ó 	Ûð	úòò
 Xò Qùsb   ‚B:K8Â=KÃBK8ÅK/
Å'K8ÆK8ÆK2Æ9K8ÇK5ÇDK8Ë
K,Ë'K8Ë+K,Ë,K8Ë2K8Ë5K8)r   )0r   rn   rv   ri   Úcollections.abcr   r   Ú
black.moder   r   r   r   Úblack.nodesr	   Úblib2to3r
   Úblib2to3.pgen2r   Úblib2to3.pgen2.grammarr   Úblib2to3.pgen2.parser   Úblib2to3.pgen2.tokenizer   Úblib2to3.pytreer   r   Ú
ValueErrorr   r>   rž   r0   r^   rX   Úboolr[   r`   Ú	Exceptionrb   ÚtupleÚintr¢   rq   r~   r†   r‰   rŽ   rˆ   r   r   r   Ú<module>r¶      s«  ðñó Û 
Û ß 0ç TÓ TÝ Ý Ý !Ý *Ý +Ý .ß &ôB�:ô Bð # mÑ"4ð ¸¸g¹ô ð@ @Bñ/Øð/Ø#-¨mÑ#<ð/à	õ/ðd˜Sð ¨7ð °tô ð˜$ð  3ô ôO�Yô Oð	
Ø	ð	
Ø˜S #˜X‘ð	
Ø:>ð	
à‡W�Wô	
ð#�3ð #˜3Ÿ7™7ô #ð,˜ð  Cð ¨Cô ð$˜Ÿ™ð $ H¨S¡Mô $ð
Ø
�'‰'ðØ!% c§g¡g¡ðØ<?¿G¹Gðàˆc�]ôðFI˜Ÿ™ð FI°°S·W±W±ð FIÀ(È3Á-õ FIr   