3 Re'@sddlmZmZmZddlZddlZddlmZmZm Z m Z ddlm Z m Z m Z mZmZddlmZddlmZddlmZdd lmZmZdd lmZmZmZerdd lmZGd d d e Z!e ej"ej#Z$edj%Z&edj%Z'edj%Z(edj%Z)edj%Z*edj%Z+edj%Z,e dZ-e$e e-e$BZ.ee$e e.Z/e/dZ0e/Z1eddZ2e,e2Z3e1e e*e1Z4e&e e4e'dZ5eej6ej7ej8BZ9eej6ej7ej8BZ:e9e:AZ;ee;e e*e;ddddZdde e=dZ?e?j>d de ed!Zej>d"de+Z@e@eZAe?e eAZBe3e eAZCe0e e5eCeBBZDeeDeZEeEjFd#Gd$d%d%eGZHdS)&)absolute_importdivisionprint_functionN) stringStart stringEndoriginalTextForParseException) ZeroOrMoreWordOptionalRegexCombine)Literal)parse) TYPE_CHECKING) MARKER_EXPRMarker)LegacySpecifier Specifier SpecifierSet)Listc@seZdZdZdS)InvalidRequirementzJ An invalid requirement was found, users should refer to PEP 508. N)__name__ __module__ __qualname____doc__rr/builddir/build/BUILDROOT/alt-python36-pip-20.2.4-5.el9.x86_64/opt/alt/python36/lib/python3.6/site-packages/pip/_vendor/packaging/requirements.pyrsr[](),;@z-_.namez[^ ]+urlextrasF) joinStringadjacent _raw_speccCs |jpdS)N)r+)sltrrr;sr0 specifiercCs|dS)Nrr)r-r.r/rrrr0>smarkercCst||j|jS)N)r_original_start _original_end)r-r.r/rrrr0Bszx[]c@s(eZdZdZddZddZddZdS) RequirementzParse a requirement. Parse a given requirement string into its parts, such as name, specifier, URL, and extras. Raises InvalidRequirement on a badly-formed requirement string. cCsytj|}WnDtk rR}z(tdj||j|jd|jWYdd}~XnX|j|_|jrt j |j}|j dkrt j ||jkrtdn.|j o|j s|j r|j rtdj|j|j|_nd|_t |jr|jjng|_t|j|_|jr|jnd|_dS)NzParse error at "{0!r}": {1}filezInvalid URL givenzInvalid URL: {0}) REQUIREMENT parseStringrrformatlocmsgr&r'urlparsescheme urlunparsenetlocsetr(asListrr1r2)selfrequirement_stringreqe parsed_urlrrr__init___s(.     zRequirement.__init__cCs|jg}|jr*|jdjdjt|j|jr@|jt|j|jrh|jdj|j|j rh|jd|j r|jdj|j dj|S)Nz[{0}]r#z@ {0} z; {0}r,) r&r(appendr:joinsortedr1strr'r2)rCpartsrrr__str__{s zRequirement.__str__cCsdjt|S)Nz)r:rM)rCrrr__repr__szRequirement.__repr__N)rrrrrHrOrPrrrrr5Rsr5)I __future__rrrstringrepip._vendor.pyparsingrrrrr r r r r rLZpip._vendor.six.moves.urllibrr=_typingrmarkersrr specifiersrrrtypingr ValueErrorr ascii_lettersdigitsALPHANUMsuppressLBRACKETRBRACKETLPARENRPARENCOMMA SEMICOLONAT PUNCTUATIONIDENTIFIER_END IDENTIFIERNAMEEXTRAURIURL EXTRAS_LISTEXTRAS _regex_strVERBOSE IGNORECASEVERSION_PEP440VERSION_LEGACY VERSION_ONE VERSION_MANY _VERSION_SPECsetParseAction VERSION_SPECMARKER_SEPARATORMARKERVERSION_AND_MARKERURL_AND_MARKERNAMED_REQUIREMENTr8r9objectr5rrrrsd