+
    JV-j²-  ã                  ó  € R t ^ RIHt ^ RIt^ RIHtHtHtHtH	t	H
t
 ^RIHtHt  ! R R4      t ! R R]4      t ! R	 R
]4      t ! R R]4      t]R3,          t]
]]3,          t]	]]]3,          t]
]]R,          3,          t]]
R]]3,          ,          t ! R R]4      tR R ltR R ltR R ltR R ltR R ltR R ltR R ltR R  ltR! R" lt R# R$ lt!R% R& lt"R' R( lt#R) R* lt$R+ R, lt%R- R. lt&R/ R0 lt'R1 R2 lt(R# )4z˜Handwritten parser of dependency specifiers.

The docstring for each __parse_* function contains EBNF-inspired grammar representing
the implementation.
)ÚannotationsN)ÚListÚLiteralÚ
NamedTupleÚSequenceÚTupleÚUnion)ÚDEFAULT_RULESÚ	Tokenizerc                  ón   € ] tR t^tRtR R ltR R ltR R ltR R ltR	 R
 lt	R R lt
R R ltRtR# )ÚNodec               ó    € V ^8„  d   QhRRRR/# )é   ÚvalueÚstrÚreturnÚNone© )Úformats   "Úb/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/packaging/_parser.pyÚ__annotate__ÚNode.__annotate__   s   € ÷ ñ ˜cð  dñ ó    c                	ó   € Wn         R # ©N©r   ©Úselfr   s   &&r   Ú__init__ÚNode.__init__   s   € ØŽ
r   c               ó   € V ^8„  d   QhRR/# ©r   r   r   r   )r   s   "r   r   r      s   € ÷ ñ ˜ñ r   c                	ó   € V P                   # r   r   ©r   s   &r   Ú__str__ÚNode.__str__   s   € Ø�z‰zÐr   c               ó   € V ^8„  d   QhRR/# r!   r   )r   s   "r   r   r      s   € ÷ >ñ >˜#ñ >r   c                	óR   € R V P                   P                   RV P                  : R2# )Ú<Ú(z)>)Ú	__class__Ú__name__r   r#   s   &r   Ú__repr__ÚNode.__repr__   s&   € Ø�4—>‘>×*Ñ*Ð+¨1¨T¯Z©Z©N¸"Ð=Ð=r   c               ó   € V ^8„  d   QhRR/# r!   r   )r   s   "r   r   r      s   € ÷ "ñ "˜3ñ "r   c                	ó   € \         hr   )ÚNotImplementedErrorr#   s   &r   Ú	serializeÚNode.serialize   s   € Ü!Ð!r   c               ó   € V ^8„  d   QhRR/# r!   r   )r   s   "r   r   r      s   € ÷ ñ ˜cñ r   c                	ó   € V P                   # r   r   r#   s   &r   Ú__getstate__ÚNode.__getstate__   s   € à�z‰zÐr   c               ó    € V ^8„  d   QhRRRR/# )r   r   Úobjectr   r   r   )r   s   "r   r   r   "   s   € ÷ ñ  Fð ¨tñ r   c                	óŠ   € \        V\        4      '       g'   \        R V P                  P                   RV: 24      hWn        R# )úCannot restore z value from N)Ú
isinstancer   Ú	TypeErrorr*   r+   r   r   s   &&r   Ú_restore_valueÚNode._restore_value"   s>   € Ü˜%¤×%Ò%ÜØ! $§.¡.×"9Ñ"9Ð!:¸,ÀuÁiÐPóð ð Ž
r   c               ó    € V ^8„  d   QhRRRR/# )r   Ústater8   r   r   r   )r   s   "r   r   r   )   s   € ÷ Tñ T &ð T¨Tñ Tr   c                	óÐ  € \        V\        4      '       d   V P                  V4       R # \        V\        4      '       dL   \	        V4      ^8X  d<   Vw  r#\        V\
        4      '       d"   RV9   d   V P                  VR,          4       R # \        V\
        4      '       d"   RV9   d   V P                  VR,          4       R # \        RV P                  P                   RV: 24      h)Nr   r:   z from )	r;   r   r=   ÚtupleÚlenÚdictr<   r*   r+   )r   r@   Ú_Ú	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   r   N)r+   Ú
__module__Ú__qualname__Ú__firstlineno__Ú	__slots__r   r$   r,   r1   r5   r=   rG   Ú__static_attributes__r   r   r   r   r      s1   † Ø€Iõõõ>õ"õõ÷Tñ Tr   r   c                  ó&   € ] tR t^;tRtR R ltRtR# )ÚVariablec               ó   € V ^8„  d   QhRR/# r!   r   )r   s   "r   r   ÚVariable.__annotate__>   ó   € ÷ ñ ˜3ñ r   c                	ó   € \        V 4      # r   ©r   r#   s   &r   r1   ÚVariable.serialize>   ó   € Ü�4‹yÐr   r   N©r+   rI   rJ   rK   rL   r1   rM   r   r   r   rO   rO   ;   ó   † Ø€I÷ñ r   rO   c                  ó&   € ] tR t^BtRtR R ltRtR# )ÚValuec               ó   € V ^8„  d   QhRR/# r!   r   )r   s   "r   r   ÚValue.__annotate__E   s   € ÷ ñ ˜3ñ r   c                	ó   € R V  R 2# )Ú"r   r#   s   &r   r1   ÚValue.serializeE   s   € Ø�4�&˜ˆ{Ðr   r   NrW   r   r   r   rZ   rZ   B   s   † Ø€I÷ñ r   rZ   c                  ó&   € ] tR t^ItRtR R ltRtR# )ÚOpc               ó   € V ^8„  d   QhRR/# r!   r   )r   s   "r   r   ÚOp.__annotate__L   rR   r   c                	ó   € \        V 4      # r   rT   r#   s   &r   r1   ÚOp.serializeL   rV   r   r   NrW   r   r   r   ra   ra   I   rX   r   ra   Ú
MarkerAtomÚ
MarkerListc                  óJ   € ] tR t^Wt$ R]R&   R]R&   R]R&   R]R&   R]R&   R	tR
# )ÚParsedRequirementr   ÚnameÚurlú	list[str]ÚextrasÚ	specifierzMarkerList | NoneÚmarkerr   N)r+   rI   rJ   rK   Ú__annotations__rM   r   r   r   ri   ri   W   s   ‡ Ø
ƒIØ	ƒHØÓØƒNØ×r   ri   c               ó    € V ^8„  d   QhRRRR/# )r   Úsourcer   r   ri   r   )r   s   "r   r   r   b   s   € ÷ Fñ F˜cð FÐ&7ñ Fr   c                ó6   € \        \        V \        R 7      4      # ©)Úrules)Ú_parse_requirementr
   r	   ©rr   s   &r   Úparse_requirementrx   b   ó   € Üœi¨´mÔDÓEÐEr   c               ó    € V ^8„  d   QhRRRR/# )r   Ú	tokenizerr
   r   ri   r   )r   s   "r   r   r   f   s   € ÷ Cñ C )ð CÐ0Añ Cr   c                ó  € V P                  R4       V P                  RRR7      pVP                  pV P                  R4       \        V 4      pV P                  R4       \	        V 4      w  rEpV P                  RRR7       \        W$W5V4      # )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_detailsri   )r{   Ú
name_tokenrj   rm   rk   rn   ro   s   &      r   rv   rv   f   s�   € ð ×Ñ�dÔà×!Ñ!ØÐRð "ó €Jð �?‰?€DØ×Ñ�dÔä˜9Ó%€FØ×Ñ�dÔä7¸	ÓBÑ€C�FØ×Ñ�UÐ%BÐÔCä˜T¨¸6ÓBÐBr   c               ó    € V ^8„  d   QhRRRR/# )r   r{   r
   r   z"tuple[str, str, MarkerList | None]r   )r   s   "r   r   r   {   s   € ÷ 2$ñ 2$Øð2$à'ñ2$r   c                óJ  € RpRpRpV P                  R4      '       d§   V P                  4        V P                  R4       V P                  pV P	                  RRR7      P
                  pV P                  RR	R
7      '       d   W!V3# V P	                  RRR7       V P                  RR	R
7      '       d   W!V3# \        V VRR7      pM]V P                  p\        V 4      pV P                  R4       V P                  RR	R
7      '       d   W!V3# \        T TV'       d   RMRR7      pW!V3# )zr
requirement_details = AT URL (WS requirement_marker?)?
                    | specifier WS? (requirement_marker)?
Ú NÚATr}   ÚURLzURL after @r   r�   T©Úpeekzwhitespace after URLz$semicolon (after URL and whitespace))Ú
span_startr€   zEcomma (within version specifier), semicolon (after version specifier)z0semicolon (after name with no version specifier))ÚcheckÚreadr‚   Úpositionrƒ   r„   Ú_parse_requirement_markerÚ_parse_specifier)r{   rn   rk   ro   Ú	url_startÚspecifier_starts   &     r   r†   r†   {   s3  € ð €IØ
€CØ€Fà‡��t×ÒØ�‰ÔØ×Ñ˜$Ôà×&Ñ&ˆ	Ø×Ñ˜u¨}ÐÓ=×BÑBˆØ�?‰?˜5 tˆ?×,Ò,Ø FÐ+Ð+à×Ñ˜Ð(>ÐÔ?ð �?‰?˜5 tˆ?×,Ò,Ø FÐ+Ð+ä*ØØ Ø;ô
‰ð $×,Ñ,ˆÜ$ YÓ/ˆ	Ø×Ñ˜$Ôà�?‰?˜5 tˆ?×,Ò,Ø FÐ+Ð+ä*ØØ&÷ ñ XàGô
ˆð ˜FÐ#Ð#r   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	r   r{   r
   r�   Úintr€   r   r   rg   r   )r   s   "r   r   r   °   s,   € ÷ ñ ØðØ),ðØ8;ðàñr   c               ó¼   € V P                  R4      '       g   V P                  RV R2VRR7       V P                  4        \        V 4      pV P	                  R4       V# )z+
requirement_marker = SEMICOLON marker WS?
Ú	SEMICOLONz	Expected z or endN©r�   Úspan_endr}   )r�   Úraise_syntax_errorr‘   Ú_parse_markerr‚   )r{   r�   r€   ro   s   &$$ r   r“   r“   °   sa   € ð �?‰?˜;×'Ò'Ø×$Ñ$Ø˜�z Ð)Ø!Øð 	%ô 	
ð
 ‡N�NÔä˜9Ó%€FØ×Ñ�dÔà€Mr   c               ó    € V ^8„  d   QhRRRR/# ©r   r{   r
   r   rl   r   )r   s   "r   r   r   Å   s   € ÷ ñ ˜Yð ¨9ñ r   c                ó  € V P                  RRR7      '       g   . # V P                  RRRR7      ;_uu_ 4        V P                  R4       \        V 4      pV P                  R4       RRR4       V#   + '       g   i     X# ; i)	z?
extras = (LEFT_BRACKET wsp* extras_list? wsp* RIGHT_BRACKET)?
ÚLEFT_BRACKETTr�   ÚRIGHT_BRACKETrm   ©Úaroundr}   N)r�   Úenclosing_tokensr‚   Ú_parse_extras_list)r{   rm   s   & r   r…   r…   Å   sƒ   € ð �?‰?˜>°ˆ?×5Ò5Øˆ	à	×	#Ñ	#ØØØð 
$÷ 
õ 
ð
 	×Ñ˜$ÔÜ# IÓ.ˆØ×Ñ˜$Ô÷
ð €M÷
ö 
ð €Mús   ¸.A0Á0B	c               ó    € V ^8„  d   QhRRRR/# r    r   )r   s   "r   r   r   Ø   s   € ÷ ñ  )ð °	ñ r   c                óÚ  € . pV P                  R4      '       g   V# VP                  V P                  4       P                  4        V P	                  R4       V P                  RRR7      '       d   V P                  R4       MV P                  R4      '       g    V# V P                  4        V P	                  R4       V P                  RRR7      pVP                  VP                  4       K¨  )	z6
extras_list = identifier (wsp* ',' wsp* identifier)*
r~   Tr}   r�   z"Expected comma between extra namesÚCOMMAzextra name after commar   )r�   Úappendr‘   r„   r‚   r�   rƒ   )r{   rm   Úextra_tokens   &  r   r§   r§   Ø   sÄ   € ð €Fà�?‰?˜<×(Ò(Øˆà
‡M�M�)—.‘.Ó"×'Ñ'Ô(à
Ø×Ñ˜$ÔØ�?‰?˜<¨dˆ?×3Ò3Ø×(Ñ(Ð)MÕNØ—‘ ×)Ò)Øð €Mð 	�‰ÔØ×Ñ˜$Ôà×&Ñ& |Ð>VÐ&ÓWˆØ�‰�k×&Ñ&Ö'r   c               ó    € V ^8„  d   QhRRRR/# ©r   r{   r
   r   r   r   )r   s   "r   r   r   ó   s   € ÷ ñ  	ð ¨cñ r   c                óÒ   € V P                  RRRR7      ;_uu_ 4        V P                  R4       \        V 4      pV P                  R4       RRR4       V#   + '       g   i     X# ; i)zf
specifier = LEFT_PARENTHESIS WS? version_many WS? RIGHT_PARENTHESIS
          | WS? version_many WS?
ÚLEFT_PARENTHESISÚRIGHT_PARENTHESISzversion specifierr¤   r}   N)r¦   r‚   Ú_parse_version_many)r{   Úparsed_specifierss   & r   r”   r”   ó   sn   € ð
 
×	#Ñ	#ØØØ"ð 
$÷ 
õ 
ð
 	×Ñ˜$ÔÜ/°	Ó:ÐØ×Ñ˜$Ô÷
ð Ð÷
ö 
ð Ðús   �.AÁA&	c               ó    € V ^8„  d   QhRRRR/# r®   r   )r   s   "r   r   r     s   € ÷ ñ  9ð °ñ r   c                ó:  € RpV P                  R4      '       Ed   V P                  pWP                  4       P                  ,          pV P                  RRR7      '       d&   V P	                  RVV P                  ^,           R7       V P                  RRR7      '       d   V P	                  R	VV P                  R7       V P                  R
4       V P                  R4      '       g    V# WP                  4       P                  ,          pV P                  R
4       EK  V# )z8
version_many = (SPECIFIER (WS? COMMA WS? SPECIFIER)*)?
rŠ   Ú	SPECIFIERÚVERSION_PREFIX_TRAILTr�   z6.* suffix can only be used with `==` or `!=` operatorsr›   ÚVERSION_LOCAL_LABEL_TRAILz@Local version label can only be used with `==` or `!=` operatorsr}   rª   )r�   r’   r‘   r„   r�   r‚   )r{   r³   r�   s   &  r   r²   r²     s  € ð ÐØ
�/‰/˜+×
&Ó
&Ø×'Ñ'ˆ
ØŸ^™^Ó-×2Ñ2Õ2ÐØ�?‰?Ð1¸ˆ?×=Ò=Ø×(Ñ(ØHØ%Ø"×+Ñ+¨aÕ/ð )ô ð
 �?‰?Ð6¸Tˆ?×BÒBØ×(Ñ(ØRØ%Ø"×+Ñ+ð )ô ð
 	×Ñ˜$ÔØ�‰˜w×'Ò'Øð Ðð 	Ÿ^™^Ó-×2Ñ2Õ2ÐØ×Ñ˜$×àÐr   c               ó    € V ^8„  d   QhRRRR/# )r   rr   r   r   rg   r   )r   s   "r   r   r   $  s   € ÷ Fñ F˜ð F ñ Fr   c                ó6   € \        \        V \        R 7      4      # rt   )Ú_parse_full_markerr
   r	   rw   s   &r   Úparse_markerr¼   $  ry   r   c               ó    € V ^8„  d   QhRRRR/# ©r   r{   r
   r   rg   r   )r   s   "r   r   r   (  s   € ÷ ñ  )ð °
ñ r   c                óB   € \        V 4      pV P                  R RR7       V# )r�   zend of marker expressionr   )rž   rƒ   )r{   Úretvals   & r   r»   r»   (  s%   € Ü˜9Ó%€FØ×Ñ�UÐ%?ÐÔ@Ø€Mr   c               ó    € V ^8„  d   QhRRRR/# r¾   r   )r   s   "r   r   r   .  s   € ÷ 	ñ 	˜Yð 	¨:ñ 	r   c                óÀ   € \        V 4      .pV P                  R4      '       d;   V P                  4       p\        V 4      pVP                  VP                  V34       KQ  V# )z,
marker = marker_atom (BOOLOP marker_atom)+
ÚBOOLOP)Ú_parse_marker_atomr�   r‘   Úextendr„   )r{   Ú
expressionÚtokenÚ
expr_rights   &   r   rž   rž   .  sS   € ô % YÓ/Ð0€JØ
�/‰/˜(×
#Ò
#Ø—‘Ó ˆÜ'¨	Ó2ˆ
Ø×Ñ˜5Ÿ:™: zÐ2Ö3ØÐr   c               ó    € V ^8„  d   QhRRRR/# )r   r{   r
   r   rf   r   )r   s   "r   r   r   :  s   € ÷ ñ  )ð °
ñ r   c                ó^  € V P                  R4       V P                  RRR7      '       dT   V P                  RRRR7      ;_uu_ 4        V P                  R4       \        V 4      pV P                  R4       RRR4       M\	        V 4      pV P                  R4       X#   + '       g   i     L#; i)	zk
marker_atom = WS? LEFT_PARENTHESIS WS? marker WS? RIGHT_PARENTHESIS WS?
            | WS? marker_item WS?
r}   r°   Tr�   r±   zmarker expressionr¤   N)r‚   r�   r¦   rž   Ú_parse_marker_item)r{   ro   s   & r   rÄ   rÄ   :  s£   € ð ×Ñ�dÔØ‡�Ð)°€×5Ò5Ø×'Ñ'ØØØ&ð (÷ 
õ 
ð
 ×Ñ˜dÔ#Ü!.¨yÓ!9ˆFØ×Ñ˜dÔ#÷
ð 
ô $ IÓ.ˆØ×Ñ�dÔØ€M÷
÷ 
ús   Á.BÂB,	c               ó    € V ^8„  d   QhRRRR/# )r   r{   r
   r   Ú
MarkerItemr   )r   s   "r   r   r   P  s   € ÷ :ñ : )ð :°
ñ :r   c                óÔ   € V P                  R4       \        V 4      pV P                  R4       \        V 4      pV P                  R4       \        V 4      pV P                  R4       WV3# )z?
marker_item = WS? marker_var WS? marker_op WS? marker_var WS?
r}   )r‚   Ú_parse_marker_varÚ_parse_marker_op)r{   Úmarker_var_leftÚ	marker_opÚmarker_var_rights   &   r   rË   rË   P  sg   € ð ×Ñ�dÔÜ'¨	Ó2€OØ×Ñ�dÔÜ  Ó+€IØ×Ñ�dÔÜ(¨Ó3ÐØ×Ñ�dÔØÐ(8Ð9Ð9r   c               ó    € V ^8„  d   QhRRRR/# )r   r{   r
   r   Ú	MarkerVarr   )r   s   "r   r   r   ^  s   € ÷ 
ñ 
 ð 
¨yñ 
r   c                ó2  € V P                  R4      '       d4   \        V P                  4       P                  P	                  RR4      4      # V P                  R4      '       d$   \        V P                  4       P                  4      # V P                  RR7       R# )z'
marker_var = VARIABLE | QUOTED_STRING
ÚVARIABLEÚ.rE   ÚQUOTED_STRINGz+Expected a marker variable or quoted string)ÚmessageN)r�   Úprocess_env_varr‘   r„   ÚreplaceÚprocess_python_strr�   ©r{   s   &r   rÏ   rÏ   ^  su   € ð ‡��z×"Ò"Ü˜yŸ~™~Ó/×4Ñ4×<Ñ<¸SÀ#ÓFÓGÐGØ	�‰˜×	)Ò	)Ü! )§.¡.Ó"2×"7Ñ"7Ó8Ð8à×$Ñ$ØAð 	%ö 	
r   c               ó    € V ^8„  d   QhRRRR/# )r   Úenv_varr   r   rO   r   )r   s   "r   r   r   l  s   € ÷ !ñ !˜Sð ! Xñ !r   c                ó<   € V R9   d   \        R 4      # \        V 4      # )Úplatform_python_implementation)râ   Úpython_implementation)rO   )rà   s   &r   rÛ   rÛ   l  s"   € ØÐMÔMÜÐ8Ó9Ð9ä˜Ó Ð r   c               ó    € V ^8„  d   QhRRRR/# )r   Ú
python_strr   r   rZ   r   )r   s   "r   r   r   s  s   € ÷ ñ  3ð ¨5ñ r   c                óV   € \         P                  ! V 4      p\        \        V4      4      # r   )ÚastÚliteral_evalrZ   r   )rå   r   s   & r   rÝ   rÝ   s  s!   € Ü×Ò˜ZÓ(€EÜ”�U“ÓÐr   c               ó    € V ^8„  d   QhRRRR/# )r   r{   r
   r   ra   r   )r   s   "r   r   r   x  s   € ÷ 
ñ 
 	ð 
¨bñ 
r   c                ó¬  € V P                  R4      '       d   V P                  4        \        R4      # V P                  R4      '       dB   V P                  4        V P                  RRR7       V P                  RRR7       \        R4      # V P                  R	4      '       d$   \        V P                  4       P                  4      # V P                  R
4      # )z
marker_op = IN | NOT IN | OP
ÚINÚinÚNOTr}   zwhitespace after 'not'r   z'in' after 'not'znot inÚOPzJExpected marker operator, one of <=, <, !=, ==, >=, >, ~=, ===, in, not in)r�   r‘   ra   rƒ   r„   r�   rÞ   s   &r   rÐ   rÐ   x  s®   € ð ‡��t×ÒØ�‰ÔÜ�$‹xˆØ	�‰˜×	Ò	Ø�‰ÔØ×Ñ˜Ð(@ÐÔAØ×Ñ˜Ð(:ÐÔ;Ü�(‹|ÐØ	�‰˜×	Ò	Ü�)—.‘.Ó"×'Ñ'Ó(Ð(à×+Ñ+ØXó
ð 	
r   )ÚandÚor))Ú__doc__Ú
__future__r   rç   Útypingr   r   r   r   r   r   Ú
_tokenizerr	   r
   r   rO   rZ   ra   ÚMarkerLogicalrÕ   rÍ   rf   rg   ri   rx   rv   r†   r“   r…   r§   r”   r²   r¼   r»   rž   rÄ   rË   rÏ   rÛ   rÝ   rÐ   r   r   r   Ú<module>rö      s  ðñõ #ã 
ß D× Dç 0÷)Tñ )TôXˆtô ôˆDô ôˆô ð ˜Õ$€Ø�(˜E�/Õ"€	Ø�9˜b )Ð+Õ,€
Ø�:˜x¨Õ5Ð5Õ6€
Ø�%˜ j°-Ð?Õ@ÕA€
ô˜
ô õFõCõ*2$õjõ*õ&õ6õ"õ@Fõõ	õõ,:õ
õ!õ÷

r   