Ë
    ™2ÚiŽ(  ã                   ó  — d Z ddlZddlmZmZmZmZmZmZ ddl	m
Z
mZ  G d„ d«      Z G d„ d	e«      Z G d
„ de«      Z G d„ de«      Zeeef   Zeeeef   ZeZee   Z G d„ de«      Zdedefd„Zdedefd„Zdedeeeee   f   fd„Zdedededefd„Zdedee   fd„Zdedee   fd„Zdedefd„Zdedefd„Zdedefd„Zdedefd„Z dedefd„Z!dedefd „Z"dedefd!„Z#dedefd"„Z$d#edefd$„Z%d%edefd&„Z&dedefd'„Z'y)(z˜Handwritten parser of dependency specifiers.

The docstring for each __parse_* function contains ENBF-inspired grammar representing
the implementation.
é    N)ÚAnyÚListÚ
NamedTupleÚOptionalÚTupleÚUnioné   )ÚDEFAULT_RULESÚ	Tokenizerc                   ó@   — e Zd Zdeddfd„Zdefd„Zdefd„Zdefd„Zy)ÚNodeÚvalueÚreturnNc                 ó   — || _         y ©N©r   )Úselfr   s     úH/var/www/html/acx/venv/lib/python3.12/site-packages/packaging/_parser.pyÚ__init__zNode.__init__   s	   € Øˆ�
ó    c                 ó   — | j                   S r   r   ©r   s    r   Ú__str__zNode.__str__   s   € Ø�z‰zÐr   c                 ó<   — d| j                   j                  › d| › d�S )Nú<z('z')>)Ú	__class__Ú__name__r   s    r   Ú__repr__zNode.__repr__   s"   € Ø�4—>‘>×*Ñ*Ð+¨2¨d¨V°3Ð7Ð7r   c                 ó   — t         ‚r   )ÚNotImplementedErrorr   s    r   Ú	serializezNode.serialize   s   € Ü!Ð!r   )r   Ú
__module__Ú__qualname__Ústrr   r   r   r!   © r   r   r   r      s9   „ ð˜cð  dó ð˜ó ð8˜#ó 8ð"˜3ô "r   r   c                   ó   — e Zd Zdefd„Zy)ÚVariabler   c                 ó   — t        | «      S r   ©r$   r   s    r   r!   zVariable.serialize   ó   € Ü�4‹yÐr   N©r   r"   r#   r$   r!   r%   r   r   r'   r'      ó   „ ð˜3ô r   r'   c                   ó   — e Zd Zdefd„Zy)ÚValuer   c                 ó   — d| › d�S )Nú"r%   r   s    r   r!   zValue.serialize!   s   € Ø�4�&˜ˆ{Ðr   Nr+   r%   r   r   r.   r.       s   „ ð˜3ô r   r.   c                   ó   — e Zd Zdefd„Zy)ÚOpr   c                 ó   — t        | «      S r   r)   r   s    r   r!   zOp.serialize&   r*   r   Nr+   r%   r   r   r2   r2   %   r,   r   r2   c                   óL   — e Zd ZU eed<   eed<   ee   ed<   eed<   ee   ed<   y)ÚParsedRequirementÚnameÚurlÚextrasÚ	specifierÚmarkerN)r   r"   r#   r$   Ú__annotations__r   r   Ú
MarkerListr%   r   r   r5   r5   4   s&   … Ø
ƒIØ	ƒHØ�‰IÓØƒNØ�ZÑ Ô r   r5   Úsourcer   c                 ó6   — t        t        | t        ¬«      «      S ©N)Úrules)Ú_parse_requirementr   r
   ©r=   s    r   Úparse_requirementrC   ?   ó   € Üœi¨´mÔDÓEÐEr   Ú	tokenizerc                 ó  — | j                  d«       | j                  dd¬«      }|j                  }| j                  d«       t        | «      }| j                  d«       t	        | «      \  }}}| j                  dd¬«       t        |||||«      S )zI
    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_detailsr5   )rE   Ú
name_tokenr6   r8   r7   r9   r:   s          r   rA   rA   C   s–   € ð ×Ñ�dÔà×!Ñ!ØÐRð "ó €Jð �?‰?€DØ×Ñ�dÔä˜9Ó%€FØ×Ñ�dÔä7¸	ÓBÑ€Cˆ�FØ×Ñ�UÐ%BÐÔCä˜T 3¨°	¸6ÓBÐBr   c                 ó  — d}d}d}| j                  d«      rœ| j                  «        | j                  d«       | j                  }| j	                  dd¬«      j
                  }| j                  dd	¬
«      r|||fS | j	                  dd¬«       | j                  dd	¬
«      r|||fS t        | |d¬«      }nR| j                  }t        | «      }| j                  d«       | j                  dd	¬
«      r|||fS t        | ||rdnd¬«      }|||fS )z~
    requirement_details = AT URL (WS requirement_marker?)?
                        | specifier WS? (requirement_marker)?
    Ú NÚATrG   ÚURLzURL after @rI   rK   T©Úpeekzwhitespace after URLzURL and whitespace)Ú
span_startÚafterúversion specifierz#name and no valid version specifier)ÚcheckÚreadrL   ÚpositionrM   rN   Ú_parse_requirement_markerÚ_parse_specifier)rE   r9   r7   r:   Ú	url_startÚspecifier_starts         r   rP   rP   X   s-  € ð €IØ
€CØ€Fà‡��tÔØ�‰ÔØ×Ñ˜$Ôà×&Ñ&ˆ	Ø×Ñ˜u¨}ÐÓ=×BÑBˆØ�?‰?˜5 tˆ?Ô,Ø˜ FÐ+Ð+à×Ñ˜Ð(>ÐÔ?ð �?‰?˜5 tˆ?Ô,Ø˜ FÐ+Ð+ä*Ø )Ð3Gô
‰ð $×,Ñ,ˆÜ$ YÓ/ˆ	Ø×Ñ˜$Ôà�?‰?˜5 tˆ?Ô,Ø˜ FÐ+Ð+ä*ØØ&ñ ñ $à:ô
ˆð �˜FÐ#Ð#r   rX   rY   c                ó®   — | j                  d«      s| j                  d|› d�|¬«       | j                  «        t        | «      }| j	                  d«       |S )z3
    requirement_marker = SEMICOLON marker WS?
    Ú	SEMICOLONz!Expected end or semicolon (after ú))rX   rG   )r[   Úraise_syntax_errorr\   Ú_parse_markerrL   )rE   rX   rY   r:   s       r   r^   r^   ‹   s[   € ð �?‰?˜;Ô'Ø×$Ñ$Ø/°¨w°aÐ8Ø!ð 	%ô 	
ð ‡N�NÔä˜9Ó%€FØ×Ñ�dÔà€Mr   c                 óÞ   — | j                  dd¬«      sg S | j                  ddd¬«      5  | j                  d«       t        | «      }| j                  d«       ddd«       |S # 1 sw Y   S xY w)	zG
    extras = (LEFT_BRACKET wsp* extras_list? wsp* RIGHT_BRACKET)?
    ÚLEFT_BRACKETTrV   ÚRIGHT_BRACKETr8   ©ÚaroundrG   N)r[   Úenclosing_tokensrL   Ú_parse_extras_list)rE   r8   s     r   rO   rO   Ÿ   s{   € ð �?‰?˜>°ˆ?Ô5Øˆ	à	×	#Ñ	#ØØØð 
$ó 
ñ  ð
 	×Ñ˜$ÔÜ# IÓ.ˆØ×Ñ˜$Ô÷ ð €M÷ ð €Mús   ª.A"Á"A,c                 ó´  — g }| j                  d«      s|S |j                  | j                  «       j                  «       	 | j	                  d«       | j                  dd¬«      r| j                  d«       n| j                  d«      s	 |S | j                  «        | j	                  d«       | j                  dd¬«      }|j                  |j                  «       Œš)	z>
    extras_list = identifier (wsp* ',' wsp* identifier)*
    rH   TrG   rV   z"Expected comma between extra namesÚCOMMAzextra name after commarI   )r[   Úappendr\   rN   rL   re   rM   )rE   r8   Úextra_tokens      r   rm   rm   ²   sÀ   € ð €Fà�?‰?˜<Ô(Øˆà
‡M�M�)—.‘.Ó"×'Ñ'Ô(à
Ø×Ñ˜$ÔØ�?‰?˜<¨dˆ?Ô3Ø×(Ñ(Ð)MÕNØ—‘ Ô)Øð €Mð 	�‰ÔØ×Ñ˜$Ôà×&Ñ& |Ð>VÐ&ÓWˆØ�‰�k×&Ñ&Ô'ð r   c                 ó´   — | j                  ddd¬«      5  | j                  d«       t        | «      }| j                  d«       ddd«       |S # 1 sw Y   S xY w)zr
    specifier = LEFT_PARENTHESIS WS? version_many WS? RIGHT_PARENTHESIS
              | WS? version_many WS?
    ÚLEFT_PARENTHESISÚRIGHT_PARENTHESISrZ   rj   rG   N)rl   rL   Ú_parse_version_many)rE   Úparsed_specifierss     r   r_   r_   Í   si   € ð
 
×	#Ñ	#ØØØ"ð 
$ó 
ñ  ð
 	×Ñ˜$ÔÜ/°	Ó:ÐØ×Ñ˜$Ô÷ ð Ð÷ ð Ðús   •.AÁAc                 ó  — d}| j                  d«      ró| j                  }|| j                  «       j                  z  }| j                  dd¬«      r!| j	                  d|| j                  dz   ¬«       | j                  d	d¬«      r| j	                  d
|| j                  ¬«       | j                  d«       | j                  d«      s	 |S || j                  «       j                  z  }| j                  d«       | j                  d«      rŒó|S )z@
    version_many = (SPECIFIER (WS? COMMA WS? SPECIFIER)*)?
    rS   Ú	SPECIFIERÚVERSION_PREFIX_TRAILTrV   z6.* suffix can only be used with `==` or `!=` operatorsr	   )rX   Úspan_endÚVERSION_LOCAL_LABEL_TRAILz@Local version label can only be used with `==` or `!=` operatorsrG   ro   )r[   r]   r\   rN   re   rL   )rE   rv   rX   s      r   ru   ru   Þ   s  € ð ÐØ
�/‰/˜+Ô
&Ø×'Ñ'ˆ
Ø˜YŸ^™^Ó-×2Ñ2Ñ2ÐØ�?‰?Ð1¸ˆ?Ô=Ø×(Ñ(ØHØ%Ø"×+Ñ+¨aÑ/ð )ô ð
 �?‰?Ð6¸Tˆ?ÔBØ×(Ñ(ØRØ%Ø"×+Ñ+ð )ô ð
 	×Ñ˜$ÔØ�‰˜wÔ'Øð Ðð 	˜YŸ^™^Ó-×2Ñ2Ñ2ÐØ×Ñ˜$Ôð' �/‰/˜+Õ
&ð* Ðr   c                 ó6   — t        t        | t        ¬«      «      S r?   )Ú_parse_full_markerr   r
   rB   s    r   Úparse_markerr~   þ   rD   r   c                 óB   — t        | «      }| j                  dd¬«       |S )NrK   zend of marker expressionrI   )rf   rM   )rE   Úretvals     r   r}   r}     s%   € Ü˜9Ó%€FØ×Ñ�UÐ%?ÐÔ@Ø€Mr   c                 óÔ   — t        | «      g}| j                  d«      rJ| j                  «       }t        | «      }|j                  |j                  |f«       | j                  d«      rŒJ|S )z4
    marker = marker_atom (BOOLOP marker_atom)+
    ÚBOOLOP)Ú_parse_marker_atomr[   r\   ÚextendrN   )rE   Ú
expressionÚtokenÚ
expr_rights       r   rf   rf     s`   € ô % YÓ/Ð0€JØ
�/‰/˜(Ô
#Ø—‘Ó ˆÜ'¨	Ó2ˆ
Ø×Ñ˜5Ÿ:™: zÐ2Ô3ð �/‰/˜(Õ
#ð Ðr   c                 ó4  — | j                  d«       | j                  dd¬«      rK| j                  ddd¬«      5  | j                  d«       t        | «      }| j                  d«       ddd«       nt	        | «      }| j                  d«       S # 1 sw Y   ŒxY w)	zw
    marker_atom = WS? LEFT_PARENTHESIS WS? marker WS? RIGHT_PARENTHESIS WS?
                | WS? marker_item WS?
    rG   rs   TrV   rt   zmarker expressionrj   N)rL   r[   rl   rf   Ú_parse_marker_item)rE   r:   s     r   rƒ   rƒ     s    € ð ×Ñ�dÔØ‡�Ð)°€Ô5Ø×'Ñ'ØØØ&ð (ó 
ñ 	$ð
 ×Ñ˜dÔ#Ü!.¨yÓ!9ˆFØ×Ñ˜dÔ#÷	$ð 	$ô $ IÓ.ˆØ×Ñ�dÔØ€M÷	$ð 	$ús   ¹.BÂBc                 óÖ   — | j                  d«       t        | «      }| j                  d«       t        | «      }| j                  d«       t        | «      }| j                  d«       |||fS )zG
    marker_item = WS? marker_var WS? marker_op WS? marker_var WS?
    rG   )rL   Ú_parse_marker_varÚ_parse_marker_op)rE   Úmarker_var_leftÚ	marker_opÚmarker_var_rights       r   r‰   r‰   *  si   € ð ×Ñ�dÔÜ'¨	Ó2€OØ×Ñ�dÔÜ  Ó+€IØ×Ñ�dÔÜ(¨Ó3ÐØ×Ñ�dÔØ˜YÐ(8Ð9Ð9r   c                 ó  — | j                  d«      r3t        | j                  «       j                  j	                  dd«      «      S | j                  d«      r#t        | j                  «       j                  «      S | j                  d¬«       y)z/
    marker_var = VARIABLE | QUOTED_STRING
    ÚVARIABLEú.Ú_ÚQUOTED_STRINGz+Expected a marker variable or quoted string)ÚmessageN)r[   Úprocess_env_varr\   rN   ÚreplaceÚprocess_python_strre   ©rE   s    r   r‹   r‹   8  so   € ð ‡��zÔ"Ü˜yŸ~™~Ó/×4Ñ4×<Ñ<¸SÀ#ÓFÓGÐGØ	�‰˜Ô	)Ü! )§.¡.Ó"2×"7Ñ"7Ó8Ð8à×$Ñ$ØAð 	%õ 	
r   Úenv_varc                 óB   — | dk(  s| dk(  rt        d«      S t        | «      S )NÚplatform_python_implementationÚpython_implementation)r'   )rš   s    r   r–   r–   F  s+   € àÐ3Ò3ØÐ-Ò-äÐ8Ó9Ð9ä˜Ó Ð r   Ú
python_strc                 óT   — t        j                  | «      }t        t        |«      «      S r   )ÚastÚliteral_evalr.   r$   )rž   r   s     r   r˜   r˜   P  s!   € Ü×Ñ˜ZÓ(€EÜ”�U“ÓÐr   c                 óˆ  — | j                  d«      r| j                  «        t        d«      S | j                  d«      rA| j                  «        | j                  dd¬«       | j                  dd¬«       t        d«      S | j                  d	«      r#t        | j                  «       j                  «      S | j                  d
«      S )z&
    marker_op = IN | NOT IN | OP
    ÚINÚinÚNOTrG   zwhitespace after 'not'rI   z'in' after 'not'znot inÚOPzJExpected marker operator, one of <=, <, !=, ==, >=, >, ~=, ===, in, not in)r[   r\   r2   rM   rN   re   r™   s    r   rŒ   rŒ   U  s§   € ð ‡��tÔØ�‰ÔÜ�$‹xˆØ	�‰˜Ô	Ø�‰ÔØ×Ñ˜Ð(@ÐÔAØ×Ñ˜Ð(:ÐÔ;Ü�(‹|ÐØ	�‰˜Ô	Ü�)—.‘.Ó"×'Ñ'Ó(Ð(à×+Ñ+ð8ó
ð 	
r   )(Ú__doc__r    Útypingr   r   r   r   r   r   Ú
_tokenizerr
   r   r   r'   r.   r2   Ú	MarkerVarÚ
MarkerItemÚ
MarkerAtomr<   r5   r$   rC   rA   rP   Úintr^   rO   rm   r_   ru   r~   r}   rf   rƒ   r‰   r‹   r–   r˜   rŒ   r%   r   r   ú<module>r®      s   ðñó ß @× @ç 0÷"ñ "ôˆtô ô
ˆDô ô
ˆô ð
 �(˜E�/Ñ"€	Ø�9˜b )Ð+Ñ,€
ð
 €
Ø�#‰Y€
ô!˜
ô !ðF˜cð FÐ&7ó FðC )ð CÐ0Aó Cð*0$Øð0$à
ˆ3��X˜jÑ)Ð)Ñ*ó0$ðfØðØ),ðØ58ðàóð(˜Yð ¨4°©9ó ð& )ð °°S±	ó ð6 	ð ¨có ð" 9ð °ó ð@F˜ð F ó Fð )ð °
ó ð	˜Yð 	¨:ó 	ð )ð °
ó ð,: )ð :°
ó :ð
 ð 
¨yó 
ð!˜Sð ! Xó !ð 3ð ¨5ó ð

 	ð 
¨bô 
r   