o )aA@sddlmZmZmZddlZddlZddlmZmZm Z m Z ddlm Z m Z m Z mZmZddlmZddlmZddlmZdd lmZmZdd lmZmZmZerXdd lmZGd d d e Z!e ej"ej#Z$ed%Z&ed%Z'ed%Z(ed%Z)ed%Z*ed%Z+ed%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?>d de ed!Ze>d"de+Z@e@eZAe?e eAZBe3e eAZCe0e e5eCeBBZDeeDeZEeEFd#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_/opt/alt/python310/lib/python3.10/site-packages/pkg_resources/_vendor/packaging/requirements.pyrsr[](),;@z-_.namez[^ ]+urlextrasF)Z joinStringZadjacent _raw_speccCs |jpdS)N)r)sltrrr;s r/ specifiercCs|dS)Nrrr+rrrr/>smarkercCst||j|jS)N)rZ_original_startZ _original_endr+rrrr/Bszx[]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. c Cszt|}Wnty$}ztd||j|jd|jd}~ww|j|_|jr]t |j}|j dkrDt ||jkrCtdn|j rP|j rP|j sX|j sXtd|j|j|_nd|_t |jri|jng|_t|j|_|jr||j|_dSd|_dS)NzParse error at "{0!r}": {1}filezInvalid URL givenzInvalid URL: {0}) REQUIREMENT parseStringrrformatZlocmsgr&r'urlparsescheme urlunparsenetlocsetr(ZasListrr0r1)selfZrequirement_stringZreqeZ parsed_urlrrr__init___s8     zRequirement.__init__cCs|jg}|jr|ddt|j|jr |t|j|jr4|d|j|j r4|d|j r@|d|j d|S)Nz[{0}]r#z@ {0} z; {0}r*) r&r(appendr7joinsortedr0strr'r1)r>partsrrr__str__{s  zRequirement.__str__cCsdt|S)Nz)r7rE)r>rrr__repr__szRequirement.__repr__N)rrrrr@rGrHrrrrr2Rs   r2)IZ __future__rrrstringreZpkg_resources.extern.pyparsingrrrrr r r r r rLZurllibrr9Z_typingrZmarkersrrZ specifiersrrrtypingr ValueErrorr ascii_lettersdigitsZALPHANUMsuppressZLBRACKETZRBRACKETZLPARENZRPARENCOMMAZ SEMICOLONATZ PUNCTUATIONZIDENTIFIER_ENDZ IDENTIFIERNAMEZEXTRAZURIZURLZ EXTRAS_LISTZEXTRASZ _regex_strVERBOSE IGNORECASEZVERSION_PEP440ZVERSION_LEGACYZ VERSION_ONEZ VERSION_MANYZ _VERSION_SPECZsetParseActionZ VERSION_SPECZMARKER_SEPARATORZMARKERZVERSION_AND_MARKERZURL_AND_MARKERZNAMED_REQUIREMENTr5r6objectr2rrrrsl