Ë ùŸDûù 9Dãó—dZddlZddlmZmZmZmZmZmZddl m Z m Z Gd„d«Z Gd„d e «Z Gd „d e «ZGd „d e «Zee efZeeeefZeZeeZGd„de«Zdedefd„Zde defd„Zde deeeeeffd„Zde dededefd„Zde deefd„Zde deefd„Zde defd„Zde defd„Zdedefd„Zde defd„Z de defd„Z!de defd „Z"de defd!„Z#de defd"„Z$d#ede fd$„Z%d%edefd&„Z&de defd'„Z'y)(z˜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ó@—eZdZdeddfd„Zdefd„Zdefd„Zdefd„Zy)ÚNodeÚvalueÚreturnNcó—||_y©N©r)Úselfrs ú6/usr/lib/python3.12/site-packages/packaging/_parser.pyÚ__init__z Node.__init__s €Øˆ� ócó—|jSrr©rs rÚ__str__z Node.__str__s €Ø�z‰zÐrcó<—d|jj›d|›d�S)NÚ)Ú __class__Ú__name__rs rÚ__repr__z Node.__repr__s"€Ø�4—>‘>×*Ñ*Ð+¨2¨d¨V°3Ð7Ð7rcó—t‚r)ÚNotImplementedErrorrs rÚ serializezNode.serializes€Ü!Ð!r)rÚ __module__Ú __qualname__Ústrrrrr!©rrr r s9„ð˜cð dóð˜óð8˜#ó8ð"˜3ô"rr có—eZdZdefd„Zy)ÚVariablercó—t|«Sr©r$rs rr!zVariable.serializeó €Ü�4‹yÐrN©rr"r#r$r!r%rrr'r'ó„ð˜3ôrr'có—eZdZdefd„Zy)ÚValuercó—d|›d�S)NÚ"r%rs rr!zValue.serialize!s€Ø�4�&˜ˆ{ÐrNr+r%rrr.r. s„ð˜3ôrr.có—eZdZdefd„Zy)ÚOprcó—t|«Srr)rs rr!z Op.serialize&r*rNr+r%rrr2r2%r,rr2cóL—eZdZUeed<eed<eeed<eed<eeed<y)ÚParsedRequirementÚnameÚurlÚextrasÚ specifierÚmarkerN)rr"r#r$Ú__annotations__rrÚ MarkerListr%rrr5r54s&…Ø ƒIØ ƒHØ �‰IÓØƒNØ �ZÑ Ô rr5Úsourcercó6—tt|t¬««S©N)Úrules)Ú_parse_requirementr r ©r=s rÚparse_requirementrC?ó€Ü œi¨´mÔDÓ EÐErÚ tokenizercó—|jd«|jdd¬«}|j}|jd«t|«}|jd«t |«\}}}|jdd¬«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_detailsr5)rEÚ name_tokenr6r8r7r9r:s rrArACs–€ð×Ñ�dÔà×!Ñ!ØÐRð"ó€Jð �?‰?€DØ ×Ñ�dÔä ˜9Ó %€FØ ×Ñ�dÔä7¸ ÓBÑ€Cˆ�FØ ×Ñ�UÐ%BÐÔCä ˜T 3¨° ¸6Ó BÐBrcó—d}d}d}|jd«rœ|j«|jd«|j}|j dd¬«j }|jdd ¬ «r|||fS|j dd ¬«|jdd ¬ «r|||fSt ||d ¬ «}nR|j}t|«}|jd«|jdd ¬ «r|||fSt |||rdnd¬ «}|||fS)z~ requirement_details = AT URL (WS requirement_marker?)? | specifier WS? (requirement_marker)? ÚNÚATrGÚURLz URL after @rIrKT©Úpeekzwhitespace after URLzURL and whitespace)Ú span_startÚafterúversion specifierz#name and no valid version specifier)ÚcheckÚreadrLÚpositionrMrNÚ_parse_requirement_markerÚ_parse_specifier)rEr9r7r:Ú url_startÚspecifier_starts rrPrPXs-€ð€IØ €CØ €Fà‡��tÔØ�‰ÔØ×ј$Ôà×&Ñ&ˆ Ø×јu¨}ÐÓ=×BÑBˆØ �?‰?˜5 tˆ?Ô ,ؘ FÐ+Ð +à×јÐ(>ÐÔ?ð �?‰?˜5 tˆ?Ô ,ؘ FÐ+Ð +ä*Ø  )Ð3Gô ‰ð$×,Ñ,ˆÜ$ YÓ/ˆ Ø×ј$Ôà �?‰?˜5 tˆ?Ô ,ؘ FÐ+Ð +ä*Ø Ø&ññ$à:ô  ˆð �˜FÐ #Ð#rrXrYcó®—|jd«s|jd|›d�|¬«|j«t|«}|j d«|S)z3 requirement_marker = SEMICOLON marker WS? Ú SEMICOLONz!Expected end or semicolon (after Ú))rXrG)r[Úraise_syntax_errorr\Ú _parse_markerrL)rErXrYr:s rr^r^‹s[€ð �?‰?˜;Ô 'Ø×$Ñ$Ø/°¨w°aÐ 8Ø!ð %ô ð‡N�NÔä ˜9Ó %€FØ ×Ñ�dÔà €MrcóÞ—|jdd¬«sgS|jddd¬«5|jd«t|«}|jd«ddd«|S#1swYSxYw) zG extras = (LEFT_BRACKET wsp* extras_list? wsp* RIGHT_BRACKET)? Ú LEFT_BRACKETTrVÚ RIGHT_BRACKETr8©ÚaroundrGN)r[Úenclosing_tokensrLÚ_parse_extras_list)rEr8s rrOrOŸsv€ð �?‰?˜>°ˆ?Ô 5؈ à × #Ñ #ØØØð $õ ð ×ј$ÔÜ# IÓ.ˆØ×ј$Ô÷ ð €M÷ ð €Mús ª.A"Á"A,có´—g}|jd«s|S|j|j«j« |j d«|jdd¬«r|j d«n|jd«s |S|j«|j d«|j dd¬«}|j|j«Œš) z> extras_list = identifier (wsp* ',' wsp* identifier)* rHTrGrVz"Expected comma between extra namesÚCOMMAzextra name after commarI)r[Úappendr\rNrLrerM)rEr8Ú extra_tokens rrmrm²sÀ€ð€Fà �?‰?˜<Ô (؈ à ‡M�M�)—.‘.Ó"×'Ñ'Ô(à Ø×ј$ÔØ �?‰?˜<¨dˆ?Ô 3Ø × (Ñ (Ð)MÕ NØ—‘ Ô)Ø ð €Mð �‰ÔØ×ј$Ôà×&Ñ& |Ð>VÐ&ÓWˆ Ø� ‰ �k×&Ñ&Ô'ð rcó´—|jddd¬«5|jd«t|«}|jd«ddd«|S#1swYSxYw)zr specifier = LEFT_PARENTHESIS WS? version_many WS? RIGHT_PARENTHESIS | WS? version_many WS? ÚLEFT_PARENTHESISÚRIGHT_PARENTHESISrZrjrGN)rlrLÚ_parse_version_many)rEÚparsed_specifierss rr_r_Ísd€ð × #Ñ #ØØØ"ð $õ ð ×ј$ÔÜ/° Ó:ÐØ×ј$Ô÷ ð Ð÷ ð Ðús •.A Á Acó—d}|jd«ró|j}||j«jz }|jdd¬«r!|j d||jdz¬«|jd d¬«r|j d ||j¬«|j d «|jd «s |S||j«jz }|j d «|jd«rŒó|S) z@ version_many = (SPECIFIER (WS? COMMA WS? SPECIFIER)*)? rSÚ SPECIFIERÚVERSION_PREFIX_TRAILTrVz6.* suffix can only be used with `==` or `!=` operatorsr )rXÚspan_endÚVERSION_LOCAL_LABEL_TRAILz@Local version label can only be used with `==` or `!=` operatorsrGro)r[r]r\rNrerL)rErvrXs rruruÞs €ðÐØ �/‰/˜+Ô &Ø×'Ñ'ˆ ؘYŸ^™^Ó-×2Ñ2Ñ2ÐØ �?‰?Ð1¸ˆ?Ô =Ø × (Ñ (ØHØ%Ø"×+Ñ+¨aÑ/ð )ô ð �?‰?Ð6¸Tˆ?Ô BØ × (Ñ (ØRØ%Ø"×+Ñ+ð )ô ð ×ј$ÔØ�‰˜wÔ'Ø ð Ðð ˜YŸ^™^Ó-×2Ñ2Ñ2ÐØ×ј$Ôð' �/‰/˜+Õ &ð* Ðrcó6—tt|t¬««Sr?)Ú_parse_full_markerr r rBs rÚ parse_markerr~þrDrcóB—t|«}|jdd¬«|S)NrKzend of marker expressionrI)rfrM)rEÚretvals rr}r}s%€Ü ˜9Ó %€FØ ×Ñ�UÐ%?ÐÔ@Ø €MrcóÔ—t|«g}|jd«rJ|j«}t|«}|j|j|f«|jd«rŒJ|S)z4 marker = marker_atom (BOOLOP marker_atom)+ ÚBOOLOP)Ú_parse_marker_atomr[r\ÚextendrN)rEÚ expressionÚtokenÚ expr_rights rrfrfs`€ô% YÓ/Ð0€JØ �/‰/˜(Ô #Ø—‘Ó ˆÜ'¨ Ó2ˆ Ø×ј5Ÿ:™: zÐ2Ô3ð �/‰/˜(Õ #ð Ðrcó4—|jd«|jdd¬«rK|jddd¬«5|jd«t|«}|jd«ddd«n t |«}|jd«S#1swYŒxYw) zw marker_atom = WS? LEFT_PARENTHESIS WS? marker WS? RIGHT_PARENTHESIS WS? | WS? marker_item WS? rGrsTrVrtzmarker expressionrjN)rLr[rlrfÚ_parse_marker_item)rEr:s rrƒrƒs›€ð ×Ñ�dÔØ‡�Ð)°€Ô5Ø × 'Ñ 'Ø Ø Ø&ð(õ ð × Ñ ˜dÔ #Ü!.¨yÓ!9ˆFØ × Ñ ˜dÔ #÷ ð ô$ IÓ.ˆØ ×Ñ�dÔØ €M÷ ð ús ¹.BÂBcóÖ—|jd«t|«}|jd«t|«}|jd«t|«}|jd«|||fS)zG marker_item = WS? marker_var WS? marker_op WS? marker_var WS? rG)rLÚ_parse_marker_varÚ_parse_marker_op)rEÚmarker_var_leftÚ marker_opÚmarker_var_rights rr‰r‰*si€ð×Ñ�dÔÜ'¨ Ó2€OØ ×Ñ�dÔÜ  Ó+€IØ ×Ñ�dÔÜ(¨Ó3ÐØ ×Ñ�dÔØ ˜YÐ(8Ð 9Ð9rcó—|jd«r3t|j«jj dd««S|jd«r#t |j«j«S|j d¬«y)z/ marker_var = VARIABLE | QUOTED_STRING ÚVARIABLEÚ.Ú_Ú QUOTED_STRINGz+Expected a marker variable or quoted string)ÚmessageN)r[Úprocess_env_varr\rNÚreplaceÚprocess_python_strre©rEs rr‹r‹8so€ð‡��zÔ"ܘyŸ~™~Ó/×4Ñ4×<Ñ<¸SÀ#ÓFÓGÐGØ �‰˜Ô )Ü! )§.¡.Ó"2×"7Ñ"7Ó8Ð8à×$Ñ$ØAð %õ rÚenv_varcóB—|dk(s|dk(r td«St|«S)NÚplatform_python_implementationÚpython_implementation)r')ršs rr–r–Fs+€àÐ3Ò3Ø Ð-Ò -äÐ8Ó9Ð9ä˜Ó Ð rÚ python_strcóT—tj|«}tt|««Sr)ÚastÚ literal_evalr.r$)ržrs rr˜r˜Ps!€Ü × Ñ ˜ZÓ (€EÜ ”�U“Ó Ðrcóˆ—|jd«r|j«td«S|jd«rA|j«|jdd¬«|jdd¬«td«S|jd «r#t|j«j«S|j d «S) z& marker_op = IN | NOT IN | OP ÚINÚinÚNOTrGzwhitespace after 'not'rIz'in' after 'not'znot inÚOPzJExpected marker operator, one of <=, <, !=, ==, >=, >, ~=, ===, in, not in)r[r\r2rMrNrer™s rrŒrŒUs§€ð‡��tÔØ�‰ÔÜ�$‹xˆØ �‰˜Ô Ø�‰ÔØ×јÐ(@ÐÔAØ×јÐ(:ÐÔ;Ü�(‹|ÐØ �‰˜Ô Ü�)—.‘.Ó"×'Ñ'Ó(Ð(à×+Ñ+ð 8ó ð r)(Ú__doc__r ÚtypingrrrrrrÚ _tokenizerr r r r'r.r2Ú MarkerVarÚ MarkerItemÚ MarkerAtomr<r5r$rCrArPÚintr^rOrmr_rur~r}rfrƒr‰r‹r–r˜rŒr%rrÚr®sðñó  ß@×@ç0÷ "ñ "ôˆtôô ˆDôô ˆôð �(˜E�/Ñ "€ Ø �9˜b )Ð+Ñ ,€ ð € Ø �#‰Y€ ô!˜ ô!ðF˜cðFÐ&7óFðC )ðCÐ0AóCð*0$Øð0$à ˆ3��X˜jÑ)Ð )Ñ*ó0$ðfØðØ),ðØ58ðàóð(˜Yð¨4°©9óð& )ð°°S± óð6  ð¨cóð" 9ð°óð@F˜ðF óFð )ð° óð ˜Yð ¨:ó ð )ð° óð, : )ð :° ó :ð   ð  ¨yó  ð!˜Sð! Xó!ð 3ð¨5óð    ð ¨bô r