o EcD@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__rrU/opt/alt/python310/lib/python3.10/site-packages/pip/_vendor/packaging/requirements.pyrsr[](),;@z-_.namez[^ ]+urlextrasF)Z joinStringZadjacent _raw_speccCs |jpdS)N)r%sltrrr@s r+ specifiercCs|dS)Nrrr'rrrr+CsmarkercCst||j|jS)N)rZ_original_startZ _original_endr'rrrr+Gszx[]c@s>eZdZdZdeddfddZdefddZdefd 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. requirement_stringreturnNc Cs zt|}Wnty&}ztd||j|jdd|jd}~ww|j|_|jratj |j}|j dkrHtj ||jkrGtdn|j rT|j rT|j s\|j s\td|j|j|_nd|_t|jrm|jng|_t|j|_|jr|j|_dSd|_dS)NzParse error at "z": filezInvalid URL givenz Invalid URL: ) REQUIREMENT parseStringrrZlocmsgr"r#urllibparseurlparsescheme urlunparsenetlocsetr$ZasListrr,r-)selfr/ZreqeZ parsed_urlrrr__init__ds4     zRequirement.__init__cCs|jg}|jrdt|j}|d|d|jr#|t|j|jr7|d|j|jr7|d|jrC|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__s zRequirement.__repr__)rrrrrDr?rFrGrrrrr.Ws  r.)Crestring urllib.parser6typingrrZ 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_REQUIREMENTr3r4r.rrrrsb0