HEX
Server: LiteSpeed
System: Linux s787.bom1.mysecurecloudhost.com 4.18.0-477.13.1.lve.el8.x86_64 #1 SMP Thu Jun 1 16:40:47 EDT 2023 x86_64
User: mobilech (5348)
PHP: 8.1.34
Disabled: NONE
Upload Files
File: //opt/saltstack/salt/lib/python3.10/site-packages/packaging/__pycache__/_parser.cpython-310.pyc
o

;jk(�@sdZddlZddlmZmZmZmZmZmZddl	m
Z
mZGdd�d�ZGdd	�d	e�Z
Gd
d�de�ZGdd
�d
e�Zee
efZeeeefZeZeeZGdd�de�Zdedefdd�Zdedefdd�Zdedeeeeeffdd�Zdedededefdd�Zdedeefdd�Zdedeefdd �Zdedefd!d"�Zdedefd#d$�Zdedefd%d&�Zdedefd'd(�Z dedefd)d*�Z!dedefd+d,�Z"dedefd-d.�Z#dedefd/d0�Z$d1ede
fd2d3�Z%d4edefd5d6�Z&dedefd7d8�Z'dS)9z�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@sHeZdZdeddfdd�Zdefdd�Zdefdd	�Zdefd
d�ZdS)�Node�value�returnNcCs
||_dS�N�r)�selfr�r�E/opt/saltstack/salt/lib/python3.10/site-packages/packaging/_parser.py�__init__s
z
Node.__init__cCs|jSrr�rrrr�__str__szNode.__str__cCsd|jj�d|�d�S)N�<z('z')>)�	__class__�__name__rrrr�__repr__sz
Node.__repr__cCst�r)�NotImplementedErrorrrrr�	serializeszNode.serialize)r�
__module__�__qualname__�strrrrrrrrrr
s
rc@�eZdZdefdd�ZdS)�Variabler
cC�t|�Sr�rrrrrr�zVariable.serializeN�rrrrrrrrrr �r c@r)�Valuer
cCsd|�d�S)N�"rrrrrr!szValue.serializeNr$rrrrr& r%r&c@r)�Opr
cCr!rr"rrrrr&r#zOp.serializeNr$rrrrr(%r%r(c@s>eZdZUeed<eed<eeed<eed<eeed<dS)�ParsedRequirement�name�url�extras�	specifier�markerN)rrrr�__annotations__rr�
MarkerListrrrrr)4s
r)�sourcer
cC�tt|td��S�N)Zrules)�_parse_requirementr
r	�r1rrr�parse_requirement?�r6�	tokenizercCsf|�d�|jddd�}|j}|�d�t|�}|�d�t|�\}}}|jddd�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_detailsr))r8Z
name_tokenr*r,r+r-r.rrrr4Cs
�

r4cCs�d}d}d}|�d�rF|��|�d�|j}|jddd�j}|jdd	d
�r+|||fS|jddd�|jdd	d
�r>|||fSt||dd
�}n#|j}t|�}|�d�|jdd	d
�r^|||fSt|||redndd
�}|||fS)z~
    requirement_details = AT URL (WS requirement_marker?)?
                        | specifier WS? (requirement_marker)?
    �N�ATr9ZURLzURL after @r;r=T��peekzwhitespace after URLzURL and whitespace)�
span_start�after�version specifierz#name and no valid version specifier)�check�readr>�positionr?r@�_parse_requirement_marker�_parse_specifier)r8r-r+r.Z	url_startZspecifier_startrrrrBXs:



�

��

rBrGrHcCs>|�d�s|jd|�d�|d�|��t|�}|�d�|S)z3
    requirement_marker = SEMICOLON marker WS?
    Z	SEMICOLONz!Expected end or semicolon (after �))rGr9)rJ�raise_syntax_errorrK�
_parse_markerr>)r8rGrHr.rrrrM�s

�
rMcCsd|jddd�s	gS|jdddd��|�d�t|�}|�d�Wd�|S1s+wY|S)	zG
    extras = (LEFT_BRACKET wsp* extras_list? wsp* RIGHT_BRACKET)?
    ZLEFT_BRACKETTrEZ
RIGHT_BRACKETr,�Zaroundr9N)rJ�enclosing_tokensr>�_parse_extras_list)r8r,rrrrA�s�

�	�	rAcCs�g}|�d�s	|S|�|��j�	|�d�|jddd�r$|�d�n|�d�s,	|S|��|�d�|jddd�}|�|j�q)	z>
    extras_list = identifier (wsp* ',' wsp* identifier)*
    r:Tr9rEz"Expected comma between extra names�COMMAzextra name after commar;)rJ�appendrKr@r>rPr?)r8r,Zextra_tokenrrrrT�s 


�
�rTcCsR|jdddd��|�d�t|�}|�d�Wd�|S1s"wY|S)zr
    specifier = LEFT_PARENTHESIS WS? version_many WS? RIGHT_PARENTHESIS
              | WS? version_many WS?
    �LEFT_PARENTHESIS�RIGHT_PARENTHESISrIrRr9N)rSr>�_parse_version_many)r8�parsed_specifiersrrrrN�s�

�	�	rNcCs�d}|�d�rQ|j}||��j7}|jddd�r#|jd||jdd�|jd	dd�r3|jd
||jd�|�d�|�d�s@	|S||��j7}|�d�|�d�s|S)
z@
    version_many = (SPECIFIER (WS? COMMA WS? SPECIFIER)*)?
    rCZ	SPECIFIERZVERSION_PREFIX_TRAILTrEz6.* suffix can only be used with `==` or `!=` operatorsr)rGZspan_endZVERSION_LOCAL_LABEL_TRAILz@Local version label can only be used with `==` or `!=` operatorsr9rU)rJrLrKr@rPr>)r8rZrGrrrrY�s0
��

�

�rYcCr2r3)�_parse_full_markerr
r	r5rrr�parse_marker�r7r\cCst|�}|jddd�|S)Nr=zend of marker expressionr;)rQr?)r8�retvalrrrr[sr[cCsBt|�g}|�d�r|��}t|�}|�|j|f�|�d�s
|S)z4
    marker = marker_atom (BOOLOP marker_atom)+
    ZBOOLOP)�_parse_marker_atomrJrK�extendr@)r8Z
expression�tokenZ
expr_rightrrrrQs


�rQcCs||�d�|jddd�r3|jdddd��|�d�t|�}|�d�Wd�n1s-wYnt|�}|�d�|S)	zw
    marker_atom = WS? LEFT_PARENTHESIS WS? marker WS? RIGHT_PARENTHESIS WS?
                | WS? marker_item WS?
    r9rWTrErXzmarker expressionrRN)r>rJrSrQ�_parse_marker_item)r8r.rrrr^s
�
��	
r^cCsJ|�d�t|�}|�d�t|�}|�d�t|�}|�d�|||fS)zG
    marker_item = WS? marker_var WS? marker_op WS? marker_var WS?
    r9)r>�_parse_marker_var�_parse_marker_op)r8Zmarker_var_leftZ	marker_opZmarker_var_rightrrrra*s




racCsH|�d�rt|��j�dd��S|�d�rt|��j�S|jdd�dS)z/
    marker_var = VARIABLE | QUOTED_STRING
    ZVARIABLE�.�_Z
QUOTED_STRINGz+Expected a marker variable or quoted string)�messageN)rJ�process_env_varrKr@�replace�process_python_strrP�r8rrrrb8s


�rb�env_varcCs|dvrtd�St|�S)N)�platform_python_implementation�python_implementationrl)r )rkrrrrgFsrg�
python_strcCst�|�}tt|��Sr)�astZliteral_evalr&r)rnrrrrriMs
ricCsr|�d�r
|��td�S|�d�r(|��|jddd�|jddd�td�S|�d	�r4t|��j�S|�d
�S)z&
    marker_op = IN | NOT IN | OP
    �IN�inZNOTr9zwhitespace after 'not'r;z'in' after 'not'znot in�OPzJExpected marker operator, one of <=, <, !=, ==, >=, >, ~=, ===, in, not in)rJrKr(r?r@rPrjrrrrcRs


�rc)(�__doc__ro�typingrrrrrrZ
_tokenizerr	r
rr r&r(Z	MarkerVarZ
MarkerItemZ
MarkerAtomr0r)rr6r4rB�intrMrArTrNrYr\r[rQr^rarbrgrircrrrr�<module>sT �
�3���
�