§
    ZŠtj_1  ã                  óà  — d Z ddlmZ ddlZddlmZ ddlmZmZm	Z	 ddl
mZmZmZ  G d„ d	¦  «        Z G d
„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Zed         Ze	eef         Zeeeef         Ze	eed         f         Zee	deef                  Z G d„ de¦  «        Zd4d„Zd5d„Zd6d„Zd7d!„Zd8d#„Zd8d$„Zd9d%„Z d9d&„Z!d:d'„Z"d;d(„Z#d;d)„Z$d<d*„Z%d=d,„Z&d>d.„Z'd?d0„Z(d@d2„Z)dAd3„Z*dS )Bz˜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                  óJ   — e Zd ZdZdd„Zdd„Zdd„Zdd	„Zdd
„Zdd„Z	dd„Z
dS )ÚNode©Úvaluer   ÚstrÚreturnÚNonec                ó   — || _         d S ©Nr   ©Úselfr   s     úO/var/www/html/CA-Chatbot/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                ó2   — d| j         j        › d| j        ›d�S )Nú<ú(z)>)Ú	__class__Ú__name__r   r   s    r   Ú__repr__zNode.__repr__   s"   € Ø=�4”>Ô*Ð=Ð=¨T¬ZÐ=Ð=Ð=Ð=r   c                ó   — t           ‚r   )ÚNotImplementedErrorr   s    r   Ú	serializezNode.serialize   s   € Ý!Ð!r   c                ó   — | j         S r   r   r   s    r   Ú__getstate__zNode.__getstate__   s
   € àŒzÐr   Úobjectc                ó|   — t          |t          ¦  «        st          d| j        j        › d|›�¦  «        ‚|| _        d S )NúCannot restore z value from )Ú
isinstancer   Ú	TypeErrorr    r!   r   r   s     r   Ú_restore_valuezNode._restore_value#   sK   € Ý˜%¥Ñ%Ô%ð 	ÝØP $¤.Ô"9ÐPÐPÀuÐPÐPñô ð ð ˆŒ
ˆ
ˆ
r   Ústatec                óÊ  — t          |t          ¦  «        r|                      |¦  «         d S t          |t          ¦  «        rNt	          |¦  «        dk    r;|\  }}t          |t
          ¦  «        r!d|v r|                      |d         ¦  «         d S t          |t
          ¦  «        r!d|v r|                      |d         ¦  «         d S t          d| j        j        › d|›�¦  «        ‚)Né   r   r*   z from )	r+   r   r-   ÚtupleÚlenÚdictr,   r    r!   )r   r.   Ú_Ú	slot_dicts       r   Ú__setstate__zNode.__setstate__*   sí   € Ý�e�SÑ!Ô!ð 	à×Ò Ñ&Ô&Ð&ØˆFÝ�e�UÑ#Ô#ð 	­¨E©
¬
°aª¨à ‰LˆAˆyÝ˜)¥TÑ*Ô*ð ¨w¸)Ð/CÐ/CØ×#Ò# I¨gÔ$6Ñ7Ô7Ð7Ø�Ý�e�TÑ"Ô"ð 	 w°%Ð'7Ð'7à×Ò  g¤Ñ/Ô/Ð/ØˆFÝÐR¨$¬.Ô*AÐRÐRÈÐRÐRÑSÔSÐSr   N)r   r   r   r   ©r   r   )r   r(   r   r   )r.   r(   r   r   )r!   Ú
__module__Ú__qualname__Ú	__slots__r   r   r"   r%   r'   r-   r6   © r   r   r   r      s«   € € € € € Ø€Iðð ð ð ðð ð ð ð>ð >ð >ð >ð"ð "ð "ð "ðð ð ð ðð ð ð ðTð Tð Tð Tð Tð Tr   r   c                  ó   — e Zd ZdZdd„ZdS )ÚVariabler;   r   r   c                ó    — t          | ¦  «        S r   ©r   r   s    r   r%   zVariable.serialize?   ó   € Ý�4‰yŒyÐr   Nr7   ©r!   r8   r9   r:   r%   r;   r   r   r=   r=   <   ó-   € € € € € Ø€Iðð ð ð ð ð r   r=   c                  ó   — e Zd ZdZdd„ZdS )ÚValuer;   r   r   c                óf   — t          | ¦  «        }d|vrd|› d�S d|vrd|› d�S t          d¦  «        ‚)Nú"ú'z>Cannot serialize marker value containing both quote characters)r   Ú
ValueErrorr   s     r   r%   zValue.serializeF   sT   € Ý�D‘	”	ˆØ�eÐÐØ�u�<�<�<ÐØ�eÐÐØ�u�<�<�<ÐÝØLñ
ô 
ð 	
r   Nr7   rA   r;   r   r   rD   rD   C   s-   € € € € € Ø€Ið
ð 
ð 
ð 
ð 
ð 
r   rD   c                  ó   — e Zd ZdZdd„ZdS )ÚOpr;   r   r   c                ó    — t          | ¦  «        S r   r?   r   s    r   r%   zOp.serializeT   r@   r   Nr7   rA   r;   r   r   rJ   rJ   Q   rB   r   rJ   )ÚandÚorÚ
MarkerAtomÚ
MarkerListc                  óB   — e Zd ZU ded<   ded<   ded<   ded<   ded<   d	S )
ÚParsedRequirementr   ÚnameÚurlú	list[str]ÚextrasÚ	specifierzMarkerList | NoneÚmarkerN)r!   r8   r9   Ú__annotations__r;   r   r   rQ   rQ   _   sE   € € € € € € Ø€I€I�IØ€H€H�HØÐÐÑØ€N€N�NØÐÐÑÐÐr   rQ   Úsourcer   r   c                óH   — t          t          | t          ¬¦  «        ¦  «        S ©N)Úrules)Ú_parse_requirementr   r	   ©rY   s    r   Úparse_requirementr_   j   ó   € Ý�i¨µmÐDÑDÔDÑEÔEÐEr   Ú	tokenizerr   c                ó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_detailsrQ   )ra   Ú
name_tokenrR   rU   rS   rV   rW   s          r   r]   r]   n   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   ú"tuple[str, str, MarkerList | None]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ÚATrc   ÚURLzURL after @re   rg   T©Úpeekzwhitespace after URLz$semicolon (after URL and whitespace))Ú
span_startrf   zEcomma (within version specifier), semicolon (after version specifier)z0semicolon (after name with no version specifier))ÚcheckÚreadrh   Úpositionri   rj   Ú_parse_requirement_markerÚ_parse_specifier)ra   rV   rS   rW   Ú	url_startÚspecifier_starts         r   rl   rl   ƒ   s€  € ð €IØ
€CØ€Fà‡‚�tÑÔð $
Ø�ŠÑÔÐØ×Ò˜$ÑÔÐàÔ&ˆ	Ø×Ò˜u¨}ÐÑ=Ô=ÔBˆØ�?Š?˜5 tˆ?Ñ,Ô,ð 	,Ø˜ FÐ+Ð+à×Ò˜Ð(>ÐÑ?Ô?Ð?ð �?Š?˜5 tˆ?Ñ,Ô,ð 	,Ø˜ FÐ+Ð+å*ØØ Ø;ð
ñ 
ô 
ˆˆð $Ô,ˆÝ$ YÑ/Ô/ˆ	Ø×Ò˜$ÑÔÐà�?Š?˜5 tˆ?Ñ,Ô,ð 	,Ø˜ FÐ+Ð+å*ØØ&ð ðHÐWÐWàGð
ñ 
ô 
ˆð �˜FÐ#Ð#r   ru   Úintrf   c               óØ   — |                       d¦  «        s|                      d|› d�|d¬¦  «         |                      ¦   «          t          | ¦  «        }|                      d¦  «         |S )z3
    requirement_marker = SEMICOLON marker WS?
    Ú	SEMICOLONz	Expected z or endN©ru   Úspan_endrc   )rv   Úraise_syntax_errorrw   Ú_parse_markerrh   )ra   ru   rf   rW   s       r   ry   ry   ¸   s�   € ð �?Š?˜;Ñ'Ô'ð 
Ø×$Ò$Ø)˜Ð)Ð)Ð)Ø!Øð 	%ñ 	
ô 	
ð 	
ð
 ‡N‚NÑÔÐå˜9Ñ%Ô%€FØ×Ò�dÑÔÐà€Mr   rT   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_BRACKETTrs   ÚRIGHT_BRACKETrU   ©Úaroundrc   N)rv   Úenclosing_tokensrh   Ú_parse_extras_list)ra   rU   s     r   rk   rk   Í   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)*
    rd   Trc   rs   z"Expected comma between extra namesÚCOMMAzextra name after commare   )rv   Úappendrw   rj   rh   r‚   ri   )ra   rU   Úextra_tokens      r   rŠ   rŠ   à   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_PARENTHESISzversion specifierr‡   rc   N)r‰   rh   Ú_parse_version_many)ra   Úparsed_specifierss     r   rz   rz   û   s½   € ð
 
×	#Ò	#ØØØ"ð 
$ñ 
ô 
ð  ð  ð
 	×Ò˜$ÑÔÐÝ/°	Ñ:Ô:ÐØ×Ò˜$ÑÔÐð ð  ð  ñ  ô  ð  ð  ð  ð  ð  ð  øøøð  ð  ð  ð  ð Ðs   ™:AÁA#Á&A#c                óÀ  — d}|                       d¦  «        �rE| j        }|                      ¦   «         j        }||z  }|                       dd¬¦  «        rcd}|                     d¦  «        s*|                     d¦  «        r|                     d	¦  «        sd
}|                      ||| j        dz   ¬¦  «         |                       dd¬¦  «        r|                      d|| j        ¬¦  «         |                      d¦  «         |                       d¦  «        snG||                      ¦   «         j        z  }|                      d¦  «         |                       d¦  «        �°E|S )z@
    version_many = (SPECIFIER (WS? COMMA WS? SPECIFIER)*)?
    rp   Ú	SPECIFIERÚVERSION_PREFIX_TRAILTrs   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 `!=` operatorsrc   rŒ   )rv   rx   rw   rj   Ú
startswithr‚   rh   )ra   r“   ru   rV   Úmessages        r   r’   r’     s˜  € ð ÐØ
�/Š/˜+Ñ
&Ô
&ñ  ØÔ'ˆ
Ø—N’NÑ$Ô$Ô)ˆ	Ø˜YÑ&ÐØ�?Š?Ð1¸ˆ?Ñ=Ô=ð 	ØNˆGØ×#Ò# DÑ)Ô)ð Ø×$Ò$ TÑ*Ô*ðØ3<×3GÒ3GÈÑ3NÔ3Nðð,ð ð ×(Ò(ØØ%Ø"Ô+¨aÑ/ð )ñ ô ð ð
 �?Š?Ð6¸Tˆ?ÑBÔBð 	Ø×(Ò(ØRØ%Ø"Ô+ð )ñ ô ð ð
 	×Ò˜$ÑÔÐØ�Š˜wÑ'Ô'ð 	ØØ˜YŸ^š^Ñ-Ô-Ô2Ñ2ÐØ×Ò˜$ÑÔÐð9 �/Š/˜+Ñ
&Ô
&ñ  ð< Ðr   c                óH   — t          t          | t          ¬¦  «        ¦  «        S r[   )Ú_parse_full_markerr   r	   r^   s    r   Úparse_markerrœ   5  r`   r   c                óR   — t          | ¦  «        }|                      dd¬¦  «         |S )Nrg   zend of marker expressionre   )rƒ   ri   )ra   Úretvals     r   r›   r›   9  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_atomrv   rw   Úextendrj   )ra   Ú
expressionÚtokenÚ
expr_rights       r   rƒ   rƒ   ?  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?
    rc   r�   Trs   r‘   zmarker expressionr‡   N)rh   rv   r‰   rƒ   Ú_parse_marker_item)ra   rW   s     r   r¡   r¡   K  s
  € ð ×Ò�dÑÔÐØ‡‚Ð)°€Ñ5Ô5ð 
/Ø×'Ò'ØØØ&ð (ñ 
ô 
ð 	$ð 	$ð
 ×Ò˜dÑ#Ô#Ð#Ý!.¨yÑ!9Ô!9ˆFØ×Ò˜dÑ#Ô#Ð#ð	$ð 	$ð 	$ñ 	$ô 	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$øøøð 	$ð 	$ð 	$ð 	$øõ $ IÑ.Ô.ˆØ×Ò�dÑÔÐØ€Ms   Á:BÂBÂBÚ
MarkerItemc                ó  — |                       d¦  «         t          | ¦  «        }|                       d¦  «         t          | ¦  «        }|                       d¦  «         t          | ¦  «        }|                       d¦  «         |||fS )zG
    marker_item = WS? marker_var WS? marker_op WS? marker_var WS?
    rc   )rh   Ú_parse_marker_varÚ_parse_marker_op)ra   Úmarker_var_leftÚ	marker_opÚmarker_var_rights       r   r§   r§   a  sŠ   € ð ×Ò�dÑÔÐÝ'¨	Ñ2Ô2€OØ×Ò�dÑÔÐÝ  Ñ+Ô+€IØ×Ò�dÑÔÐÝ(¨Ñ3Ô3ÐØ×Ò�dÑÔÐØ˜YÐ(8Ð9Ð9r   Ú	MarkerVarc           
     óð  — |                       d¦  «        r:t          |                      ¦   «         j                             dd¦  «        ¦  «        S |                       d¦  «        r{|                      ¦   «         }	 t          |j        ¦  «        S # t          t          f$ r>}t          d| j	        |j
        |j
        t          |j        ¦  «        z   f¬¦  «        |‚d}~ww xY w|                      d¬	¦  «         dS )
z/
    marker_var = VARIABLE | QUOTED_STRING
    ÚVARIABLEú.r4   ÚQUOTED_STRINGzInvalid quoted string)rY   ÚspanNz+Expected a marker variable or quoted string)r™   )rv   Úprocess_env_varrw   rj   ÚreplaceÚprocess_python_strÚSyntaxErrorrH   r
   rY   rx   r2   r‚   )ra   r¤   Úexcs      r   rª   rª   o  s	  € ð ‡‚�zÑ"Ô"ð 
Ý˜yŸ~š~Ñ/Ô/Ô4×<Ò<¸SÀ#ÑFÔFÑGÔGÐGØ	�Š˜Ñ	)Ô	)ð 
Ø—’Ñ Ô ˆð	Ý% e¤jÑ1Ô1Ð1øÝ�ZÐ(ð 	ð 	ð 	Ý#Ø'Ø Ô'Ø”n e¤nµs¸5¼:±´Ñ&FÐGðñ ô ð ð	øøøøð	øøøð 	×$Ò$ØAð 	%ñ 	
ô 	
ð 	
ð 	
ð 	
s   Á:B ÂCÂ9CÃCÚenv_varc                óF   — | dv rt          d¦  «        S t          | ¦  «        S )N)Úplatform_python_implementationÚpython_implementationr¼   )r=   )rº   s    r   rµ   rµ   …  s+   € ØÐMÐMÐMÝÐ8Ñ9Ô9Ð9å˜Ñ Ô Ð r   Ú
python_strc                ób   — t          j        | ¦  «        }t          t          |¦  «        ¦  «        S r   )ÚastÚliteral_evalrD   r   )r¾   r   s     r   r·   r·   Œ  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ÚNOTrc   zwhitespace after 'not're   z'in' after 'not'znot inÚOPzJExpected marker operator, one of <=, <, !=, ==, >=, >, ~=, ===, in, not in)rv   rw   rJ   ri   rj   r‚   )ra   s    r   r«   r«   ‘  sá   € ð ‡‚�tÑÔð 
Ø�ŠÑÔÐÝ�$‰xŒxˆØ	�Š˜Ñ	Ô	ð 

Ø�ŠÑÔÐØ×Ò˜Ð(@ÐÑAÔAÐAØ×Ò˜Ð(:ÐÑ;Ô;Ð;Ý�(‰|Œ|ÐØ	�Š˜Ñ	Ô	ð 
Ý�)—.’.Ñ"Ô"Ô'Ñ(Ô(Ð(à×+Ò+ØXñ
ô 
ð 	
r   )rY   r   r   rQ   )ra   r   r   rQ   )ra   r   r   rn   )ra   r   ru   r}   rf   r   r   rO   )ra   r   r   rT   )ra   r   r   r   )rY   r   r   rO   )ra   r   r   rO   )ra   r   r   rN   )ra   r   r   r¨   )ra   r   r   r¯   )rº   r   r   r=   )r¾   r   r   rD   )ra   r   r   rJ   )+Ú__doc__Ú
__future__r   rÀ   Úcollections.abcr   Útypingr   r   r   Ú
_tokenizerr	   r
   r   r   r=   rD   rJ   ÚMarkerLogicalr¯   r1   r¨   rN   ÚlistrO   rQ   r_   r]   rl   ry   rk   rŠ   rz   r’   rœ   r›   rƒ   r¡   r§   rª   rµ   r·   r«   r;   r   r   ú<module>rÎ      s  ððð ð #Ð "Ð "Ð "Ð "Ð "à 
€
€
€
Ø $Ð $Ð $Ð $Ð $Ð $Ø -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ð -à CÐ CÐ CÐ CÐ CÐ CÐ CÐ CÐ CÐ Cð)Tð )Tð )Tð )Tð )Tñ )Tô )Tð )TðXð ð ð ð ˆtñ ô ð ð
ð 
ð 
ð 
ð 
ˆDñ 
ô 
ð 
ðð ð ð ð ˆñ ô ð ð ˜Ô$€Ø�(˜E�/Ô"€	Ø�9˜b )Ð+Ô,€
Ø�:˜x¨Ô5Ð5Ô6€
Ø�%˜ j°-Ð?Ô@ÔA€
ðð ð ð ð ˜
ñ ô ð ðFð Fð Fð FðCð Cð Cð Cð*2$ð 2$ð 2$ð 2$ðjð ð ð ð*ð ð ð ð&ð ð ð ð6ð ð ð ð"#ð #ð #ð #ðRFð Fð Fð Fðð ð ð ð	ð 	ð 	ð 	ðð ð ð ð,:ð :ð :ð :ð
ð 
ð 
ð 
ð,!ð !ð !ð !ðð ð ð ð

ð 
ð 
ð 
ð 
ð 
r   