Your IP : 216.73.217.13


Current Path : /snap/certbot/current/lib64/python3.12/site-packages/packaging/__pycache__/
Upload File :
Current File : //snap/certbot/current/lib64/python3.12/site-packages/packaging/__pycache__/_parser.cpython-312.pyc

�

�j�-���dZddlmZddlZddlmZmZmZmZm	Z	m
Z
ddlmZm
Z
Gd�d�ZGd	�d
e�ZGd�de�ZGd
�de�ZedZe
eefZe	eeefZe
eedfZee
deefZGd�de�Zd%d�Zd&d�Z				d'd�Z								d(d�Zd)d�Zd)d�Zd*d�Zd*d�Zd+d�Z d,d�Z!d,d�Z"d-d�Z#d.d �Z$d/d!�Z%d0d"�Z&d1d#�Z'd2d$�Z(y)3z�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�H�eZdZdZd
d�Zdd�Zdd�Zdd�Zdd�Zdd�Z	d
d�Z
y	)�Node��valuec��||_y�Nr��selfrs  ��/build/snapcraft-certbot-54d6d23c1eba5f776fc280588daee8b3/parts/certbot/install/lib/python3.12/site-packages/packaging/_parser.py�__init__z
Node.__init__s	����
�c��|jSrr�rs r�__str__zNode.__str__s���z�z�rc�P�d|jj�d|j�d�S)N�<�(z)>)�	__class__�__name__rrs r�__repr__z
Node.__repr__s&���4�>�>�*�*�+�1�T�Z�Z�N�"�=�=rc��t�r)�NotImplementedErrorrs r�	serializezNode.serializes��!�!rc��|jSrrrs r�__getstate__zNode.__getstate__s���z�z�rc�|�t|t�s%td|jj�d|����||_y)N�Cannot restore z value from )�
isinstance�str�	TypeErrorrrrrs  r�_restore_valuezNode._restore_value"s=���%��%��!�$�.�.�"9�"9�!:�,�u�i�P��
���
rc�z�t|t�r|j|�yt|t�r<t	|�dk(r.|\}}t|t
�rd|vr|j|d�yt|t
�rd|vr|j|d�yt
d|jj�d|����)N�rr'z from )	r(r)r+�tuple�len�dictr*rr)r�state�_�	slot_dicts    r�__setstate__zNode.__setstate__)s����e�S�!�����&���e�U�#��E�
�a�� �L�A�y��)�T�*�w�)�/C��#�#�I�g�$6�7���e�T�"�w�%�'7�����g��/���/�$�.�.�*A�*A�)B�&��	�R�S�SrN)rr)�return�None�r5r))r�objectr5r6)r1r8r5r6)r�
__module__�__qualname__�	__slots__rrr r#r%r+r4�rrrrs+���I���>�"���Trrc��eZdZdZdd�Zy)�Variabler<c��t|�Sr�r)rs rr#zVariable.serialize>����4�y�rNr7�rr9r:r;r#r<rrr>r>;����I�rr>c��eZdZdZdd�Zy)�Valuer<c��d|�d�S)N�"r<rs rr#zValue.serializeEs���4�&��{�rNr7rBr<rrrErEBs���I�rrEc��eZdZdZdd�Zy)�Opr<c��t|�Srr@rs rr#zOp.serializeLrArNr7rBr<rrrIrIIrCrrI)�and�or�
MarkerAtom�
MarkerListc�@�eZdZUded<ded<ded<ded<ded<y	)
�ParsedRequirementr)�name�url�	list[str]�extras�	specifierzMarkerList | None�markerN)rr9r:�__annotations__r<rrrPrPWs��

�I�	�H����N��rrPc�6�tt|t���S�N)�rules)�_parse_requirementrr��sources r�parse_requirementr^b����i��m�D�E�Erc��|jd�|jdd��}|j}|jd�t|�}|jd�t	|�\}}}|jdd��t|||||�S)zI
    requirement = WS? IDENTIFIER WS? extras WS? requirement_details
    �WS�
IDENTIFIERz1package name at the start of dependency specifier��expected�ENDzend of dependency specifier)�consume�expect�text�
_parse_extras�_parse_requirement_detailsrP)�	tokenizer�
name_tokenrQrTrRrUrVs       rr[r[fs������d���!�!��R�"��J��?�?�D�
���d��
�9�
%�F�
���d��7�	�B��C��F�
���U�%B��C��T�3��	�6�B�Brc��d}d}d}|jd�r�|j�|jd�|j}|j	dd��j
}|jdd	�
�r|||fS|j	dd��|jdd	�
�r|||fSt
||d�
�}nR|j}t|�}|jd�|jdd	�
�r|||fSt
|||rdnd�
�}|||fS)z~
    requirement_details = AT URL (WS requirement_marker?)?
                        | specifier WS? (requirement_marker)?
    �N�ATra�URLzURL after @rcreT��peekzwhitespace after URLz$semicolon (after URL and whitespace))�
span_startrdzEcomma (within version specifier), semicolon (after version specifier)z0semicolon (after name with no version specifier))�check�readrf�positionrgrh�_parse_requirement_marker�_parse_specifier)rkrUrRrV�	url_start�specifier_starts      rrjrj{s/���I�
�C�
�F����t���������$���&�&�	����u�}��=�B�B���?�?�5�t�?�,���F�+�+�����(>��?��?�?�5�t�?�,���F�+�+�*�� �;�
��$�,�,��$�Y�/�	����$���?�?�5�t�?�,���F�+�+�*��&��X�G�

��
��F�#�#rc��|jd�s|jd|�d�|d��|j�t|�}|j	d�|S)z3
    requirement_marker = SEMICOLON marker WS?
    �	SEMICOLONz	Expected z or endN�rs�span_endra)rt�raise_syntax_errorru�
_parse_markerrf)rkrsrdrVs    rrwrw�s^���?�?�;�'��$�$���z��)�!��	%�	
�
�N�N��
�9�
%�F�
���d���Mrc���|jdd��sgS|jddd��5|jd�t|�}|jd�ddd�|S#1swYSxYw)	zG
    extras = (LEFT_BRACKET wsp* extras_list? wsp* RIGHT_BRACKET)?
    �LEFT_BRACKETTrq�
RIGHT_BRACKETrT��aroundraN)rt�enclosing_tokensrf�_parse_extras_list)rkrTs  rriri�s{���?�?�>��?�5��	�	�	#�	#����
$�
� �
	���$��#�I�.�����$�� ��M� ��M�s�.A"�"A,c��g}|jd�s|S|j|j�j�	|j	d�|jdd��r|jd�n|jd�s	|S|j�|j	d�|j
dd��}|j|j���)	z>
    extras_list = identifier (wsp* ',' wsp* identifier)*
    rbTrarqz"Expected comma between extra names�COMMAzextra name after commarc)rt�appendrurhrfrrg)rkrT�extra_tokens   rr�r��s����F��?�?�<�(��
�
�M�M�)�.�.�"�'�'�(�
����$���?�?�<�d�?�3��(�(�)M�N�����)���M�
	�������$���&�&�|�>V�&�W���
�
�k�&�&�'�rc��|jddd��5|jd�t|�}|jd�ddd�|S#1swYSxYw)zr
    specifier = LEFT_PARENTHESIS WS? version_many WS? RIGHT_PARENTHESIS
              | WS? version_many WS?
    �LEFT_PARENTHESIS�RIGHT_PARENTHESISzversion specifierr�raN)r�rf�_parse_version_many)rk�parsed_specifierss  rrxrx�si��

�	#�	#���"�
$�
� �
	���$��/�	�:�����$�� ��� ���s�.A
�
Ac��d}|jd�r�|j}||j�jz
}|jdd��r!|j	d||jdz��|jd	d��r|j	d
||j��|jd�|jd�s	|S||j�jz
}|jd�|jd�r��|S)
z@
    version_many = (SPECIFIER (WS? COMMA WS? SPECIFIER)*)?
    rn�	SPECIFIER�VERSION_PREFIX_TRAILTrqz6.* suffix can only be used with `==` or `!=` operatorsr
r}�VERSION_LOCAL_LABEL_TRAILz@Local version label can only be used with `==` or `!=` operatorsrar�)rtrvrurhrrf)rkr�rss   rr�r�s����
�/�/�+�
&��'�'�
��Y�^�^�-�2�2�2���?�?�1��?�=��(�(�H�%�"�+�+�a�/�
)�
�
�?�?�6�T�?�B��(�(�R�%�"�+�+�
)�
�
	���$�����w�'����	�Y�^�^�-�2�2�2�����$��'�/�/�+�
&�*�rc�6�tt|t���SrY)�_parse_full_markerrrr\s r�parse_markerr�$r_rc�B�t|�}|jdd��|S)Nrezend of marker expressionrc)r�rg)rk�retvals  rr�r�(s%��
�9�
%�F�
���U�%?��@��Mrc���t|�g}|jd�rJ|j�}t|�}|j|j|f�|jd�r�J|S)z4
    marker = marker_atom (BOOLOP marker_atom)+
    �BOOLOP)�_parse_marker_atomrtru�extendrh)rk�
expression�token�
expr_rights    rr�r�.s`��%�Y�/�0�J�
�/�/�(�
#���� ��'�	�2�
����5�:�:�z�2�3��/�/�(�
#��rc�4�|jd�|jdd��rK|jddd��5|jd�t|�}|jd�ddd�nt	|�}|jd�S#1swY�xYw)	zw
    marker_atom = WS? LEFT_PARENTHESIS WS? marker WS? RIGHT_PARENTHESIS WS?
                | WS? marker_item WS?
    rar�Trqr�zmarker expressionr�N)rfrtr�r��_parse_marker_item)rkrVs  rr�r�:s������d�����)���5�
�
'�
'���&�(�
�	$�

���d�#�!.�y�!9�F����d�#�	$�	$�$�I�.��
���d���M�	$�	$�s�.B�Bc���|jd�t|�}|jd�t|�}|jd�t|�}|jd�|||fS)zG
    marker_item = WS? marker_var WS? marker_op WS? marker_var WS?
    ra)rf�_parse_marker_var�_parse_marker_op)rk�marker_var_left�	marker_op�marker_var_rights    rr�r�Psi�����d��'�	�2�O�
���d�� ��+�I�
���d��(��3��
���d���Y�(8�9�9rc��|jd�r3t|j�jj	dd��S|jd�r#t|j�j�S|j
d��y)z/
    marker_var = VARIABLE | QUOTED_STRING
    �VARIABLE�.r2�
QUOTED_STRINGz+Expected a marker variable or quoted string)�messageN)rt�process_env_varrurh�replace�process_python_strr�rks rr�r�^so�����z�"��y�~�~�/�4�4�<�<�S�#�F�G�G�	����	)�!�)�.�.�"2�"7�"7�8�8��$�$�A�	%�	
rc�6�|dvrtd�St|�S)N)�platform_python_implementation�python_implementationr�)r>)�env_vars rr�r�ls"���M�M��8�9�9��� � rc�T�tj|�}tt|��Sr)�ast�literal_evalrEr))�
python_strrs  rr�r�ss!�����Z�(�E���U���rc��|jd�r|j�td�S|jd�rA|j�|jdd��|jdd��td�S|jd	�r#t|j�j�S|jd
�S)z&
    marker_op = IN | NOT IN | OP
    �IN�in�NOTrazwhitespace after 'not'rcz'in' after 'not'znot in�OPzJExpected marker operator, one of <=, <, !=, ==, >=, >, ~=, ===, in, not in)rtrurIrgrhrr�s rr�r�xs������t�������$�x��	����	���������(@��A�����(:��;��(�|��	����	��)�.�.�"�'�'�(�(��+�+�X�
�	
r)r]r)r5rP)rkrr5rP)rkrr5z"tuple[str, str, MarkerList | None])rkrrs�intrdr)r5rN)rkrr5rS)rkrr5r))r]r)r5rN)rkrr5rN)rkrr5rM)rkrr5�
MarkerItem)rkrr5�	MarkerVar)r�r)r5r>)r�r)r5rE)rkrr5rI))�__doc__�
__future__rr��typingrrrrrr	�
_tokenizerrrrr>rErI�
MarkerLogicalr�r�rMrNrPr^r[rjrwrir�rxr�r�r�r�r�r�r�r�r�r�r<rr�<module>r�s7���#�
�D�D�0�)T�)T�X�t���D�������$�
��(�E�/�"�	�
�9�b�)�+�
,�
�
�:�x��5�5�
6�
�
�%��j�-�?�@�
A�
��
��F�C�*2$��2$�'�2$�j���),��8;����*�&�6�"�@F��	��,:�
�!��

r