a [fD@sfddlZddlZddlZddlmZmZmZddl m Z m Z mZm Z mZmZmZmZmZmZddlmZmZddlmZmZmZGdddeZeejejZe d  Z!e d  Z"e d  Z#e d  Z$e d  Z%e d Z&e d Z'edZ(eee(eBZ)e eee)Z*e*dZ+e*Z,eddZ-e'e-Z.e,ee%e,Z/e!ee/e"dZ0eej1ej2ej3BZ4eej1ej2ej3BZ5e4e5AZ6e e6ee%e6d dddZ7ee#e7e$e7BZ8e89ddee8dZ:e:9ddeedZe9dde&Z;e;eZe+ee0e>e=BZ?ee?eZ@e@AdGdd d ZBdS)!N)ListOptionalSet) CombineLiteralrParseExceptionRegexWord ZeroOrMoreoriginalTextFor stringEnd stringStart) MARKER_EXPRMarker)LegacySpecifier Specifier SpecifierSetc@seZdZdZdS)InvalidRequirementzJ An invalid requirement was found, users should refer to PEP 508. N)__name__ __module__ __qualname____doc__rrF/usr/lib/python3.9/site-packages/pip/_vendor/packaging/requirements.pyrsr[](),;@z-_.namez[^ ]+urlextrasF)Z joinStringZadjacent _raw_speccCs |jpdS)N)r%sltrrr@r+ specifiercCs|dS)Nrrr'rrrr+Cr,markercCst||j|jS)N)rZ_original_startZ _original_endr'rrrr+Gr,zx[]c@s<eZdZdZeddddZedddZedd d ZdS) 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. N)requirement_stringreturnc Cszt|}WnJtyX}z2td||j|jdd|jWYd}~n d}~00|j|_|jrtj |j}|j dkrtj ||jkrtdn(|j r|j r|j s|j std|j|j|_nd|_t|jr|jng|_t|j|_|jr|jnd|_dS)NzParse error at "z": filezInvalid URL givenz Invalid URL: ) REQUIREMENT parseStringrrlocmsgr"r#urllibparseurlparsescheme urlunparsenetlocsetr$ZasListrr-r.)selfr0ZreqeZ parsed_urlrrr__init__ds.      zRequirement.__init__)r1cCs|jg}|jr0dt|j}|d|d|jrF|t|j|jrn|d|j|jrn|d|jr|d|jd|S)Nrrrz@  z; r&) r"r$joinsortedappendr-strr#r.)r?partsZformatted_extrasrrr__str__}s zRequirement.__str__cCs d|dS)Nzr)r?rrr__repr__szRequirement.__repr__)rrrrrFrArHrIrrrrr/Ws r/)Crestring urllib.parser8typingrrZ TOptionalrZpip._vendor.pyparsingrrLrrr r r r r ZmarkersrrZ specifiersrrr 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_REQUIREMENTr4r5r/rrrrs`0