o N&`8@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__rr8/usr/lib/python3/dist-packages/packaging/requirements.pyrsr[](),;@z-_.namez[^ ]+urlextrasF) joinStringadjacent _raw_speccCs |jpdS)N)r'sltrrr@s r- specifiercCs|dS)Nrrr)rrrr-CsmarkercCst||j|jS)N)r_original_start _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 parseStringrrlocmsgr"r#urllibparseurlparsescheme urlunparsenetlocsetr$asListrr.r/)selfr3reqe 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/)rCpartsformatted_extrasrrr__str__}s  zRequirement.__str__cCs d|dS)Nzr)rCrrr__repr__s zRequirement.__repr__)rrrrrLrGrOrPrrrrr2Ws  r2)Crestring urllib.parser;typingrr TOptionalr pyparsingrrLrrr r r r r markersrr specifiersrrr 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_REQUIREMENTr7r8r2rrrrsb0