3 ”Re'ã@s˜ddlmZmZmZddlZddlZddlmZmZm Z m Z ddlm Z m Z m Z mZmZddlmZddlmZddlmZdd lmZmZdd lmZmZmZer°dd lmZGd d „d e ƒZ!e ej"ej#ƒZ$edƒj%ƒZ&edƒj%ƒZ'edƒj%ƒZ(edƒj%ƒZ)edƒj%ƒZ*edƒj%ƒZ+edƒj%ƒZ,e dƒZ-e$e e-ƒe$BZ.ee$e e.ƒƒZ/e/dƒZ0e/Z1edƒdƒZ2e,e2Z3e1e e*e1ƒZ4e&e e4ƒe'dƒZ5eej6ej7ej8BƒZ9eej6ej7ej8BƒZ:e9e:AZ;ee;e e*e;ƒddd�dƒZdd„ƒe e=ƒdƒZ?e?j>d d„ƒe eƒƒd!ƒZej>d"d„ƒe+Z@e@eZAe?e eAƒZBe3e eAƒZCe0e e5ƒeCeBBZDeeDeZEeEjFd#ƒGd$d%„d%eGƒZHdS)&é)Úabsolute_importÚdivisionÚprint_functionN)Ú stringStartÚ stringEndÚoriginalTextForÚParseException)Ú ZeroOrMoreÚWordÚOptionalÚRegexÚCombine)ÚLiteral)Úparseé)Ú TYPE_CHECKING)Ú MARKER_EXPRÚMarker)ÚLegacySpecifierÚ SpecifierÚ SpecifierSet)ÚListc@seZdZdZdS)ÚInvalidRequirementzJ An invalid requirement was found, users should refer to PEP 508. N)Ú__name__Ú __module__Ú __qualname__Ú__doc__©rrú‘/builddir/build/BUILDROOT/alt-python36-pip-20.2.4-5.el8.x86_64/opt/alt/python36/lib/python3.6/site-packages/pip/_vendor/packaging/requirements.pyrsrú[ú]ú(ú)ú,ú;ú@z-_.Únamez[^ ]+ÚurlÚextrasF)Ú joinStringÚadjacentÚ _raw_speccCs |jpdS)NÚ)r+)ÚsÚlÚtrrrÚ;sr0Ú specifiercCs|dS)Nrr)r-r.r/rrrr0>sÚmarkercCst||j|j…ƒS)N)rÚ_original_startÚ _original_end)r-r.r/rrrr0Bszx[]c@s(eZdZdZdd„Zdd„Zdd„ZdS) Ú RequirementzÁParse 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. cCsytj|ƒ}WnDtk rR}z(tdj||j|jd…|jƒƒ‚WYdd}~XnX|j|_|jrÊt j |jƒ}|j dkr’t j |ƒ|jkrÀtdƒ‚n.|j oœ|j s°|j rÀ|j rÀtdj|jƒƒ‚|j|_nd|_t |jrâ|jjƒngƒ|_t|jƒ|_|j�r|jnd|_dS)NzParse error at "{0!r}": {1}éÚfilezInvalid URL givenzInvalid URL: {0})Ú REQUIREMENTÚ parseStringrrÚformatÚlocÚmsgr&r'ÚurlparseÚschemeÚ urlunparseÚnetlocÚsetr(ÚasListrr1r2)ÚselfÚrequirement_stringÚreqÚeÚ parsed_urlrrrÚ__init___s(.     zRequirement.__init__cCsŠ|jg}|jr*|jdjdjt|jƒƒƒƒ|jr@|jt|jƒƒ|jrh|jdj|jƒƒ|j rh|jdƒ|j r€|jdj|j ƒƒdj|ƒS)Nz[{0}]r#z@ {0}ú z; {0}r,) r&r(Úappendr:ÚjoinÚsortedr1Ústrr'r2)rCÚpartsrrrÚ__str__{s zRequirement.__str__cCsdjt|ƒƒS)Nz)r:rM)rCrrrÚ__repr__�szRequirement.__repr__N)rrrrrHrOrPrrrrr5Rsr5)IÚ __future__rrrÚstringÚreÚpip._vendor.pyparsingrrrrr r r r r rÚLZpip._vendor.six.moves.urllibrr=Ú_typingrÚmarkersrrÚ specifiersrrrÚtypingrÚ ValueErrorrÚ ascii_lettersÚdigitsÚALPHANUMÚsuppressÚLBRACKETÚRBRACKETÚLPARENÚRPARENÚCOMMAÚ SEMICOLONÚATÚ PUNCTUATIONÚIDENTIFIER_ENDÚ IDENTIFIERÚNAMEÚEXTRAÚURIÚURLÚ EXTRAS_LISTÚEXTRASÚ _regex_strÚVERBOSEÚ IGNORECASEÚVERSION_PEP440ÚVERSION_LEGACYÚ VERSION_ONEÚ VERSION_MANYÚ _VERSION_SPECÚsetParseActionÚ VERSION_SPECÚMARKER_SEPARATORÚMARKERÚVERSION_AND_MARKERÚURL_AND_MARKERÚNAMED_REQUIREMENTr8r9Úobjectr5rrrrÚsd