HEX
Server: LiteSpeed
System: Linux br-asc-web1845.main-hosting.eu 5.14.0-611.42.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Mar 24 05:30:20 EDT 2026 x86_64
User: u790421558 (790421558)
PHP: 8.2.30
Disabled: system, exec, shell_exec, passthru, mysql_list_dbs, ini_alter, dl, symlink, link, chgrp, leak, popen, apache_child_terminate, virtual, mb_send_mail
Upload Files
File: //opt/alt/python311/lib/python3.11/site-packages/packaging/__pycache__/_parser.cpython-311.pyc
�

]�Zg�'����dZddlmZddlZddlmZmZmZmZddl	m
Z
mZGd�d��ZGd	�d
e��Z
Gd�de��ZGd
�de��Zee
efZeeeefZeeedfZeedeefZGd�de��Zd2d�Zd3d�Zd4d�Zd5d�Zd6d!�Zd6d"�Zd7d#�Zd7d$�Zd8d%�Zd9d&�Zd9d'�Z d:d(�Z!d;d*�Z"d<d,�Z#d=d.�Z$d>d0�Z%d?d1�Z&dS)@z�Handwritten parser of dependency specifiers.

The docstring for each __parse_* function contains EBNF-inspired grammar representing
the implementation.
�)�annotationsN)�
NamedTuple�Sequence�Tuple�Union�)�
DEFAULT_RULES�	Tokenizerc�.�eZdZd
d�Zdd�Zdd�Zdd�Zd	S)�Node�value�str�return�Nonec��||_dS�N�r
)�selfr
s  �D/opt/alt/python311/lib/python3.11/site-packages/packaging/_parser.py�__init__z
Node.__init__s
����
�
�
�c��|jSrr�rs r�__str__zNode.__str__s
���z�rc�(�d|jj�d|�d�S)N�<z('z')>)�	__class__�__name__rs r�__repr__z
Node.__repr__s ��7�4�>�*�7�7�d�7�7�7�7rc��t�r)�NotImplementedErrorrs r�	serializezNode.serializes��!�!rN)r
rrr�rr)r�
__module__�__qualname__rrrr"�rrrrsd��������������8�8�8�8�"�"�"�"�"�"rrc��eZdZdd�ZdS)�Variablerrc� �t|��Sr�rrs rr"zVariable.serialize����4�y�y�rNr#�rr$r%r"r&rrr(r(�(�����������rr(c��eZdZdd�ZdS)�Valuerrc��d|�d�S)N�"r&rs rr"zValue.serialize#s���4�{�{�{�rNr#r,r&rrr/r/"s(�����������rr/c��eZdZdd�ZdS)�Oprrc� �t|��Srr*rs rr"zOp.serialize(r+rNr#r,r&rrr3r3'r-rr3�
MarkerAtom�
MarkerListc�B�eZdZUded<ded<ded<ded<ded<d	S)
�ParsedRequirementr�name�url�	list[str]�extras�	specifierzMarkerList | None�markerN)rr$r%�__annotations__r&rrr8r82sE�������
�I�I�I��H�H�H������N�N�N������rr8�sourcerrc�H�tt|t�����S�N)�rules)�_parse_requirementr
r	�r@s r�parse_requirementrF=����i��m�D�D�D�E�E�Er�	tokenizerr
c�T�|�d��|�dd���}|j}|�d��t|��}|�d��t	|��\}}}|�dd���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_detailsr8)rH�
name_tokenr9r<r:r=r>s       rrDrDAs������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}|�dd���j}|�dd	�
��r|||fS|�dd���|�dd	�
��r|||fSt
||d�
��}n]|j}t|��}|�d��|�dd	�
��r|||fSt
|||rdnd�
��}|||fS)z~
    requirement_details = AT URL (WS requirement_marker?)?
                        | specifier WS? (requirement_marker)?
    �N�ATrJ�URLzURL after @rLrNT��peekzwhitespace after URLzURL and whitespace)�
span_start�after�version specifierz#name and no valid version specifier)�check�readrO�positionrPrQ�_parse_requirement_marker�_parse_specifier)rHr=r:r>�	url_start�specifier_starts      rrSrSVs~���I�
�C�
�F����t���"
����������$�����&�	����u�}��=�=�B���?�?�5�t�?�,�,�	,���F�+�+�����(>��?�?�?��?�?�5�t�?�,�,�	,���F�+�+�*��)�3G�
�
�
���$�,��$�Y�/�/�	����$�����?�?�5�t�?�,�,�	,���F�+�+�*��&��;�#�#�:�

�
�
��
��F�#�#rr\�intr]c���|�d��s|�d|�d�|���|���t|��}|�d��|S)z3
    requirement_marker = SEMICOLON marker WS?
    �	SEMICOLONz!Expected end or semicolon (after �))r\rJ)r_�raise_syntax_errorr`�
_parse_markerrO)rHr\r]r>s    rrbrb�s~���?�?�;�'�'�
��$�$�8��8�8�8�!�	%�	
�	
�	
��N�N����
�9�
%�
%�F�
���d�����Mrr;c�
�|�dd���sgS|�ddd���5|�d��t|��}|�d��ddd��n#1swxYwY|S)	zG
    extras = (LEFT_BRACKET wsp* extras_list? wsp* RIGHT_BRACKET)?
    �LEFT_BRACKETTrZ�
RIGHT_BRACKETr<��aroundrJN)r_�enclosing_tokensrO�_parse_extras_list)rHr<s  rrRrR�s����?�?�>��?�5�5���	�	�	#�	#����
$�
�
� � �
	���$����#�I�.�.�����$���� � � � � � � � � � � ���� � � � ��Ms�:A8�8A<�?A<c��g}|�d��s|S|�|���j��	|�d��|�dd���r|�d��n|�d��sn[|���|�d��|�dd���}|�|j����|S)	z>
    extras_list = identifier (wsp* ',' wsp* identifier)*
    rKTrJrZz"Expected comma between extra names�COMMAzextra name after commarL)r_�appendr`rQrOrjrP)rHr<�extra_tokens   rrrrr�s����F��?�?�<�(�(���
�
�M�M�)�.�.�"�"�'�(�(�(�(����$�����?�?�<�d�?�3�3�	��(�(�)M�N�N�N�N�����)�)�	�����������$�����&�&�|�>V�&�W�W���
�
�k�&�'�'�'�(��Mrc���|�ddd���5|�d��t|��}|�d��ddd��n#1swxYwY|S)zr
    specifier = LEFT_PARENTHESIS WS? version_many WS? RIGHT_PARENTHESIS
              | WS? version_many WS?
    �LEFT_PARENTHESIS�RIGHT_PARENTHESISr^rorJN)rqrO�_parse_version_many)rH�parsed_specifierss  rrcrc�s���

�	#�	#���"�
$�
�
� � �
	���$����/�	�:�:�����$���� � � � � � � � � � � ���� � � � ��s�:A�A#�&A#c�2�d}|�d��r�|j}||���jz
}|�dd���r |�d||jdz���|�d	d���r|�d
||j���|�d��|�d��snF||���jz
}|�d��|�d����|S)
z@
    version_many = (SPECIFIER (WS? COMMA WS? SPECIFIER)*)?
    rW�	SPECIFIER�VERSION_PREFIX_TRAILTrZz6.* suffix can only be used with `==` or `!=` operatorsr)r\�span_end�VERSION_LOCAL_LABEL_TRAILz@Local version label can only be used with `==` or `!=` operatorsrJrt)r_rar`rQrjrO)rHr{r\s   rrzrz�s@����
�/�/�+�
&�
&� ��'�
��Y�^�^�-�-�2�2���?�?�1��?�=�=�	��(�(�H�%�"�+�a�/�
)�
�
�
�
�?�?�6�T�?�B�B�	��(�(�R�%�"�+�
)�
�
�
�
	���$�������w�'�'�	���Y�^�^�-�-�2�2�����$����'�/�/�+�
&�
&� �*�rc�H�tt|t�����SrB)�_parse_full_markerr
r	rEs r�parse_markerr��rGrc�R�t|��}|�dd���|S)NrNzend of marker expressionrL)rkrP)rH�retvals  rr�r�s.��
�9�
%�
%�F�
���U�%?��@�@�@��Mrc��t|��g}|�d��rT|���}t|��}|�|j|f��|�d���T|S)z4
    marker = marker_atom (BOOLOP marker_atom)+
    �BOOLOP)�_parse_marker_atomr_r`�extendrQ)rH�
expression�token�
expr_rights    rrkrks}��%�Y�/�/�0�J�
�/�/�(�
#�
#�4���� � ��'�	�2�2�
����5�:�z�2�3�3�3��/�/�(�
#�
#�4��rc�z�|�d��|�dd���rj|�ddd���5|�d��t|��}|�d��ddd��n#1swxYwYnt	|��}|�d��|S)	zw
    marker_atom = WS? LEFT_PARENTHESIS WS? marker WS? RIGHT_PARENTHESIS WS?
                | WS? marker_item WS?
    rJrxTrZryzmarker expressionroN)rOr_rqrk�_parse_marker_item)rHr>s  rr�r�s
�����d�������)���5�5�
/�
�
'�
'���&�(�
�
�	$�	$�

���d�#�#�#�!.�y�!9�!9�F����d�#�#�#�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$����	$�	$�	$�	$��$�I�.�.��
���d�����Ms�:B�B�B�
MarkerItemc��|�d��t|��}|�d��t|��}|�d��t|��}|�d��|||fS)zG
    marker_item = WS? marker_var WS? marker_op WS? marker_var WS?
    rJ)rO�_parse_marker_var�_parse_marker_op)rH�marker_var_left�	marker_op�marker_var_rights    rr�r�(s������d����'�	�2�2�O�
���d���� ��+�+�I�
���d����(��3�3��
���d�����Y�(8�9�9r�	MarkerVarc�F�|�d��r:t|���j�dd����S|�d��r&t|���j��S|�d���dS)z/
    marker_var = VARIABLE | QUOTED_STRING
    �VARIABLE�.�_�
QUOTED_STRINGz+Expected a marker variable or quoted string)�messageN)r_�process_env_varr`rQ�replace�process_python_strrj�rHs rr�r�6s������z�"�"�
��y�~�~�/�/�4�<�<�S�#�F�F�G�G�G�	����	)�	)�
�!�)�.�.�"2�"2�"7�8�8�8��$�$�A�	%�	
�	
�	
�	
�	
r�env_varc�F�|dvrtd��St|��S)N)�platform_python_implementation�python_implementationr�)r()r�s rr�r�Ds+���M�M�M��8�9�9�9��� � � r�
python_strc�b�tj|��}tt|����Sr)�ast�literal_evalr/r)r�r
s  rr�r�Ks&����Z�(�(�E���U�����rc���|�d��r#|���td��S|�d��rQ|���|�dd���|�dd���td��S|�d	��r&t|���j��S|�d
��S)z&
    marker_op = IN | NOT IN | OP
    �IN�in�NOTrJzwhitespace after 'not'rLz'in' after 'not'znot in�OPzJExpected marker operator, one of <=, <, !=, ==, >=, >, ~=, ===, in, not in)r_r`r3rPrQrjr�s rr�r�Ps������t���
��������$�x�x��	����	�	�
�����������(@��A�A�A�����(:��;�;�;��(�|�|��	����	�	�
��)�.�.�"�"�'�(�(�(��+�+�
8�
�
�	
r)r@rrr8)rHr
rr8)rHr
rrU)rHr
r\rfr]rrr6)rHr
rr;)rHr
rr)r@rrr6)rHr
rr6)rHr
rr5)rHr
rr�)rHr
rr�)r�rrr()r�rrr/)rHr
rr3)'�__doc__�
__future__rr��typingrrrr�
_tokenizerr	r
rr(r/r3r�r�r5rr6r8rFrDrSrbrRrrrcrzr�r�rkr�r�r�r�r�r�r&rr�<module>r�s�����#�"�"�"�"�"�
�
�
�
�5�5�5�5�5�5�5�5�5�5�5�5�0�0�0�0�0�0�0�0�"�"�"�"�"�"�"�"������t����
�����D����
���������

�(�E�/�"�	�
�9�b�)�+�
,�
�
�:�x��5�5�
6�
�
�e�L�*�c�9�:�
;�
������
����F�F�F�F�C�C�C�C�*0$�0$�0$�0$�f����(����&����6����"����@F�F�F�F�����	�	�	�	�����,:�:�:�:�
�
�
�
�!�!�!�!�����

�
�
�
�
�
r