ó
    ÷Þ j_1  ã                  óÐ  • S r SSKJr  SSKrSSKJr  SSKJrJrJ	r	  SSK
JrJrJr   " S S	5      r " S
 S\5      r " S S\5      r " S S\5      r\S   r\	\\4   r\\\\4   r\	\\S   4   r\\	S\\4      r " S S\5      rS&S jrS'S jr    S(S jr        S)S jrS*S jrS*S jrS+S jr S+S jr!S,S jr"S-S jr#S-S jr$S.S  jr%S/S! jr&S0S" jr'S1S# jr(S2S$ jr)S3S% jr*g)4z˜Handwritten parser of dependency specifiers.

The docstring for each __parse_* function contains EBNF-inspired grammar representing
the implementation.
é    )ÚannotationsN)ÚSequence)ÚLiteralÚ
NamedTupleÚUnioné   )ÚDEFAULT_RULESÚParserSyntaxErrorÚ	Tokenizerc                  ó^   • \ rS rSrSrSS jrSS jrSS jrSS jrSS jr	SS jr
SS	 jrSrg
)ÚNodeé   ©Úvaluec                ó   • Xl         g ©Nr   ©Úselfr   s     ÚK/var/www/html/gaurav/venv/lib/python3.13/site-packages/packaging/_parser.pyÚ__init__ÚNode.__init__   s   € Ø�
ó    c                ó   • U R                   $ r   r   ©r   s    r   Ú__str__ÚNode.__str__   s   € Ø�z‰zÐr   c                óR   • SU R                   R                   SU R                  < S3$ )NÚ<Ú(z)>)Ú	__class__Ú__name__r   r   s    r   Ú__repr__ÚNode.__repr__   s&   € Ø�4—>‘>×*Ñ*Ð+¨1¨T¯Z©Z©N¸"Ð=Ð=r   c                ó   • [         er   )ÚNotImplementedErrorr   s    r   Ú	serializeÚNode.serialize   s   € Ü!Ð!r   c                ó   • U R                   $ r   r   r   s    r   Ú__getstate__ÚNode.__getstate__   s   € à�z‰zÐr   c                ó†   • [        U[        5      (       d&  [        SU R                  R                   SU< 35      eXl        g )NúCannot restore z value from )Ú
isinstanceÚstrÚ	TypeErrorr    r!   r   r   s     r   Ú_restore_valueÚNode._restore_value#   s>   € Ü˜%¤×%Ñ%ÜØ! $§.¡.×"9Ñ"9Ð!:¸,ÀuÁiÐPóð ð �
r   c                ó¬  • [        U[        5      (       a  U R                  U5        g [        U[        5      (       aC  [	        U5      S:X  a4  Uu  p#[        U[
        5      (       a  SU;   a  U R                  US   5        g [        U[
        5      (       a  SU;   a  U R                  US   5        g [        SU R                  R                   SU< 35      e)Né   r   r,   z from )	r-   r.   r0   ÚtupleÚlenÚdictr/   r    r!   )r   ÚstateÚ_Ú	slot_dicts       r   Ú__setstate__ÚNode.__setstate__*   s´   € Ü�eœS×!Ñ!à×Ñ Ô&ØÜ�eœU×#Ñ#¬¨E«
°a«à ‰LˆAÜ˜)¤T×*Ñ*¨w¸)Ó/CØ×#Ñ# I¨gÑ$6Ô7ØÜ�eœT×"Ñ" w°%Ó'7à×Ñ  g¡Ô/ØÜ˜/¨$¯.©.×*AÑ*AÐ)BÀ&ÈÉ	ÐRÓSÐSr   N)r   r.   ÚreturnÚNone©r<   r.   )r   Úobjectr<   r=   )r7   r?   r<   r=   )r!   Ú
__module__Ú__qualname__Ú__firstlineno__Ú	__slots__r   r   r"   r&   r)   r0   r:   Ú__static_attributes__© r   r   r   r      s+   † Ø€Iôôô>ô"ôô÷Tr   r   c                  ó"   • \ rS rSrSrSS jrSrg)ÚVariableé<   rE   c                ó   • [        U 5      $ r   ©r.   r   s    r   r&   ÚVariable.serialize?   ó   € Ü�4‹yÐr   Nr>   ©r!   r@   rA   rB   rC   r&   rD   rE   r   r   rG   rG   <   ó   † Ø€I÷r   rG   c                  ó"   • \ rS rSrSrSS jrSrg)ÚValueéC   rE   c                ó^   • [        U 5      nSU;  a  SU S3$ SU;  a  SU S3$ [        S5      e)NÚ"Ú'z>Cannot serialize marker value containing both quote characters)r.   Ú
ValueErrorr   s     r   r&   ÚValue.serializeF   sG   € Ü�D“	ˆØ�eÓØ�u�g˜Q�<ÐØ�eÓØ�u�g˜Q�<ÐÜØLó
ð 	
r   Nr>   rM   rE   r   r   rP   rP   C   s   † Ø€I÷
r   rP   c                  ó"   • \ rS rSrSrSS jrSrg)ÚOpéQ   rE   c                ó   • [        U 5      $ r   rJ   r   s    r   r&   ÚOp.serializeT   rL   r   Nr>   rM   rE   r   r   rX   rX   Q   rN   r   rX   )ÚandÚorÚ
MarkerAtomÚ
MarkerListc                  óH   • \ rS rSr% S\S'   S\S'   S\S'   S\S'   S\S	'   S
rg)ÚParsedRequirementé_   r.   ÚnameÚurlú	list[str]ÚextrasÚ	specifierzMarkerList | NoneÚmarkerrE   N)r!   r@   rA   rB   Ú__annotations__rD   rE   r   r   ra   ra   _   s   ‡ Ø
ƒIØ	ƒHØÓØƒNØÖr   ra   c                ó0   • [        [        U [        S95      $ ©N)Úrules)Ú_parse_requirementr   r	   ©Úsources    r   Úparse_requirementrp   j   ó   € Üœi¨´mÑDÓEÐEr   c                ó  • U R                  S5        U R                  SSS9nUR                  nU R                  S5        [        U 5      nU R                  S5        [	        U 5      u  pEnU R                  SSS9  [        X$X5U5      $ )zA
requirement = WS? IDENTIFIER WS? extras WS? requirement_details
ÚWSÚ
IDENTIFIERz1package name at the start of dependency specifier©ÚexpectedÚENDzend of dependency specifier)ÚconsumeÚexpectÚtextÚ_parse_extrasÚ_parse_requirement_detailsra   )Ú	tokenizerÚ
name_tokenrc   rf   rd   rg   rh   s          r   rm   rm   n   s�   € ð ×Ñ�dÔà×!Ñ!ØÐRð "ð €Jð �?‰?€DØ×Ñ�dÔä˜9Ó%€FØ×Ñ�dÔä7¸	ÓBÑ€C�FØ×Ñ�UÐ%BÐÑCä˜T¨¸6ÓBÐBr   c                ó  • SnSnSnU R                  S5      (       a•  U R                  5         U R                  S5        U R                  nU R	                  SSS9R
                  nU R                  SS	S
9(       a  X!U4$ U R	                  SSS9  U R                  SS	S
9(       a  X!U4$ [        U USS9nOUU R                  n[        U 5      nU R                  S5        U R                  SS	S
9(       a  X!U4$ [        U UU(       a  SOSS9nX!U4$ )zr
requirement_details = AT URL (WS requirement_marker?)?
                    | specifier WS? (requirement_marker)?
Ú NÚATrs   ÚURLzURL after @ru   rw   T©Úpeekzwhitespace after URLz$semicolon (after URL and whitespace))Ú
span_startrv   zEcomma (within version specifier), semicolon (after version specifier)z0semicolon (after name with no version specifier))ÚcheckÚreadrx   Úpositionry   rz   Ú_parse_requirement_markerÚ_parse_specifier)r}   rg   rd   rh   Ú	url_startÚspecifier_starts         r   r|   r|   ƒ   s*  € ð €IØ
€CØ€Fà‡��t×ÑØ�‰ÔØ×Ñ˜$Ôà×&Ñ&ˆ	Ø×Ñ˜u¨}ÐÐ=×BÑBˆØ�?‰?˜5 tˆ?Ö,Ø FÐ+Ð+à×Ñ˜Ð(>ÐÑ?ð �?‰?˜5 tˆ?Ö,Ø FÐ+Ð+ä*ØØ Ø;ñ
‰ð $×,Ñ,ˆÜ$ YÓ/ˆ	Ø×Ñ˜$Ôà�?‰?˜5 tˆ?Ö,Ø FÐ+Ð+ä*ØØ&ö ñ XàGñ
ˆð ˜FÐ#Ð#r   c               ó´   • U R                  S5      (       d  U R                  SU S3USS9  U R                  5         [        U 5      nU R	                  S5        U$ )z+
requirement_marker = SEMICOLON marker WS?
Ú	SEMICOLONz	Expected z or endN©r…   Úspan_endrs   )r†   Úraise_syntax_errorr‡   Ú_parse_markerrx   )r}   r…   rv   rh   s       r   r‰   r‰   ¸   sa   € ð �?‰?˜;×'Ñ'Ø×$Ñ$Ø˜�z Ð)Ø!Øð 	%ñ 	
ð
 ‡N�NÔä˜9Ó%€FØ×Ñ�dÔà€Mr   c                óæ   • U R                  SSS9(       d  / $ U R                  SSSS9   U R                  S5        [        U 5      nU R                  S5        SSS5        U$ ! , (       d  f       W$ = f)	z?
extras = (LEFT_BRACKET wsp* extras_list? wsp* RIGHT_BRACKET)?
ÚLEFT_BRACKETTrƒ   ÚRIGHT_BRACKETrf   ©Úaroundrs   N)r†   Úenclosing_tokensrx   Ú_parse_extras_list)r}   rf   s     r   r{   r{   Í   s{   € ð �?‰?˜>°ˆ?Ö5Øˆ	à	×	#Ñ	#ØØØð 
$ò 
ð
 	×Ñ˜$ÔÜ# IÓ.ˆØ×Ñ˜$Ô÷
ð €M÷
ô 
ð €Mús   ©.A!Á!
A0c                óÈ  • / nU R                  S5      (       d  U$ UR                  U R                  5       R                  5         U R	                  S5        U R                  SSS9(       a  U R                  S5        OU R                  S5      (       d   U$ U R                  5         U R	                  S5        U R                  SSS9nUR                  UR                  5        MŸ  )	z6
extras_list = identifier (wsp* ',' wsp* identifier)*
rt   Trs   rƒ   z"Expected comma between extra namesÚCOMMAzextra name after commaru   )r†   Úappendr‡   rz   rx   r‘   ry   )r}   rf   Úextra_tokens      r   r™   r™   à   sÆ   € ð €Fà�?‰?˜<×(Ñ(Øˆà
‡M�M�)—.‘.Ó"×'Ñ'Ô(à
Ø×Ñ˜$ÔØ�?‰?˜<¨dˆ?Ö3Ø×(Ñ(Ð)MÕNØ—‘ ×)Ñ)Øð €Mð 	�‰ÔØ×Ñ˜$Ôà×&Ñ& |Ð>VÐ&ÐWˆØ�‰�k×&Ñ&Ô'ñ r   c                ó¸   • U R                  SSSS9   U R                  S5        [        U 5      nU R                  S5        SSS5        U$ ! , (       d  f       W$ = f)zf
specifier = LEFT_PARENTHESIS WS? version_many WS? RIGHT_PARENTHESIS
          | WS? version_many WS?
ÚLEFT_PARENTHESISÚRIGHT_PARENTHESISzversion specifierr–   rs   N)r˜   rx   Ú_parse_version_many)r}   Úparsed_specifierss     r   rŠ   rŠ   û   si   € ð
 
×	#Ñ	#ØØØ"ð 
$ò 
ð
 	×Ñ˜$ÔÜ/°	Ó:ÐØ×Ñ˜$Ô÷
ð Ð÷
ô 
ð Ðús   ’.A
Á

Ac                ó¾  • SnU R                  S5      (       GaC  U R                  nU R                  5       R                  nX-  nU R                  SSS9(       ad  SnUR	                  S5      (       d,  UR	                  S5      (       a  UR	                  S	5      (       d  S
nU R                  UUU R                  S-   S9  U R                  SSS9(       a  U R                  SUU R                  S9  U R                  S5        U R                  S5      (       d   U$ XR                  5       R                  -  nU R                  S5        U R                  S5      (       a  GMC  U$ )z8
version_many = (SPECIFIER (WS? COMMA WS? SPECIFIER)*)?
r€   Ú	SPECIFIERÚVERSION_PREFIX_TRAILTrƒ   z6.* suffix can only be used with `==` or `!=` operatorsz!=z==z===zN.* suffix cannot be used with pre-release, post-release, dev or local versionsr   r�   ÚVERSION_LOCAL_LABEL_TRAILz@Local version label can only be used with `==` or `!=` operatorsrs   r›   )r†   rˆ   r‡   rz   Ú
startswithr‘   rx   )r}   r¢   r…   rg   Úmessages        r   r¡   r¡     sX  € ð ÐØ
�/‰/˜+×
&Ò
&Ø×'Ñ'ˆ
Ø—N‘NÓ$×)Ñ)ˆ	ØÑ&ÐØ�?‰?Ð1¸ˆ?Ö=ØNˆGØ×#Ñ# D×)Ñ)Ø×$Ñ$ T×*Ñ*°9×3GÑ3GÈ×3NÑ3Nð,ð ð ×(Ñ(ØØ%Ø"×+Ñ+¨aÑ/ð )ñ ð
 �?‰?Ð6¸Tˆ?ÖBØ×(Ñ(ØRØ%Ø"×+Ñ+ð )ñ ð
 	×Ñ˜$ÔØ�‰˜w×'Ñ'Øð Ðð 	Ÿ^™^Ó-×2Ñ2Ñ2ÐØ×Ñ˜$Ôð9 �/‰/˜+×
&Ô
&ð< Ðr   c                ó0   • [        [        U [        S95      $ rk   )Ú_parse_full_markerr   r	   rn   s    r   Úparse_markerr«   5  rq   r   c                ó<   • [        U 5      nU R                  SSS9  U$ )Nrw   zend of marker expressionru   )r’   ry   )r}   Úretvals     r   rª   rª   9  s%   € Ü˜9Ó%€FØ×Ñ�UÐ%?ÐÑ@Ø€Mr   c                óê   • [        U 5      /nU R                  S5      (       aP  U R                  5       n[        U 5      nUR                  UR                  U45        U R                  S5      (       a  MP  U$ )z,
marker = marker_atom (BOOLOP marker_atom)+
ÚBOOLOP)Ú_parse_marker_atomr†   r‡   Úextendrz   )r}   Ú
expressionÚtokenÚ
expr_rights       r   r’   r’   ?  sf   € ô % YÓ/Ð0€JØ
�/‰/˜(×
#Ñ
#Ø—‘Ó ˆÜ'¨	Ó2ˆ
Ø×Ñ˜5Ÿ:™: zÐ2Ô3ð �/‰/˜(×
#Ó
#ð Ðr   c                ó<  • U R                  S5        U R                  SSS9(       aH  U R                  SSSS9   U R                  S5        [        U 5      nU R                  S5        SSS5        O[	        U 5      nU R                  S5        W$ ! , (       d  f       N!= f)	zk
marker_atom = WS? LEFT_PARENTHESIS WS? marker WS? RIGHT_PARENTHESIS WS?
            | WS? marker_item WS?
rs   rŸ   Trƒ   r    zmarker expressionr–   N)rx   r†   r˜   r’   Ú_parse_marker_item)r}   rh   s     r   r°   r°   K  s›   € ð ×Ñ�dÔØ‡�Ð)°€Ö5Ø×'Ñ'ØØØ&ð (ò 
ð
 ×Ñ˜dÔ#Ü!.¨yÓ!9ˆFØ×Ñ˜dÔ#÷
ð 
ô $ IÓ.ˆØ×Ñ�dÔØ€M÷
õ 
ús   ¸.BÂ
Bc                óÔ   • U R                  S5        [        U 5      nU R                  S5        [        U 5      nU R                  S5        [        U 5      nU R                  S5        XU4$ )z?
marker_item = WS? marker_var WS? marker_op WS? marker_var WS?
rs   )rx   Ú_parse_marker_varÚ_parse_marker_op)r}   Úmarker_var_leftÚ	marker_opÚmarker_var_rights       r   r¶   r¶   a  sg   € ð ×Ñ�dÔÜ'¨	Ó2€OØ×Ñ�dÔÜ  Ó+€IØ×Ñ�dÔÜ(¨Ó3ÐØ×Ñ�dÔØÐ(8Ð9Ð9r   c           
     óà  • U R                  S5      (       a3  [        U R                  5       R                  R	                  SS5      5      $ U R                  S5      (       a&  U R                  5       n [        UR                  5      $ U R                  SS	9  g! [        [        4 aG  n[        SU R                  UR                  UR                  [        UR                  5      -   4S9UeSnAff = f)
z'
marker_var = VARIABLE | QUOTED_STRING
ÚVARIABLEÚ.r8   ÚQUOTED_STRINGzInvalid quoted string)ro   ÚspanNz+Expected a marker variable or quoted string)r¨   )r†   Úprocess_env_varr‡   rz   ÚreplaceÚprocess_python_strÚSyntaxErrorrU   r
   ro   rˆ   r5   r‘   )r}   r³   Úexcs      r   r¸   r¸   o  sÑ   € ð ‡��z×"Ñ"Ü˜yŸ~™~Ó/×4Ñ4×<Ñ<¸SÀ#ÓFÓGÐGØ	�‰˜×	)Ñ	)Ø—‘Ó ˆð	Ü% e§j¡jÓ1Ð1ð 	×$Ñ$ØAð 	%ò 	
øô œZÐ(ó 	Ü#Ø'Ø ×'Ñ'Ø—n‘n e§n¡n´s¸5¿:¹:³Ñ&FÐGñð ð	ûð	ús   Á1B ÂC-Â&AC(Ã(C-c                ó:   • U S;   a  [        S5      $ [        U 5      $ )N)Úplatform_python_implementationÚpython_implementationrÈ   )rG   )Úenv_vars    r   rÂ   rÂ   …  s"   € ØÐMÓMÜÐ8Ó9Ð9ä˜Ó Ð r   c                óV   • [         R                  " U 5      n[        [        U5      5      $ r   )ÚastÚliteral_evalrP   r.   )Ú
python_strr   s     r   rÄ   rÄ   Œ  s!   € Ü×Ò˜ZÓ(€EÜ”�U“ÓÐr   c                óš  • U R                  S5      (       a  U R                  5         [        S5      $ U R                  S5      (       a;  U R                  5         U R                  SSS9  U R                  SSS9  [        S5      $ U R                  S	5      (       a#  [        U R                  5       R                  5      $ U R                  S
5      $ )z
marker_op = IN | NOT IN | OP
ÚINÚinÚNOTrs   zwhitespace after 'not'ru   z'in' after 'not'znot inÚOPzJExpected marker operator, one of <=, <, !=, ==, >=, >, ~=, ===, in, not in)r†   r‡   rX   ry   rz   r‘   )r}   s    r   r¹   r¹   ‘  s®   € ð ‡��t×ÑØ�‰ÔÜ�$‹xˆØ	�‰˜×	Ñ	Ø�‰ÔØ×Ñ˜Ð(@ÐÑAØ×Ñ˜Ð(:ÐÑ;Ü�(‹|ÐØ	�‰˜×	Ñ	Ü�)—.‘.Ó"×'Ñ'Ó(Ð(à×+Ñ+ØXó
ð 	
r   )ro   r.   r<   ra   )r}   r   r<   ra   )r}   r   r<   z"tuple[str, str, MarkerList | None])r}   r   r…   Úintrv   r.   r<   r_   )r}   r   r<   re   )r}   r   r<   r.   )ro   r.   r<   r_   )r}   r   r<   r_   )r}   r   r<   r^   )r}   r   r<   Ú
MarkerItem)r}   r   r<   Ú	MarkerVar)rÊ   r.   r<   rG   )rÎ   r.   r<   rP   )r}   r   r<   rX   )+Ú__doc__Ú
__future__r   rÌ   Úcollections.abcr   Útypingr   r   r   Ú
_tokenizerr	   r
   r   r   rG   rP   rX   ÚMarkerLogicalrÖ   r4   rÕ   r^   Úlistr_   ra   rp   rm   r|   r‰   r{   r™   rŠ   r¡   r«   rª   r’   r°   r¶   r¸   rÂ   rÄ   r¹   rE   r   r   Ú<module>rÞ      s=  ðñõ #ã 
Ý $ß -Ñ -ç CÑ C÷)Tñ )TôXˆtô ô
ˆDô 
ôˆô ð ˜Ñ$€Ø�(˜E�/Ñ"€	Ø�9˜b )Ð+Ñ,€
Ø�:˜x¨Ñ5Ð5Ñ6€
Ø�%˜ j°-Ð?Ñ@ÑA€
ô˜
ô ôFôCð*2$Øð2$à'ô2$ðjØðØ),ðØ8;ðàôô*ô&ô6ô"#ôRFôô	ôô,:ô
ô,!ôõ

r   