§
    üxIfk(  ã                   óX  — 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'dS )(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                   óB   — 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dS )ÚNodeÚvalueÚreturnNc                 ó   — || _         d S ©N©r   )Úselfr   s     úE/var/www/piapp/venv/lib/python3.11/site-packages/packaging/_parser.pyÚ__init__zNode.__init__   s   € ØˆŒ
ˆ
ˆ
ó    c                 ó   — | j         S r   r   ©r   s    r   Ú__str__zNode.__str__   s
   € ØŒzÐr   c                 ó(   — d| j         j        › d| › d�S )Nú<z('z')>)Ú	__class__Ú__name__r   s    r   Ú__repr__zNode.__repr__   s    € Ø7�4”>Ô*Ð7Ð7¨dÐ7Ð7Ð7Ð7r   c                 ó   — t           ‚r   )ÚNotImplementedErrorr   s    r   Ú	serializezNode.serialize   s   € Ý!Ð!r   )r   Ú
__module__Ú__qualname__Ústrr   r   r   r!   © r   r   r   r      s‡   € € € € € ð˜cð  dð ð ð ð ð˜ð ð ð ð ð8˜#ð 8ð 8ð 8ð 8ð"˜3ð "ð "ð "ð "ð "ð "r   r   c                   ó   — e Zd Zdefd„ZdS )ÚVariabler   c                 ó    — t          | ¦  «        S r   ©r$   r   s    r   r!   zVariable.serialize   ó   € Ý�4‰yŒ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dS )Ú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dS )Ú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                   óZ   — e Zd ZU eed<   eed<   ee         ed<   eed<   ee         ed<   dS )ÚParsedRequirementÚnameÚurlÚextrasÚ	specifierÚmarkerN)r   r"   r#   r$   Ú__annotations__r   r   Ú
MarkerListr%   r   r   r5   r5   4   sN   € € € € € € Ø
€I€I�IØ	€H€H�HØ�ŒIÐÐÑØ€N€N�NØ�ZÔ Ð Ð Ñ Ð Ð r   r5   Úsourcer   c                 óH   — t          t          | t          ¬¦  «        ¦  «        S ©N)Úrules)Ú_parse_requirementr   r
   ©r=   s    r   Úparse_requirementrC   ?   ó   € Ý�i¨µmÐDÑDÔDÑEÔEÐEr   Ú	tokenizerc                 óT  — |                       d¦  «         |                      dd¬¦  «        }|j        }|                       d¦  «         t          | ¦  «        }|                       d¦  «         t	          | ¦  «        \  }}}|                      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ÔBÑ€Cˆ�FØ×Ò�UÐ%BÐÑCÔCÐCå˜T 3¨°	¸6ÑBÔBÐBr   c                 óX  — d}d}d}|                       d¦  «        r®|                      ¦   «          |                      d¦  «         | j        }|                      dd¬¦  «        j        }|                       dd	¬
¦  «        r|||fS |                      dd¬¦  «         |                       dd	¬
¦  «        r|||fS t          | |d¬¦  «        }n]| j        }t          | ¦  «        }|                      d¦  «         |                       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ˆØ�?Š?˜5 tˆ?Ñ,Ô,ð 	,Ø˜ FÐ+Ð+à×Ò˜Ð(>ÐÑ?Ô?Ð?ð �?Š?˜5 tˆ?Ñ,Ô,ð 	,Ø˜ FÐ+Ð+å*Ø )Ð3Gð
ñ 
ô 
ˆˆð $Ô,ˆÝ$ YÑ/Ô/ˆ	Ø×Ò˜$ÑÔÐà�?Š?˜5 tˆ?Ñ,Ô,ð 	,Ø˜ FÐ+Ð+å*ØØ&ð ð;Ð#Ð#à:ð
ñ 
ô 
ˆð �˜FÐ#Ð#r   rX   rY   c                óÖ   — |                       d¦  «        s|                      d|› d�|¬¦  «         |                      ¦   «          t          | ¦  «        }|                      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~   € ð �?Š?˜;Ñ'Ô'ð 
Ø×$Ò$Ø8°Ð8Ð8Ð8Ø!ð 	%ñ 	
ô 	
ð 	
ð ‡N‚NÑÔÐå˜9Ñ%Ô%€FØ×Ò�dÑÔÐà€Mr   c                 ó
  — |                       dd¬¦  «        sg S |                      ddd¬¦  «        5  |                      d¦  «         t          | ¦  «        }|                      d¦  «         ddd¦  «         n# 1 swxY w Y   |S )	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Ô5ð Øˆ	à	×	#Ò	#ØØØð 
$ñ 
ô 
ð  ð  ð
 	×Ò˜$ÑÔÐÝ# IÑ.Ô.ˆØ×Ò˜$ÑÔÐð ð  ð  ñ  ô  ð  ð  ð  ð  ð  ð  øøøð  ð  ð  ð  ð €Ms   ²:A8Á8A<Á?A<c                 óø  — g }|                       d¦  «        s|S |                     |                      ¦   «         j        ¦  «         	 |                      d¦  «         |                       dd¬¦  «        r|                      d¦  «         n|                       d¦  «        sn[|                      ¦   «          |                      d¦  «         |                      dd¬¦  «        }|                     |j        ¦  «         Œ³|S )	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Ô3ð 	Ø×(Ò(Ð)MÑNÔNÐNÐNØ—’ Ñ)Ô)ð 	Øà�ŠÑÔÐØ×Ò˜$ÑÔÐà×&Ò& |Ð>VÐ&ÑWÔWˆØ�Š�kÔ&Ñ'Ô'Ð'ð(ð €Mr   c                 óØ   — |                       ddd¬¦  «        5  |                      d¦  «         t          | ¦  «        }|                      d¦  «         ddd¦  «         n# 1 swxY w Y   |S )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_   Í   s½   € ð
 
×	#Ò	#ØØØ"ð 
$ñ 
ô 
ð  ð  ð
 	×Ò˜$ÑÔÐÝ/°	Ñ:Ô:ÐØ×Ò˜$ÑÔÐð ð  ð  ñ  ô  ð  ð  ð  ð  ð  ð  øøøð  ð  ð  ð  ð Ðs   ™:AÁA#Á&A#c                 ó2  — d}|                       d¦  «        rÿ| j        }||                      ¦   «         j        z  }|                       dd¬¦  «        r |                      d|| j        dz   ¬¦  «         |                       d	d¬¦  «        r|                      d
|| j        ¬¦  «         |                      d¦  «         |                       d¦  «        snF||                      ¦   «         j        z  }|                      d¦  «         |                       d¦  «        °ÿ|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ÐØ�?Š?Ð1¸ˆ?Ñ=Ô=ð 	Ø×(Ò(ØHØ%Ø"Ô+¨aÑ/ð )ñ ô ð ð
 �?Š?Ð6¸Tˆ?ÑBÔBð 	Ø×(Ò(ØRØ%Ø"Ô+ð )ñ ô ð ð
 	×Ò˜$ÑÔÐØ�Š˜wÑ'Ô'ð 	ØØ˜YŸ^š^Ñ-Ô-Ô2Ñ2ÐØ×Ò˜$ÑÔÐð' �/Š/˜+Ñ
&Ô
&ð  ð* Ðr   c                 óH   — t          t          | t          ¬¦  «        ¦  «        S r?   )Ú_parse_full_markerr   r
   rB   s    r   Úparse_markerr~   þ   rD   r   c                 óR   — t          | ¦  «        }|                      dd¬¦  «         |S )NrK   zend of marker expressionrI   )rf   rM   )rE   Úretvals     r   r}   r}     s.   € Ý˜9Ñ%Ô%€FØ×Ò�UÐ%?ÐÑ@Ô@Ð@Ø€Mr   c                 óø   — t          | ¦  «        g}|                      d¦  «        rT|                      ¦   «         }t          | ¦  «        }|                     |j        |f¦  «         |                      d¦  «        °T|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Ø
�/Š/˜(Ñ
#Ô
#ð 4Ø—’Ñ Ô ˆÝ'¨	Ñ2Ô2ˆ
Ø×Ò˜5œ: zÐ2Ñ3Ô3Ð3ð �/Š/˜(Ñ
#Ô
#ð 4ð Ðr   c                 óz  — |                       d¦  «         |                      dd¬¦  «        rj|                      ddd¬¦  «        5  |                       d¦  «         t          | ¦  «        }|                       d¦  «         ddd¦  «         n# 1 swxY w Y   nt	          | ¦  «        }|                       d¦  «         |S )	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Ô5ð 
/Ø×'Ò'ØØØ&ð (ñ 
ô 
ð 	$ð 	$ð
 ×Ò˜dÑ#Ô#Ð#Ý!.¨yÑ!9Ô!9ˆFØ×Ò˜dÑ#Ô#Ð#ð	$ð 	$ð 	$ñ 	$ô 	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$øøøð 	$ð 	$ð 	$ð 	$øõ $ IÑ.Ô.ˆØ×Ò�dÑÔÐØ€Ms   Á:BÂBÂBc                 ó  — |                       d¦  «         t          | ¦  «        }|                       d¦  «         t          | ¦  «        }|                       d¦  «         t          | ¦  «        }|                       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‰   *  sŠ   € ð ×Ò�dÑÔÐÝ'¨	Ñ2Ô2€OØ×Ò�dÑÔÐÝ  Ñ+Ô+€IØ×Ò�dÑÔÐÝ(¨Ñ3Ô3ÐØ×Ò�dÑÔÐØ˜YÐ(8Ð9Ð9r   c                 óF  — |                       d¦  «        r:t          |                      ¦   «         j                             dd¦  «        ¦  «        S |                       d¦  «        r&t          |                      ¦   «         j        ¦  «        S |                      d¬¦  «         dS )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  sœ   € ð ‡‚�zÑ"Ô"ð 
Ý˜yŸ~š~Ñ/Ô/Ô4×<Ò<¸SÀ#ÑFÔFÑGÔGÐGØ	�Š˜Ñ	)Ô	)ð 
Ý! )§.¢.Ñ"2Ô"2Ô"7Ñ8Ô8Ð8à×$Ò$ØAð 	%ñ 	
ô 	
ð 	
ð 	
ð 	
r   Úenv_varc                 óF   — | dv rt          d¦  «        S t          | ¦  «        S )N)Úplatform_python_implementationÚpython_implementationrœ   )r'   )rš   s    r   r–   r–   F  s+   € ØÐMÐMÐMÝÐ8Ñ9Ô9Ð9å˜Ñ Ô Ð r   Ú
python_strc                 ób   — t          j        | ¦  «        }t          t          |¦  «        ¦  «        S r   )ÚastÚliteral_evalr.   r$   )rž   r   s     r   r˜   r˜   M  s&   € ÝÔ˜ZÑ(Ô(€EÝ•�U‘”ÑÔÐr   c                 óÞ  — |                       d¦  «        r#|                      ¦   «          t          d¦  «        S |                       d¦  «        rQ|                      ¦   «          |                      dd¬¦  «         |                      dd¬¦  «         t          d¦  «        S |                       d	¦  «        r&t          |                      ¦   «         j        ¦  «        S |                      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Œ   R  sã   € ð ‡‚�tÑÔð 
Ø�ŠÑÔÐÝ�$‰xŒxˆØ	�Š˜Ñ	Ô	ð 
Ø�ŠÑÔÐØ×Ò˜Ð(@ÐÑAÔAÐ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Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0ð"ð "ð "ð "ð "ñ "ô "ð "ðð ð ð ð ˆtñ ô ð ð
ð ð ð ð ˆDñ ô ð ð
ð ð ð ð ˆñ ô ð ð
 �(˜E�/Ô"€	Ø�9˜b )Ð+Ô,€
ð
 €
Ø�#ŒY€
ð!ð !ð !ð !ð !˜
ñ !ô !ð !ðF˜cð FÐ&7ð Fð Fð Fð FðC )ð CÐ0Að Cð Cð Cð Cð*0$Øð0$à
ˆ3��X˜jÔ)Ð)Ô*ð0$ð 0$ð 0$ð 0$ðfØðØ),ðØ58ðàðð ð ð ð(˜Yð ¨4°¬9ð ð ð ð ð& )ð °°S´	ð ð ð ð ð6 	ð ¨cð ð ð ð ð" 9ð °ð ð ð ð ð@F˜ð F ð Fð Fð Fð Fð )ð °
ð ð ð ð ð	˜Yð 	¨:ð 	ð 	ð 	ð 	ð )ð °
ð ð ð ð ð,: )ð :°
ð :ð :ð :ð :ð
 ð 
¨yð 
ð 
ð 
ð 
ð!˜Sð ! Xð !ð !ð !ð !ð 3ð ¨5ð ð ð ð ð

 	ð 
¨bð 
ð 
ð 
ð 
ð 
ð 
r   