a0bi'SrSSKrSSKJrJrJrJrJrJr SSK J r J r "SS5r "SS \ 5r "S S \ 5r"S S \ 5r\\ \4r\\\\4r\r\\r"SS\5rS\S\4SjrS\ S\4SjrS\ S\\\\\44SjrS\ S\S\S\4SjrS\ S\\4SjrS\ S\\4SjrS\ S\4SjrS\ S\4SjrS\S\4SjrS\ S\4Sjr S\ S\4Sjr!S\ S\4S jr"S\ S\4S!jr#S"\S\ 4S#jr$S$\S\4S%jr%S\ S\4S&jr&g)'zHandwritten parser of dependency specifiers. The docstring for each __parse_* function contains ENBF-inspired grammar representing the implementation. N)AnyList NamedTupleOptionalTupleUnion) DEFAULT_RULES TokenizercP\rSrSrS\SS4SjrS\4SjrS\4SjrS\4SjrS r g) Node valuereturnNcXlgNr)selfrs ڝ/builddir/build/BUILDROOT/alt-python313-setuptools-69.0.2-3.el8.x86_64/opt/alt/python313/lib/python3.13/site-packages/setuptools/_vendor/packaging/_parser.py__init__ Node.__init__s cUR$rrrs r__str__ Node.__str__s zzrc<SURRSUS3$)N) __class____name__rs r__repr__ Node.__repr__s"4>>**+2dV377rc[er)NotImplementedErrorrs r serializeNode.serializes!!rr) r __module__ __qualname____firstlineno__strrrr!r%__static_attributes__rrr r s9cd8#8"3"rr c"\rSrSrS\4SjrSrg)Variablerc[U5$rr*rs rr%Variable.serialize 4yrr,Nr r'r(r)r*r%r+r,rrr.r.3rr.c"\rSrSrS\4SjrSrg)Value rcSUS3$)N"r,rs rr%Value.serialize!s4&{rr,Nr4r,rrr7r7 s3rr7c"\rSrSrS\4SjrSrg)Op%rc[U5$rr1rs rr% Op.serialize&r3rr,Nr4r,rrr=r=%r5rr=cT\rSrSr%\\S'\\S'\\\S'\\S'\\\S'Sr g) ParsedRequirement4nameurlextras specifiermarkerr,N) r r'r(r)r*__annotations__rr MarkerListr+r,rrrBrB4s& I H IN Z  rrBsourcerc0[[U[S95$N)rules)_parse_requirementr r rKs rparse_requirementrQ?s imD EEr tokenizerc URS5 URSSS9nURnURS5 [U5nURS5 [ U5upEnURSSS9 [ X$X5U5$)zA requirement = WS? IDENTIFIER WS? extras WS? requirement_details WS IDENTIFIERz1package name at the start of dependency specifierexpectedENDzend of dependency specifier)consumeexpecttext _parse_extras_parse_requirement_detailsrB)rR name_tokenrDrFrErGrHs rrOrOCsd!!R"J ??D d 9 %F d7 BCF U%BC T6 BBrcSnSnSnURS5(aUR5 URS5 URnUR SSS9R nURSS S 9(aX!U4$UR SS S9 URSS S 9(aX!U4$[ XS S 9nOUURn[U5nURS5 URSS S 9(aX!U4$[ UUU(aSOSS 9nX!U4$)zr requirement_details = AT URL (WS requirement_marker?)? | specifier WS? (requirement_marker)? NATrTURLz URL after @rVrXTpeekzwhitespace after URLzURL and whitespace) span_startafterversion specifierz#name and no valid version specifier)checkreadrYpositionrZr[_parse_requirement_marker_parse_specifier)rRrGrErH url_startspecifier_starts rr]r]Xs&I C Ft$&& u}=BB ??5t? ,F+ +(>? ??5t? ,F+ +* 3G $,,$Y/ $ ??5t? ,F+ +* &$:   F ##rrerfcURS5(dURSUS3US9 UR5 [U5nUR S5 U$)z+ requirement_marker = SEMICOLON marker WS? SEMICOLONz!Expected end or semicolon (after ))rerT)rhraise_syntax_errorri _parse_markerrY)rRrerfrHs rrkrks^ ??; ' '$$/wa 8! % NN 9 %F d MrcURSSS9(d/$URSSSS9 URS5 [U5nURS5 SSS5 U$!,(df  W$=f) z? extras = (LEFT_BRACKET wsp* extras_list? wsp* RIGHT_BRACKET)? LEFT_BRACKETTrc RIGHT_BRACKETrFaroundrTN)rhenclosing_tokensrY_parse_extras_list)rRrFs rr\r\s{ ??>? 5  # # $  $#I.$  M   Ms .A!! A0c/nURS5(dU$URUR5R5 UR S5 URSSS9(aUR S5 OURS5(dU$UR5 UR S5 UR SSS9nURUR5 M) z6 extras_list = identifier (wsp* ',' wsp* identifier)* rUTrTrcz"Expected comma between extra namesCOMMAzextra name after commarV)rhappendrir[rYrrrZ)rRrF extra_tokens rrzrzsF ??< ( (  MM).."''( $ ??V&W  k&&' rcURSSSS9 URS5 [U5nURS5 SSS5 U$!,(df  W$=f)zf specifier = LEFT_PARENTHESIS WS? version_many WS? RIGHT_PARENTHESIS | WS? version_many WS? LEFT_PARENTHESISRIGHT_PARENTHESISrgrwrTN)ryrY_parse_version_many)rRparsed_specifierss rrlrlsi  # #" $  $/ :$     s .A  Ac*SnURS5(aURnXR5R- nURSSS9(aUR SUURS-S9 URS SS9(aUR S UURS9 UR S 5 URS 5(dU$XR5R- nUR S 5 URS5(aMU$) z8 version_many = (SPECIFIER (WS? COMMA WS? SPECIFIER)*)? r` SPECIFIERVERSION_PREFIX_TRAILTrcz6.* suffix can only be used with `==` or `!=` operatorsr )respan_endVERSION_LOCAL_LABEL_TRAILz@Local version label can only be used with `==` or `!=` operatorsrTr|)rhrjrir[rrrY)rRrres rrrs //+ & &'' ^^-222 ??1? =  ( (H%"++a/ )  ??6T? B  ( (R%"++ )  $w''   ^^-222$' //+ & &* rc0[[U[S95$rM)rsr r rPs r parse_markerrs 6? @@rc[U5/nURS5(aPUR5n[U5nURURU45 URS5(aMPU$)z, marker = marker_atom (BOOLOP marker_atom)+ BOOLOP)_parse_marker_atomrhriextendr[)rR expressiontoken expr_rights rrsrssf%Y/0J //( # # ' 2 5::z23 //( # # rc<URS5 URSSS9(aHURSSSS9 URS5 [U5nURS5 SSS5 O [ U5nURS5 W$!,(df  N!=f) zk marker_atom = WS? LEFT_PARENTHESIS WS? marker WS? RIGHT_PARENTHESIS WS? | WS? marker_item WS? rTrTrcrzmarker expressionrwN)rYrhryrs_parse_marker_item)rRrHs rrrs d)5  ' '  &(   d #!.y!9F   d #  $I. d M  s .B  BcURS5 [U5nURS5 [U5nURS5 [U5nURS5 XU4$)z? marker_item = WS? marker_var WS? marker_op WS? marker_var WS? rT)rY_parse_marker_var_parse_marker_op)rRmarker_var_left marker_opmarker_var_rights rrr$sgd' 2O d +I d(3 d (8 99rc&URS5(a3[UR5RR SS55$URS5(a#[ UR5R5$UR SS9 g)z' marker_var = VARIABLE | QUOTED_STRING VARIABLE._ QUOTED_STRINGz+Expected a marker variable or quoted string)messageN)rhprocess_env_varrir[replaceprocess_python_strrrrRs rrr2suz""y~~/44<=, >, ~=, ===, in, not in)rhrir=rZr[rrrs rrrOst$x   (@A(:;(|   ).."''((++ 8  r)'__doc__rtypingrrrrrr _tokenizerr r r r.r7r= MarkerVar MarkerItem MarkerAtomrJrBr*rQrOr]intrkr\rzrlrrrsrrrrrrr,rrrs  @@0 " "t D  (E/ " 9b)+ ,  #Y ! !FcF&7FC)C0AC*0$0$ 3Xj) )*0$f),58(Y49&)S 6 c"9@AAA Y : ) , :) : :    y  !S!X!35   b r