U l a@srddlmZmZmZddlZddlZddlmZmZm Z m Z ddlm Z m Z m Z mZmZddlmZddlmZddlmZmZdd lmZmZmZGd d d eZe ejejZ 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+dZ,e+Z-eddZ.e(e.Z/e-e e&e-Z0e"e e0e#dZ1eej2ej3ej4BZ5eej2ej3ej4BZ6e5e6AZ7ee7e e&e7ddddZ8e e$e8e%e8BZ9e9:dde e9dZ;e;:dde edZe:d de'Ze/e e=Z?e,e e1e?e>BZ@ee@eZAGd!d"d"eBZCdS)#)absolute_importdivisionprint_functionN) stringStart stringEndoriginalTextForParseException) ZeroOrMoreWordOptionalRegexCombine)Literal)parse) MARKER_EXPRMarker)LegacySpecifier Specifier SpecifierSetc@seZdZdZdS)InvalidRequirementzJ An invalid requirement was found, users should refer to PEP 508. N)__name__ __module__ __qualname____doc__rrmC:\Users\vtejo\AppData\Local\Temp\pip-unpacked-wheel-wx4infiz\pkg_resources\_vendor\packaging\requirements.pyrsr[](),;@z-_.namez[^ ]+urlextrasF) joinStringadjacent _raw_speccCs |jpdS)N)r)sltrrr6r/ specifiercCs|dS)Nrrr+rrrr/9r0markercCst||j|jS)N)r_original_start _original_endr+rrrr/=r0c@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|}Wn@tk rN}z"td||j|jdW5d}~XYnX|j|_|jrt|j}|j r|j r|j s|j std|j|_nd|_t |j r|j ng|_ t|j|_|jr|jnd|_dS)Nz+Invalid requirement, parse error at "{0!r}"zInvalid URL given) REQUIREMENT parseStringrrformatlocr$r%urlparseschemenetlocsetr&asListrr1r2)selfrequirement_stringreqe parsed_urlrrr__init__Xs,    zRequirement.__init__cCsz|jg}|jr*|ddt|j|jr@|t|j|jrX|d|j|j rp|d|j d|S)Nz[{0}]r!z@ {0}z; {0}r*) r$r&appendr9joinsortedr1strr%r2)r@partsrrr__str__mszRequirement.__str__cCsdt|S)Nz)r9rI)r@rrr__repr__~szRequirement.__repr__N)rrrrrErKrLrrrrr5Ks r5)D __future__rrrstringreZpkg_resources.extern.pyparsingrrrrr r r r r rLZ%pkg_resources.extern.six.moves.urllibrr;markersrr specifiersrrr ValueErrorr ascii_lettersdigitsALPHANUMsuppressLBRACKETRBRACKETLPARENRPARENCOMMA SEMICOLONAT PUNCTUATIONIDENTIFIER_END IDENTIFIERNAMEEXTRAURIURL EXTRAS_LISTEXTRAS _regex_strVERBOSE IGNORECASEVERSION_PEP440VERSION_LEGACY VERSION_ONE VERSION_MANY _VERSION_SPECsetParseAction VERSION_SPECZMARKER_SEPERATORMARKERVERSION_AND_MARKERURL_AND_MARKERNAMED_REQUIREMENTr7objectr5rrrrsf