U âQabã@srddlmZmZmZddlZddlZddlmZmZm Z m Z ddlm Z m Z m Z mZmZddlmZddlmZddlmZmZdd lmZmZmZGd d „d eƒZe ejejƒZ ed ƒ !¡Z"ed ƒ !¡Z#edƒ !¡Z$edƒ !¡Z%edƒ !¡Z&edƒ !¡Z'edƒ !¡Z(e dƒZ)e e e)ƒe BZ*ee e e*ƒƒZ+e+dƒZ,e+Z-edƒdƒZ.e(e.Z/e-e e&e-ƒZ0e"e e0ƒe#dƒZ1eej2ej3ej4BƒZ5eej2ej3ej4BƒZ6e5e6AZ7ee7e e&e7ƒddd�dƒZ8e e$e8e%e8BƒZ9e9 :dd„¡e e9ƒdƒZ;e; :dd„¡e eƒƒdƒZe :d d„¡e'Ze/e e=ƒZ?e,e e1ƒe?e>BZ@ee@eZAGd!d"„d"eBƒZCdS)#é)Úabsolute_importÚdivisionÚprint_functionN)Ú stringStartÚ stringEndÚoriginalTextForÚParseException)Ú ZeroOrMoreÚWordÚOptionalÚRegexÚCombine)ÚLiteral)Úparseé)Ú MARKER_EXPRÚMarker)ÚLegacySpecifierÚ SpecifierÚ SpecifierSetc@seZdZdZdS)ÚInvalidRequirementzJ An invalid requirement was found, users should refer to PEP 508. N)Ú__name__Ú __module__Ú __qualname__Ú__doc__©rrúP/usr/lib/python3.8/site-packages/pkg_resources/_vendor/packaging/requirements.pyrsrú[ú]ú(ú)ú,ú;ú@z-_.Únamez[^ ]+ÚurlÚextrasF)Z joinStringZadjacentÚ _raw_speccCs |jpdS)NÚ)r'©ÚsÚlÚtrrrÚ6ór-Ú specifiercCs|dS)Nrrr)rrrr-9r.ÚmarkercCst||j|j…ƒS)N)rZ_original_startZ _original_endr)rrrr-=r.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. c CsÖzt |¡}Wn@tk rN}z"td ||j|jd…¡ƒ‚W5d}~XYnX|j|_|jr”t |j¡}|j r‚|j r‚|j sŠ|j sŠtdƒ‚|j|_nd|_t |j r¬|j   ¡ngƒ|_ t|jƒ|_|jrÌ|jnd|_dS)Nz+Invalid requirement, parse error at "{0!r}"ézInvalid URL given)Ú REQUIREMENTZ parseStringrrÚformatZlocr$r%ÚurlparseZschemeZnetlocÚsetr&ZasListrr/r0)ÚselfZrequirement_stringZreqÚeZ parsed_urlrrrÚ__init__Xs,ÿÿ  ÿÿ  zRequirement.__init__cCsz|jg}|jr*| d d t|jƒ¡¡¡|jr@| t|jƒ¡|jrX| d |j¡¡|j rp| d |j ¡¡d |¡S)Nz[{0}]r!z@ {0}z; {0}r() r$r&Úappendr4ÚjoinÚsortedr/Ústrr%r0)r7ÚpartsrrrÚ__str__mszRequirement.__str__cCsd t|ƒ¡S)Nz)r4r=)r7rrrÚ__repr__~szRequirement.__repr__N)rrrrr9r?r@rrrrr1Ks r1)DZ __future__rrrÚstringÚreZpkg_resources.extern.pyparsingrrrrr r r r r rÚLZ%pkg_resources.extern.six.moves.urllibrr5ZmarkersrrZ specifiersrrrÚ ValueErrorrZ ascii_lettersZdigitsZALPHANUMÚsuppressZLBRACKETZRBRACKETZLPARENZRPARENÚCOMMAZ SEMICOLONÚATZ PUNCTUATIONZIDENTIFIER_ENDZ IDENTIFIERÚNAMEZEXTRAZURIZURLZ EXTRAS_LISTZEXTRASZ _regex_strÚVERBOSEÚ IGNORECASEZVERSION_PEP440ZVERSION_LEGACYZ VERSION_ONEZ VERSION_MANYZ _VERSION_SPECZsetParseActionZ VERSION_SPECZMARKER_SEPERATORZMARKERZVERSION_AND_MARKERZURL_AND_MARKERZNAMED_REQUIREMENTr3Úobjectr1rrrrÚsf          ÿÿ ÿ  ÿ