ZS"dZddlmZddlZddlmZmZmZmZm Z m Z ddl m Z m Z GddZGd d eZGd d eZGd deZedZe eefZe eeefZe eedfZee deefZGddeZd3dZd4dZd5dZd6d Zd7d"Zd7d#Zd8d$Zd8d%Zd9d&Z d:d'Z!d:d(Z"d;d)Z#dd/Z&d?d1Z'd@d2Z(dS)AzHandwritten parser of dependency specifiers. The docstring for each __parse_* function contains EBNF-inspired grammar representing the implementation. ) annotationsN)ListLiteral NamedTupleSequenceTupleUnion) DEFAULT_RULES Tokenizerc2eZdZdZd dZd dZd dZd d Zd S) NodevaluerstrreturnNonec||_dSNr)selfrs }/builddir/build/BUILD/imunify360-venv-2.6.2/opt/imunify360/venv/lib/python3.11/site-packages/pip/_vendor/packaging/_parser.py__init__z Node.__init__s  c|jSrrrs r__str__z Node.__str__s zrc2d|jjd|jdS)N<(z)>) __class____name__rrs r__repr__z Node.__repr__s"=4>*==TZ====rctr)NotImplementedErrorrs r serializezNode.serializes!!rN)rrrrrr)r! __module__ __qualname__ __slots__rrr"r%rrrrsiI>>>>""""""rrceZdZdZddZdS)Variabler*rrc t|Srrrs rr%zVariable.serialize"4yyrNr&r!r'r(r)r%r*rrr,r,-Irr,ceZdZdZddZdS)Valuer*rrcd|dS)N"r*rs rr%zValue.serialize)s4{{{rNr&r0r*rrr3r3&s-Irr3ceZdZdZddZdS)Opr*rrc t|Srr.rs rr%z Op.serialize0r/rNr&r0r*rrr7r7-r1rr7)andor MarkerAtom MarkerListcBeZdZUded<ded<ded<ded<ded<d S) ParsedRequirementrnameurl list[str]extras specifierzMarkerList | NonemarkerN)r!r'r(__annotations__r*rrr>r>;sE III HHHNNNrr>sourcerrcHtt|tSN)rules)_parse_requirementr r rFs rparse_requirementrLF imDDD E EEr tokenizerr cT|d|dd}|j}|dt|}|dt |\}}}|ddt |||||S)zI 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_detailsr>)rN name_tokenr?rBr@rCrDs rrJrJJsd!!R"J ?D d 9 % %F d7 BBCF U%BCCC T3 6 B BBr"tuple[str, str, MarkerList | None]cXd}d}d}|dr||d|j}|ddj}|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)? NATrPURLz URL after @rRrTTpeekzwhitespace after URLz$semicolon (after URL and whitespace)) span_startrSzEcomma (within version specifier), semicolon (after version specifier)z0semicolon (after name with no version specifier))checkreadrUpositionrVrW_parse_requirement_marker_parse_specifier)rNrCr@rD url_startspecifier_starts rrYrY_sI C Ft$ $& u}==B ??5t? , , ,F+ +(>??? ??5t? , , ,F+ +*  ;    $,$Y// $ ??5t? , , ,F+ +* &HWWG     F ##rrbintrSc|ds|d|d|d|t|}|d|S)z3 requirement_marker = SEMICOLON marker WS? SEMICOLONz Expected z or endNrbspan_endrP)rcraise_syntax_errorrd _parse_markerrU)rNrbrSrDs rrfrfs ??; ' ' $$ ) ) ) )! %   NN 9 % %F d MrrAc |ddsgS|ddd5|dt|}|ddddn #1swxYwY|S) zG extras = (LEFT_BRACKET wsp* extras_list? wsp* RIGHT_BRACKET)? LEFT_BRACKETTr` RIGHT_BRACKETrBaroundrPN)rcenclosing_tokensrU_parse_extras_list)rNrBs rrXrXs ??>? 5 5  # # $    $#I..$                Ms:A88A<?A<cg}|ds|S||j |d|ddr|dn|dsn[||d|dd}||j|S) z> extras_list = identifier (wsp* ',' wsp* identifier)* rQTrPr`z"Expected comma between extra namesCOMMAzextra name after commarR)rcappendrdrWrUrorV)rNrB extra_tokens rrwrwsF ??< ( (  MM)..""'((( ($ ??V&WW  k&''' ( Mrc|ddd5|dt|}|ddddn #1swxYwY|S)zr specifier = LEFT_PARENTHESIS WS? version_many WS? RIGHT_PARENTHESIS | WS? version_many WS? LEFT_PARENTHESISRIGHT_PARENTHESISzversion specifierrtrPN)rvrU_parse_version_many)rNparsed_specifierss rrgrgs  # #" $    $/ ::$                s:AA#&A#c2d}|dr|j}||jz }|ddr |d||jdz|d dr|d ||j|d |d snF||jz }|d |d|S) z@ version_many = (SPECIFIER (WS? COMMA WS? SPECIFIER)*)? r] SPECIFIERVERSION_PREFIX_TRAILTr`z6.* suffix can only be used with `==` or `!=` operatorsr rmVERSION_LOCAL_LABEL_TRAILz@Local version label can only be used with `==` or `!=` operatorsrPry)rcrerdrWrorU)rNrrbs rrrs@ //+ & & ' Y^^--22 ??1? = =   ( (H%"+a/ )    ??6T? B B   ( (R%"+ )    $w''  Y^^--22$' //+ & & * rcHtt|tSrH)_parse_full_markerr r rKs r parse_markerrrMrcRt|}|dd|S)NrTzend of marker expressionrR)rprV)rNretvals rrr s. 9 % %F U%?@@@ Mrct|g}|drT|}t|}||j|f|dT|S)z4 marker = marker_atom (BOOLOP marker_atom)+ BOOLOP)_parse_marker_atomrcrdextendrW)rN expressiontoken expr_rights rrprps}%Y//0J //( # #4  ' 22 5:z2333 //( # #4 rcz|d|ddrj|ddd5|dt|}|ddddn #1swxYwYnt |}|d|S) zw marker_atom = WS? LEFT_PARENTHESIS WS? marker WS? RIGHT_PARENTHESIS WS? | WS? marker_item WS? rPr}Tr`r~zmarker expressionrtN)rUrcrvrp_parse_marker_item)rNrDs rrrs  d)55 /  ' '  &(   $ $   d # # #!.y!9!9F   d # # # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $$I.. d Ms:B  BB MarkerItemc|dt|}|dt|}|dt|}|d|||fS)zG marker_item = WS? marker_var WS? marker_op WS? marker_var WS? rP)rU_parse_marker_var_parse_marker_op)rNmarker_var_left marker_opmarker_var_rights rrr4sd' 22O d ++I d(33 d Y(8 99r MarkerVarcF|dr:t|jddS|dr&t |jS|ddS)z/ marker_var = VARIABLE | QUOTED_STRING VARIABLE._ QUOTED_STRINGz+Expected a marker variable or quoted string)messageN)rcprocess_env_varrdrWreplaceprocess_python_strrorNs rrrBsz"" y~~//4<=, >, ~=, ===, in, not in)rcrdr7rVrWrors rrr\st  $xx     (@AAA(:;;;(||    )..""'(((++ X   r)rFrrr>)rNr rr>)rNr rr[)rNr rbrjrSrrr<)rNr rrA)rNr rr)rFrrr<)rNr rr<)rNr rr;)rNr rr)rNr rr)rrrr,)rrrr3)rNr rr7))__doc__ __future__rrtypingrrrrrr _tokenizerr r rr,r3r7 MarkerLogicalrrr;r<r>rLrJrYrfrXrwrgrrrrprrrrrrr*rrrs #""""" DDDDDDDDDDDDDDDD00000000 " " " " " " " " tD $ (E/ " 9b)+ , :x 55 6 % j-?@ A  FFFFCCCC*2$2$2$2$j*&6"@FFFF    , : : : :     !!!!       r