+
    yj_1                       R t ^ RIHt ^ RIt^ RIHt ^ RIHtHtH	t	 ^RI
HtHtHt  ! R R4      t ! R R	]4      t ! R
 R]4      t ! R R]4      t]R4,          t]	]]3,          t]]]]3,          t]	]]R,          3,          t]]	R]]3,          ,          t ! R R]4      tR R ltR R ltR R ltR R ltR R ltR R ltR R lt R  R! lt!R" R# lt"R$ R% lt#R& R' lt$R( R) lt%R* R+ lt&R, R- lt'R. R/ lt(R0 R1 lt)R2 R3 lt*R# )5zHandwritten 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                  n    ] tR t^tRtR R ltR R ltR R ltR R ltR	 R
 lt	R R lt
R R ltRtR# )Nodec                    V ^8  d   QhRRRR/# )   valuestrreturnNone )formats   "E/var/www/html/2rare/lib/python3.14/site-packages/packaging/_parser.py__annotate__Node.__annotate__   s      c d     c                	    Wn         R # Nr   selfr   s   &&r   __init__Node.__init__   s    
r   c                   V ^8  d   QhRR/# r   r   r   r   )r   s   "r   r   r      s       r   c                	    V P                   # r   r   r   s   &r   __str__Node.__str__   s    zzr   c                   V ^8  d   QhRR/# r    r   )r   s   "r   r   r      s     > ># >r   c                	R    R V P                   P                   RV P                  : R2# )<(z)>)	__class____name__r   r"   s   &r   __repr__Node.__repr__   s&    4>>**+1TZZN"==r   c                   V ^8  d   QhRR/# r    r   )r   s   "r   r   r      s     " "3 "r   c                	    \         hr   )NotImplementedErrorr"   s   &r   	serializeNode.serialize   s    !!r   c                   V ^8  d   QhRR/# r    r   )r   s   "r   r   r      s      c r   c                	    V P                   # r   r   r"   s   &r   __getstate__Node.__getstate__   s    zzr   c                    V ^8  d   QhRRRR/# )r   r   objectr   r   r   )r   s   "r   r   r   #   s      F t r   c                	    \        V\        4      '       g'   \        R V P                  P                   RV: 24      hWn        R# )Cannot restore z value from N)
isinstancer   	TypeErrorr)   r*   r   r   s   &&r   _restore_valueNode._restore_value#   s>    %%%!$.."9"9!:,uiP  
r   c                    V ^8  d   QhRRRR/# )r   stater7   r   r   r   )r   s   "r   r   r   *   s     T T& TT Tr   c                	   \        V\        4      '       d   V P                  V4       R # \        V\        4      '       dL   \	        V4      ^8X  d<   Vw  r#\        V\
        4      '       d"   RV9   d   V P                  VR,          4       R # \        V\
        4      '       d"   RV9   d   V P                  VR,          4       R # \        RV P                  P                   RV: 24      h)Nr   r9   z from )	r:   r   r<   tuplelendictr;   r)   r*   )r   r?   _	slot_dicts   &&  r   __setstate__Node.__setstate__*   s    eS!!&eU##E
a LA)T**w)/C##Ig$67eT""w%'7g//$..*A*A)B&	RSSr   r   N)r*   
__module____qualname____firstlineno__	__slots__r   r#   r+   r0   r4   r<   rF   __static_attributes__r   r   r   r   r      s1    I>"T Tr   r   c                  &    ] tR t^<tRtR R ltRtR# )Variablec                   V ^8  d   QhRR/# r    r   )r   s   "r   r   Variable.__annotate__?         3 r   c                	    \        V 4      # r   r   r"   s   &r   r0   Variable.serialize?       4yr   r   Nr*   rH   rI   rJ   rK   r0   rL   r   r   r   rN   rN   <       I r   rN   c                  &    ] tR t^CtRtR R ltRtR# )Valuec                   V ^8  d   QhRR/# r    r   )r   s   "r   r   Value.__annotate__F   s     
 
3 
r   c                	b    \        V 4      pR V9  d   R V R 2# RV9  d   RV R2# \        R4      h)"'z>Cannot serialize marker value containing both quote characters)r   
ValueErrorr   s   & r   r0   Value.serializeF   sG    D	eugQ<eugQ<L
 	
r   r   NrV   r   r   r   rY   rY   C   s    I
 
r   rY   c                  &    ] tR t^QtRtR R ltRtR# )Opc                   V ^8  d   QhRR/# r    r   )r   s   "r   r   Op.__annotate__T   rQ   r   c                	    \        V 4      # r   rS   r"   s   &r   r0   Op.serializeT   rU   r   r   NrV   r   r   r   rb   rb   Q   rW   r   rb   
MarkerAtom
MarkerListc                  J    ] tR t^_t$ R]R&   R]R&   R]R&   R]R&   R]R&   R	tR
# )ParsedRequirementr   nameurl	list[str]extras	specifierzMarkerList | Nonemarkerr   N)r*   rH   rI   rJ   __annotations__rL   r   r   r   rj   rj   _   s    
I	HNr   rj   c                    V ^8  d   QhRRRR/# )r   sourcer   r   rj   r   )r   s   "r   r   r   j   s     F Fc F&7 Fr   c                6    \        \        V \        R 7      4      # )rules)_parse_requirementr	   r   rs   s   &r   parse_requirementry   j       imDEEr   c                    V ^8  d   QhRRRR/# )r   	tokenizerr	   r   rj   r   )r   s   "r   r   r   n   s     C C) C0A Cr   c                   V P                  R4       V P                  RRR7      pVP                  pV P                  R4       \        V 4      pV P                  R4       \	        V 4      w  rEpV P                  RRR7       \        W$W5V4      # )zA
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_detailsrj   )r|   
name_tokenrk   rn   rl   ro   rp   s   &      r   rw   rw   n   s     d!!R " J ??Dd9%Fd7	BCFU%BCT6BBr   c                    V ^8  d   QhRRRR/# )r   r|   r	   r   z"tuple[str, str, MarkerList | None]r   )r   s   "r   r   r      s     2$ 2$2$'2$r   c                J   RpRpRpV P                  R4      '       d   V P                  4        V P                  R4       V P                  pV P	                  RRR7      P
                  pV P                  RR	R
7      '       d   W!V3# V P	                  RRR7       V P                  RR	R
7      '       d   W!V3# \        V VRR7      pM]V P                  p\        V 4      pV P                  R4       V P                  RR	R
7      '       d   W!V3# \        T TV'       d   RMRR7      pW!V3# )zr
requirement_details = AT URL (WS requirement_marker?)?
                    | specifier WS? (requirement_marker)?
 NATr~   URLzURL after @r   r   Tpeekzwhitespace after URLz$semicolon (after URL and whitespace))
span_startr   zEcomma (within version specifier), semicolon (after version specifier)z0semicolon (after name with no version specifier))checkreadr   positionr   r   _parse_requirement_marker_parse_specifier)r|   ro   rl   rp   	url_startspecifier_starts   &     r   r   r      s3    I
CFt$&&	u}=BB??5t?,,F++(>? ??5t?,,F++* ;
 $,,$Y/	$??5t?,,F++*&  XG
 F##r   c               (    V ^8  d   QhRRRRRRRR/# )	r   r|   r	   r   intr   r   r   rh   r   )r   s   "r   r   r      s,      ),8;r   c                   V P                  R4      '       g   V P                  RV R2VRR7       V P                  4        \        V 4      pV P	                  R4       V# )z+
requirement_marker = SEMICOLON marker WS?
	SEMICOLONz	Expected z or endNr   span_endr~   )r   raise_syntax_errorr   _parse_markerr   )r|   r   r   rp   s   &$$ r   r   r      sa     ??;''$$z)! 	% 	

 NN9%FdMr   c                    V ^8  d   QhRRRR/# r   r|   r	   r   rm   r   )r   s   "r   r   r      s      Y 9 r   c                   V P                  RRR7      '       g   . # V P                  RRRR7      ;_uu_ 4        V P                  R4       \        V 4      pV P                  R4       RRR4       V#   + '       g   i     X# ; i)	z?
extras = (LEFT_BRACKET wsp* extras_list? wsp* RIGHT_BRACKET)?
LEFT_BRACKETTr   RIGHT_BRACKETrn   aroundr~   N)r   enclosing_tokensr   _parse_extras_list)r|   rn   s   & r   r   r      s     ??>?55			#	# 
$ 
 

 	$#I.$
 M
 
 Ms   .A00B	c                    V ^8  d   QhRRRR/# r   r   )r   s   "r   r   r      s      ) 	 r   c                   . pV P                  R4      '       g   V# VP                  V P                  4       P                  4        V P	                  R4       V P                  RRR7      '       d   V P                  R4       MV P                  R4      '       g    V# V P                  4        V P	                  R4       V P                  RRR7      pVP                  VP                  4       K  )	z6
extras_list = identifier (wsp* ',' wsp* identifier)*
r   Tr~   r   z"Expected comma between extra namesCOMMAzextra name after commar   )r   appendr   r   r   r   r   )r|   rn   extra_tokens   &  r   r   r      s     F??<((
MM).."''(
$??<d?33(()MN)) M 	$&&|>V&Wk&&'r   c                    V ^8  d   QhRRRR/# r   r|   r	   r   r   r   )r   s   "r   r   r      s      	 c r   c                    V P                  RRRR7      ;_uu_ 4        V P                  R4       \        V 4      pV P                  R4       RRR4       V#   + '       g   i     X# ; i)zf
specifier = LEFT_PARENTHESIS WS? version_many WS? RIGHT_PARENTHESIS
          | WS? version_many WS?
LEFT_PARENTHESISRIGHT_PARENTHESISzversion specifierr   r~   N)r   r   _parse_version_many)r|   parsed_specifierss   & r   r   r      sn    
 
	#	#" 
$ 
 

 	$/	:$
 
 
 s   .AA&	c                    V ^8  d   QhRRRR/# r   r   )r   s   "r   r   r     s     # #9 # #r   c                   RpV P                  R4      '       EdL   V P                  pV P                  4       P                  pW,          pV P                  RRR7      '       do   RpVP	                  R4      '       g/   VP	                  R4      '       d   VP	                  R	4      '       g   R
pV P                  VVV P                  ^,           R7       V P                  RRR7      '       d   V P                  RVV P                  R7       V P                  R4       V P                  R4      '       g    V# WP                  4       P                  ,          pV P                  R4       EKc  V# )z8
version_many = (SPECIFIER (WS? COMMA WS? SPECIFIER)*)?
r   	SPECIFIERVERSION_PREFIX_TRAILTr   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   VERSION_LOCAL_LABEL_TRAILz@Local version label can only be used with `==` or `!=` operatorsr~   r   )r   r   r   r   
startswithr   r   )r|   r   r   ro   messages   &    r   r   r     sK    
//+
&
&''
NN$))	&??1?==NG##D))$$T**93G3G3N3N,  ((%"++a/ ) 
 ??6T?BB((R%"++ ) 
 	$w''  	^^-222$r   c                    V ^8  d   QhRRRR/# )r   rs   r   r   rh   r   )r   s   "r   r   r   5  s     F F F Fr   c                6    \        \        V \        R 7      4      # ru   )_parse_full_markerr	   r   rx   s   &r   parse_markerr   5  rz   r   c                    V ^8  d   QhRRRR/# r   r|   r	   r   rh   r   )r   s   "r   r   r   9  s      ) 
 r   c                B    \        V 4      pV P                  R RR7       V# )r   zend of marker expressionr   )r   r   )r|   retvals   & r   r   r   9  s%    9%FU%?@Mr   c                    V ^8  d   QhRRRR/# r   r   )r   s   "r   r   r   ?  s     	 	Y 	: 	r   c                    \        V 4      .pV P                  R4      '       d;   V P                  4       p\        V 4      pVP                  VP                  V34       KQ  V# )z,
marker = marker_atom (BOOLOP marker_atom)+
BOOLOP)_parse_marker_atomr   r   extendr   )r|   
expressiontoken
expr_rights   &   r   r   r   ?  sS     %Y/0J
//(
#
# '	2
5::z23r   c                    V ^8  d   QhRRRR/# )r   r|   r	   r   rg   r   )r   s   "r   r   r   K  s      ) 
 r   c                ^   V P                  R4       V P                  RRR7      '       dT   V P                  RRRR7      ;_uu_ 4        V P                  R4       \        V 4      pV P                  R4       RRR4       M\	        V 4      pV P                  R4       X#   + '       g   i     L#; i)	zk
marker_atom = WS? LEFT_PARENTHESIS WS? marker WS? RIGHT_PARENTHESIS WS?
            | WS? marker_item WS?
r~   r   Tr   r   zmarker expressionr   N)r   r   r   r   _parse_marker_item)r|   rp   s   & r   r   r   K  s     d)55''& ( 
 

 d#!.y!9Fd#
 
 $I.dM
 
s   .BB,	c                    V ^8  d   QhRRRR/# )r   r|   r	   r   
MarkerItemr   )r   s   "r   r   r   a  s     : :) :
 :r   c                    V P                  R4       \        V 4      pV P                  R4       \        V 4      pV P                  R4       \        V 4      pV P                  R4       WV3# )z?
marker_item = WS? marker_var WS? marker_op WS? marker_var WS?
r~   )r   _parse_marker_var_parse_marker_op)r|   marker_var_left	marker_opmarker_var_rights   &   r   r   r   a  sg     d'	2Od +Id(3d(899r   c                    V ^8  d   QhRRRR/# )r   r|   r	   r   	MarkerVarr   )r   s   "r   r   r   o  s     
 
 
y 
r   c           
        V P                  R4      '       d4   \        V P                  4       P                  P	                  RR4      4      # V P                  R4      '       d'   V P                  4       p \        VP                  4      # V P                  RR	7       R#   \        \        3 dO   p\        RT P                  TP                  TP                  \        TP                  4      ,           3R7      ThRp?ii ; i)
z'
marker_var = VARIABLE | QUOTED_STRING
VARIABLE.rD   QUOTED_STRINGzInvalid quoted string)rs   spanNz+Expected a marker variable or quoted string)r   )r   process_env_varr   r   replaceprocess_python_strSyntaxErrorr_   r   rs   r   rB   r   )r|   r   excs   &  r   r   r   o  s     z""y~~/44<<S#FGG		)	) 	%ejj11 	$$A 	% 	
 Z( 	#' ''nnenns5::&FG 		s   3B C;-A	C66C;c                    V ^8  d   QhRRRR/# )r   env_varr   r   rN   r   )r   s   "r   r   r     s     ! !S !X !r   c                <    V R9   d   \        R 4      # \        V 4      # )platform_python_implementation)r   python_implementation)rN   )r   s   &r   r   r     s"    MM899  r   c                    V ^8  d   QhRRRR/# )r   
python_strr   r   rY   r   )r   s   "r   r   r     s      3 5 r   c                V    \         P                  ! V 4      p\        \        V4      4      # r   )astliteral_evalrY   r   )r   r   s   & r   r   r     s!    Z(EUr   c                    V ^8  d   QhRRRR/# )r   r|   r	   r   rb   r   )r   s   "r   r   r     s     
 
	 
b 
r   c                   V P                  R4      '       d   V P                  4        \        R4      # V P                  R4      '       dB   V P                  4        V P                  RRR7       V P                  RRR7       \        R4      # V P                  R	4      '       d$   \        V P                  4       P                  4      # V P                  R
4      # )z
marker_op = IN | NOT IN | OP
INinNOTr~   zwhitespace after 'not'r   z'in' after 'not'znot inOPzJExpected marker operator, one of <=, <, !=, ==, >=, >, ~=, ===, in, not in)r   r   rb   r   r   r   )r|   s   &r   r   r     s     t$x			(@A(:;(|			).."''((++X
 	
r   )andor)+__doc__
__future__r   r   collections.abcr   typingr   r   r   
_tokenizerr   r   r	   r   rN   rY   rb   MarkerLogicalr   rA   r   rg   listrh   rj   ry   rw   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   <module>r      s   # 
 $ - - C C)T )TXt 
D 
  $(E/"	9b)+,
:x556
%j-?@A

 FC*2$j*&6"#RF	,:
,!

r   