� �fc@`s<ddlmZmZmZddlZddlZddlZddlZddlm Z m Z ddl m Z m Z mZdefd��YZde eje�fd ��YZd efd ��YZd efd ��YZd�Zdefd��YZejd�Zd�Zd�Zdefd��YZdS(i(tabsolute_importtdivisiontprint_functionNi(t string_typestwith_metaclass(tVersiont LegacyVersiontparsetInvalidSpecifiercB`seZdZRS(sH An invalid specifier was found, users should refer to PEP 440. (t__name__t __module__t__doc__(((sN/usr/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/specifiers.pyRst BaseSpecifiercB`s�eZejd��Zejd��Zejd��Zejd��Zejd��Z e j d��Z ejdd��Z ejdd��Z RS( cC`sdS(s� Returns the str representation of this Specifier like object. This should be representative of the Specifier itself. N((tself((sN/usr/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/specifiers.pyt__str__tcC`sdS(sF Returns a hash value for this Specifier like object. N((R ((sN/usr/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/specifiers.pyt__hash__RcC`sdS(sq Returns a boolean representing whether or not the two Specifier like objects are equal. N((R tother((sN/usr/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/specifiers.pyt__eq__$RcC`sdS(su Returns a boolean representing whether or not the two Specifier like objects are not equal. N((R R((sN/usr/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/specifiers.pyt__ne__+RcC`sdS(sg Returns whether or not pre-releases as a whole are allowed by this specifier. N((R ((sN/usr/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/specifiers.pyt prereleases2RcC`sdS(sd Sets whether or not pre-releases as a whole are allowed by this specifier. N((R tvalue((sN/usr/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/specifiers.pyR9RcC`sdS(sR Determines if the given item is contained within this specifier. N((R titemR((sN/usr/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/specifiers.pytcontains@RcC`sdS(s� Takes an iterable of items and filters them so that only items which are contained within this specifier are allowed in it. N((R titerableR((sN/usr/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/specifiers.pytfilterFRN(R R tabctabstractmethodRRRRtabstractpropertyRtsettertNoneRR(((sN/usr/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/specifiers.pyR st_IndividualSpecifiercB`s�eZiZddd�Zd�Zd�Zd�Zd�Zd�Z d�Z d�Z e d ��Z e d ��Ze d ��Zejd ��Zd �Zdd�Zdd�ZRS(RcC`sj|jj|�}|s0tdj|���n|jd�j�|jd�j�f|_||_dS(NsInvalid specifier: '{0}'toperatortversion(t_regextsearchRtformattgrouptstript_spect _prereleases(R tspecRtmatch((sN/usr/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/specifiers.pyt__init__Rs cC`sF|jdk r!dj|j�nd}dj|jjt|�|�S(Ns, prereleases={0!r}Rs<{0}({1!r}{2})>(R(RR$Rt __class__R tstr(R tpre((sN/usr/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/specifiers.pyt__repr___s !  cC`sdj|j�S(Ns{0}{1}(R$R'(R ((sN/usr/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/specifiers.pyRlscC`s t|j�S(N(thashR'(R ((sN/usr/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/specifiers.pyRoscC`s`t|t�r:y|j|�}WqPtk r6tSXnt||j�sPtS|j|jkS(N(t isinstanceRR,RtNotImplementedR'(R R((sN/usr/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/specifiers.pyRrs cC`s`t|t�r:y|j|�}WqPtk r6tSXnt||j�sPtS|j|jkS(N(R1RR,RR2R'(R R((sN/usr/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/specifiers.pyR}s cC`st|dj|j|��S(Ns _compare_{0}(tgetattrR$t _operators(R top((sN/usr/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/specifiers.pyt _get_operator�scC`s(t|ttf�s$t|�}n|S(N(R1RRR(R R!((sN/usr/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/specifiers.pyt_coerce_version�scC`s |jdS(Ni(R'(R ((sN/usr/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/specifiers.pyR �scC`s |jdS(Ni(R'(R ((sN/usr/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/specifiers.pyR!�scC`s|jS(N(R((R ((sN/usr/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/specifiers.pyR�scC`s ||_dS(N(R((R R((sN/usr/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/specifiers.pyR�scC`s |j|�S(N(R(R R((sN/usr/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/specifiers.pyt __contains__�scC`sW|dkr|j}n|j|�}|jr;| r;tS|j|j�||j�S(N(RRR7t is_prereleasetFalseR6R R!(R RR((sN/usr/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/specifiers.pyR�s   cc`s�t}g}i|dk r!|ntd6}xf|D]^}|j|�}|j||�r2|jr�|pn|j r�|j|�q�t}|Vq2q2W| r�|r�x|D] }|Vq�WndS(NR(R:RtTrueR7RR9Rtappend(R RRtyieldedtfound_prereleasestkwR!tparsed_version((sN/usr/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/specifiers.pyR�s     N(R R R4RR+R/RRRRR6R7tpropertyR R!RRR8RR(((sN/usr/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/specifiers.pyRNs       tLegacySpecifiercB`s�eZdZejdedejejB�Zidd6dd6dd6d d 6d d 6d d6Zd�Z d�Z d�Z d�Z d�Z d�Zd�ZRS(s� (?P(==|!=|<=|>=|<|>)) \s* (?P [^,;\s)]* # Since this is a "legacy" specifier, and the version # string can be just about anything, we match everything # except for whitespace, a semi-colon for marker support, # a closing paren since versions can be enclosed in # them, and a comma since it's a version separator. ) s^\s*s\s*$tequals==t not_equals!=tless_than_equals<=tgreater_than_equals>=t less_thantcC`s(t|t�s$tt|��}n|S(N(R1RR-(R R!((sN/usr/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/specifiers.pyR7�scC`s||j|�kS(N(R7(R t prospectiveR)((sN/usr/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/specifiers.pyt_compare_equal�scC`s||j|�kS(N(R7(R RKR)((sN/usr/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/specifiers.pyt_compare_not_equal�scC`s||j|�kS(N(R7(R RKR)((sN/usr/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/specifiers.pyt_compare_less_than_equal�scC`s||j|�kS(N(R7(R RKR)((sN/usr/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/specifiers.pyt_compare_greater_than_equalscC`s||j|�kS(N(R7(R RKR)((sN/usr/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/specifiers.pyt_compare_less_thanscC`s||j|�kS(N(R7(R RKR)((sN/usr/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/specifiers.pyt_compare_greater_thans(R R t _regex_strtretcompiletVERBOSEt IGNORECASER"R4R7RLRMRNRORPRQ(((sN/usr/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/specifiers.pyRB�s"        c`s"tj���fd��}|S(Nc`s#t|t�stS�|||�S(N(R1RR:(R RKR)(tfn(sN/usr/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/specifiers.pytwrapped s(t functoolstwraps(RWRX((RWsN/usr/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/specifiers.pyt_require_version_compare st SpecifiercB`seZdZejdedejejB�Zidd6dd6dd6d d 6d d 6d d6dd6dd6Ze d��Z e d��Z e d��Z e d��Z e d��Ze d��Ze d��Zd�Zed��Zejd��ZRS(s (?P(~=|==|!=|<=|>=|<|>|===)) (?P (?: # The identity operators allow for an escape hatch that will # do an exact string match of the version you wish to install. # This will not be parsed by PEP 440 and we cannot determine # any semantic meaning from it. This operator is discouraged # but included entirely as an escape hatch. (?<====) # Only match for the identity operator \s* [^\s]* # We just match everything, except for whitespace # since we are only testing for strict identity. ) | (?: # The (non)equality operators allow for wild card and local # versions to be specified so we have to define these two # operators separately to enable that. (?<===|!=) # Only match for equals and not equals \s* v? (?:[0-9]+!)? # epoch [0-9]+(?:\.[0-9]+)* # release (?: # pre release [-_\.]? (a|b|c|rc|alpha|beta|pre|preview) [-_\.]? [0-9]* )? (?: # post release (?:-[0-9]+)|(?:[-_\.]?(post|rev|r)[-_\.]?[0-9]*) )? # You cannot use a wild card and a dev or local version # together so group them with a | and make them optional. (?: (?:[-_\.]?dev[-_\.]?[0-9]*)? # dev release (?:\+[a-z0-9]+(?:[-_\.][a-z0-9]+)*)? # local | \.\* # Wild card syntax of .* )? ) | (?: # The compatible operator requires at least two digits in the # release segment. (?<=~=) # Only match for the compatible operator \s* v? (?:[0-9]+!)? # epoch [0-9]+(?:\.[0-9]+)+ # release (We have a + instead of a *) (?: # pre release [-_\.]? (a|b|c|rc|alpha|beta|pre|preview) [-_\.]? [0-9]* )? (?: # post release (?:-[0-9]+)|(?:[-_\.]?(post|rev|r)[-_\.]?[0-9]*) )? (?:[-_\.]?dev[-_\.]?[0-9]*)? # dev release ) | (?: # All other operators only allow a sub set of what the # (non)equality operators do. Specifically they do not allow # local versions to be specified nor do they allow the prefix # matching wild cards. (?=RGRHRIRJt arbitrarys===cC`sfdjttjd�t|���d �}|d7}|jd�||�oe|jd�||�S(Nt.cS`s|jd� o|jd� S(Ntposttdev(t startswith(tx((sN/usr/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/specifiers.pyt�si����s.*s>=s==(tjointlistt itertoolst takewhilet_version_splitR6(R RKR)tprefix((sN/usr/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/specifiers.pyt_compare_compatible�s   cC`s�|jd�rht|j�}t|d �}tt|��}|t|� }t||�\}}n't|�}|js�t|j�}n||kS(Ns.*i����(tendswithRtpublicRiR-tlent _pad_versiontlocal(R RKR)((sN/usr/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/specifiers.pyRL�s  cC`s|j||� S(N(RL(R RKR)((sN/usr/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/specifiers.pyRM�scC`s|t|�kS(N(R(R RKR)((sN/usr/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/specifiers.pyRN�scC`s|t|�kS(N(R(R RKR)((sN/usr/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/specifiers.pyRO�scC`sXt|�}||kstS|j rT|jrTt|j�t|j�krTtSntS(N(RR:R9t base_versionR;(R RKR)((sN/usr/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/specifiers.pyRP�s  cC`s�t|�}||kstS|j rT|jrTt|j�t|j�krTtSn|jdk r�t|j�t|j�kr�tSntS(N(RR:tis_postreleaseRqRpRR;(R RKR)((sN/usr/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/specifiers.pyRQ�s  cC`s"t|�j�t|�j�kS(N(R-tlower(R RKR)((sN/usr/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/specifiers.pyt_compare_arbitraryscC`ss|jdk r|jS|j\}}|dkro|dkrY|jd�rY|d }nt|�jrotSntS( Ns==s>=s<=s~=s===s.*i����(s==s>=s<=s~=s===(R(RR'RlRR9R;R:(R R R!((sN/usr/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/specifiers.pyRs  cC`s ||_dS(N(R((R R((sN/usr/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/specifiers.pyRs(R R RRRSRTRURVR"R4R[RkRLRMRNRORPRQRtRARR(((sN/usr/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/specifiers.pyR\s,^ # s^([0-9]+)((?:a|b|c|rc)[0-9]+)$cC`s\g}xO|jd�D]>}tj|�}|rG|j|j��q|j|�qW|S(NR_(tsplitt _prefix_regexR#textendtgroupsR<(R!tresultRR*((sN/usr/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/specifiers.pyRi'sc C`sgg}}|jttjd�|���|jttjd�|���|j|t|d��|j|t|d��|jddgtdt|d�t|d���|jddgtdt|d�t|d���ttj|��ttj|��fS(NcS`s |j�S(N(tisdigit(Rc((sN/usr/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/specifiers.pyRd6RcS`s |j�S(N(Rz(Rc((sN/usr/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/specifiers.pyRd7Riit0(R<RfRgRhRntinserttmaxtchain(tlefttrightt left_splitt right_split((sN/usr/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/specifiers.pyRo2s ""//t SpecifierSetcB`s�eZddd�Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z d �Z e d ��Z e jd ��Z d �Zdd �Zdd�ZRS(RcC`s�g|jd�D]}|j�r|j�^q}t�}xL|D]D}y|jt|��WqDtk r�|jt|��qDXqDWt|�|_||_ dS(Nt,( RuR&tsettaddR\RRBt frozensett_specsR((R t specifiersRtstparsedt specifier((sN/usr/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/specifiers.pyR+Os4   cC`s=|jdk r!dj|j�nd}djt|�|�S(Ns, prereleases={0!r}Rs(R(RR$RR-(R R.((sN/usr/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/specifiers.pyR/ds!cC`s djtd�|jD���S(NR�cs`s|]}t|�VqdS(N(R-(t.0R�((sN/usr/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/specifiers.pys ns(RetsortedR�(R ((sN/usr/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/specifiers.pyRmscC`s t|j�S(N(R0R�(R ((sN/usr/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/specifiers.pyRpscC`s�t|t�rt|�}nt|t�s1tSt�}t|j|jB�|_|jdkr�|jdk r�|j|_nZ|jdk r�|jdkr�|j|_n-|j|jkr�|j|_n td��|S(NsFCannot combine SpecifierSets with True and False prerelease overrides.( R1RR�R2R�R�R(Rt ValueError(R RR�((sN/usr/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/specifiers.pyt__and__ss  cC`set|t�rt|�}n7t|t�rBtt|��}nt|t�sUtS|j|jkS(N(R1RR�RR-R2R�(R R((sN/usr/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/specifiers.pyR�scC`set|t�rt|�}n7t|t�rBtt|��}nt|t�sUtS|j|jkS(N(R1RR�RR-R2R�(R R((sN/usr/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/specifiers.pyR�scC`s t|j�S(N(RnR�(R ((sN/usr/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/specifiers.pyt__len__�scC`s t|j�S(N(titerR�(R ((sN/usr/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/specifiers.pyt__iter__�scC`s:|jdk r|jS|js#dStd�|jD��S(Ncs`s|]}|jVqdS(N(R(R�R�((sN/usr/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/specifiers.pys �s(R(RR�tany(R ((sN/usr/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/specifiers.pyR�s  cC`s ||_dS(N(R((R R((sN/usr/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/specifiers.pyR�scC`s |j|�S(N(R(R R((sN/usr/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/specifiers.pyR8�sc`spt�ttf�s$t���n�dkr<|j�n� rP�jrPtSt��fd�|j D��S(Nc3`s$|]}|j�d��VqdS(RN(R(R�R�(RR(sN/usr/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/specifiers.pys �s( R1RRRRRR9R:tallR�(R RR((RRsN/usr/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/specifiers.pyR�s  cC`s |dkr|j}n|jrTx,|jD]!}|j|dt|��}q+W|Sg}g}x�|D]{}t|ttf�s�t|�}n|}t|t�r�qgn|j r�| r�|s�|j |�q�qg|j |�qgW| r|r|dkr|S|SdS(NR( RRR�RtboolR1RRRR9R<(R RRR)tfilteredR>RR@((sN/usr/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/specifiers.pyR�s*    N(R R RR+R/RRR�RRR�R�RARRR8RR(((sN/usr/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/specifiers.pyR�Ms       (t __future__RRRRRYRgRSt_compatRRR!RRRR�RtABCMetatobjectR RRBR[R\RTRvRiRoR�(((sN/usr/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/specifiers.pyts"    "9�4 �