U o a1@sddlmZmZmZddlZddlZddlmZmZm Z m Z ddlm Z m Z m Z mZmZddlmZddlmZddlmZdd lmZmZdd lmZmZmZerdd 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)MYPY_CHECK_RUNNING) MARKER_EXPRMarker)LegacySpecifier Specifier SpecifierSet)Listc@seZdZdZdS)InvalidRequirementzJ An invalid requirement was found, users should refer to PEP 508. N)__name__ __module__ __qualname____doc__rrcC:\Users\vtejo\AppData\Local\Temp\pip-unpacked-wheel-6mt8ur68\pip\_vendor\packaging\requirements.pyrsr[](),;@z-_.namez[^ ]+urlextrasF) joinStringadjacent _raw_speccCs |jpdS)N)r+sltrrr;r1 specifiercCs|dS)Nrrr-rrrr1>r2markercCst||j|jS)N)r_original_start _original_endr-rrrr1Br2zx[]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|}WnDtk rR}z&td||j|jd|jW5d}~XYnX|j|_|jrt |j}|j dkrt ||jkrtdn(|j r|j r|j s|j std|j|j|_nd|_t |jr|jng|_t|j|_|jr|jnd|_dS)NzParse error at "{0!r}": {1}filezInvalid URL givenzInvalid URL: {0}) REQUIREMENT parseStringrrformatlocmsgr&r'urlparsescheme urlunparsenetlocsetr(asListrr3r4)selfrequirement_stringreqe parsed_urlrrr__init___s4      zRequirement.__init__cCs|jg}|jr*|ddt|j|jr@|t|j|jrh|d|j|j rh|d|j r|d|j d|S)Nz[{0}]r#z@ {0} z; {0}r,) r&r(appendr<joinsortedr3strr'r4)rEpartsrrr__str__{s zRequirement.__str__cCsdt|S)Nz)r<rO)rErrr__repr__szRequirement.__repr__N)rrrrrJrQrRrrrrr7Rs r7)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_REQUIREMENTr:r;objectr7rrrrsn