ó . ^c@`sfddlmZmZmZddlZddlZddlmZmZm Z m Z ddlm Z m Z m Z mZmZddlmZddlmZddlmZmZdd lmZmZmZd efd „ƒYZe ejejƒ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ƒZ,e+Z-edƒdƒZ.e(e.Z/e-e e&e-ƒZ0e"e e0ƒe#dƒZ1eej2ej3ej4BƒZ5eej2ej3ej4BƒZ6e5e6AZ7ee7e e&e7ƒddde8ƒdƒZ9e e$e9e%e9BƒZ:e:j;d„ƒe e:ƒdƒZ<e<j;d„ƒe eƒƒdƒZej;d„ƒe'Z=e=eZ>e<e e>ƒZ?e/e e>ƒZ@e,e e1ƒe@e?BZAeeAeZBeBjCd ƒd!eDfd"„ƒYZEdS(#i(tabsolute_importtdivisiontprint_functionN(t stringStartt stringEndtoriginalTextFortParseException(t ZeroOrMoretWordtOptionaltRegextCombine(tLiteral(tparsei(t MARKER_EXPRtMarker(tLegacySpecifiert Specifiert SpecifierSettInvalidRequirementcB`seZdZRS(sJ An invalid requirement was found, users should refer to PEP 508. (t__name__t __module__t__doc__(((sM/usr/lib/python2.7/dist-packages/setuptools/_vendor/packaging/requirements.pyRst[t]t(t)t,t;t@s-_.tnames[^ ]+turltextrast joinStringtadjacentt _raw_speccC`s |jp dS(Nt(R#(tstltt((sM/usr/lib/python2.7/dist-packages/setuptools/_vendor/packaging/requirements.pyt7R$t specifiercC`s|dS(Ni((R%R&R'((sM/usr/lib/python2.7/dist-packages/setuptools/_vendor/packaging/requirements.pyR(:R$tmarkercC`st||j|j!ƒS(N(Rt_original_startt _original_end(R%R&R'((sM/usr/lib/python2.7/dist-packages/setuptools/_vendor/packaging/requirements.pyR(>R$sx[]t RequirementcB`s)eZdZd„Zd„Zd„ZRS(sÁ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. cC`sgytj|ƒ}Wn?tk rT}tdj||j|jd!|jƒƒ‚nX|j|_|jrt j |jƒ}|j dkrµt j |ƒ|jkr÷tdƒ‚q÷nB|j oÄ|j sÜ|j r÷|j r÷tdj|jƒƒ‚n|j|_n d|_t|jr*|jjƒngƒ|_t|jƒ|_|jrZ|jnd|_dS(NsParse error at "{0!r}": {1}itfilesInvalid URL givensInvalid URL: {0}(t REQUIREMENTt parseStringRRtformattloctmsgRRturlparsetschemet urlunparsetnetloctNonetsetR tasListRR)R*(tselftrequirement_stringtreqtet parsed_url((sM/usr/lib/python2.7/dist-packages/setuptools/_vendor/packaging/requirements.pyt__init__[s('   'cC`sÒ|jg}|jr@|jdjdjt|jƒƒƒƒn|jrb|jt|jƒƒn|jr |jdj|jƒƒ|j r |jdƒq n|j rÅ|jdj|j ƒƒndj|ƒS(Ns[{0}]Rs@ {0}t s; {0}R$( RR tappendR1tjointsortedR)tstrRR*(R;tparts((sM/usr/lib/python2.7/dist-packages/setuptools/_vendor/packaging/requirements.pyt__str__vs  +    cC`sdjt|ƒƒS(Ns(R1RE(R;((sM/usr/lib/python2.7/dist-packages/setuptools/_vendor/packaging/requirements.pyt__repr__‰s(RRRR@RGRH(((sM/usr/lib/python2.7/dist-packages/setuptools/_vendor/packaging/requirements.pyR-Ns  (Ft __future__RRRtstringtretsetuptools.extern.pyparsingRRRRRRR R R R tLt"setuptools.extern.six.moves.urllibR R4tmarkersRRt specifiersRRRt ValueErrorRt ascii_letterstdigitstALPHANUMtsuppresstLBRACKETtRBRACKETtLPARENtRPARENtCOMMAt SEMICOLONtATt PUNCTUATIONtIDENTIFIER_ENDt IDENTIFIERtNAMEtEXTRAtURItURLt EXTRAS_LISTtEXTRASt _regex_strtVERBOSEt IGNORECASEtVERSION_PEP440tVERSION_LEGACYt VERSION_ONEtFalset VERSION_MANYt _VERSION_SPECtsetParseActiont VERSION_SPECtMARKER_SEPARATORtMARKERtVERSION_AND_MARKERtURL_AND_MARKERtNAMED_REQUIREMENTR/R0tobjectR-(((sM/usr/lib/python2.7/dist-packages/setuptools/_vendor/packaging/requirements.pyts^  "(