� ��abc@`sYddlmZmZmZddlZddlZddlmZmZm 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?BZAeeAeZBd eCfd!��YZDdS("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__(((sF/usr/lib/python2.7/site-packages/pip/_vendor/packaging/requirements.pyRst[t]t(t)t,t;t@s-_.tnames[^ ]+turltextrast joinStringtadjacentt _raw_speccC`s |jp dS(Nt(R#(tstltt((sF/usr/lib/python2.7/site-packages/pip/_vendor/packaging/requirements.pyt8R$t specifiercC`s|dS(Ni((R%R&R'((sF/usr/lib/python2.7/site-packages/pip/_vendor/packaging/requirements.pyR(;R$tmarkercC`st||j|j!�S(N(Rt_original_startt _original_end(R%R&R'((sF/usr/lib/python2.7/site-packages/pip/_vendor/packaging/requirements.pyR(?R$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`sytj|�}Wn9tk rN}tdj||j|jd!���nX|j|_|jr�tj|j�}|j o�|j s�|j r�|j r�td��n|j|_n d|_t |j r�|j j�ng�|_ t|j�|_|jr|jnd|_dS(Ns+Invalid requirement, parse error at "{0!r}"isInvalid URL given(t REQUIREMENTt parseStringRRtformattlocRRturlparsetschemetnetloctNonetsetR tasListRR)R*(tselftrequirement_stringtreqtet parsed_url((sF/usr/lib/python2.7/site-packages/pip/_vendor/packaging/requirements.pyt__init__Zs"!   'cC`s�|jg}|jr@|jdjdjt|j����n|jrb|jt|j��n|jr�|jdj|j��n|j r�|jdj|j ��ndj|�S(Ns[{0}]Rs@ {0}s; {0}R$( RR tappendR0tjointsortedR)tstrRR*(R8tparts((sF/usr/lib/python2.7/site-packages/pip/_vendor/packaging/requirements.pyt__str__os  +   cC`sdjt|��S(Ns(R0RA(R8((sF/usr/lib/python2.7/site-packages/pip/_vendor/packaging/requirements.pyt__repr__�s(RRRR=RCRD(((sF/usr/lib/python2.7/site-packages/pip/_vendor/packaging/requirements.pyR-Ms  (Et __future__RRRtstringtretpip._vendor.pyparsingRRRRRRR R R R tLtpip._vendor.six.moves.urllibR R2tmarkersRRt specifiersRRRt ValueErrorRt ascii_letterstdigitstALPHANUMtsuppresstLBRACKETtRBRACKETtLPARENtRPARENtCOMMAt SEMICOLONtATt PUNCTUATIONtIDENTIFIER_ENDt IDENTIFIERtNAMEtEXTRAtURItURLt EXTRAS_LISTtEXTRASt _regex_strtVERBOSEt IGNORECASEtVERSION_PEP440tVERSION_LEGACYt VERSION_ONEtFalset VERSION_MANYt _VERSION_SPECtsetParseActiont VERSION_SPECtMARKER_SEPERATORtMARKERtVERSION_AND_MARKERtURL_AND_MARKERtNAMED_REQUIREMENTR.tobjectR-(((sF/usr/lib/python2.7/site-packages/pip/_vendor/packaging/requirements.pytsZ  "(