????
Your IP : 18.222.219.97
�
��abc@`s<ddlmZmZmZddlZddlZddlZddlZddlm Z m
Z
ddlmZm
Z
mZdefd��YZde
eje�fd ��YZd
efd��YZdefd
��YZd�Zdefd��YZejd�Zd�Zd�Zdefd��YZdS(i(tabsolute_importtdivisiontprint_functionNi(tstring_typestwith_metaclass(tVersiont
LegacyVersiontparsetInvalidSpecifiercB`seZdZRS(sH
An invalid specifier was found, users should refer to PEP 440.
(t__name__t
__module__t__doc__(((sD/usr/lib/python2.7/site-packages/pip/_vendor/packaging/specifiers.pyRst
BaseSpecifiercB`s�eZejd��Zejd��Zejd��Zejd��Zejd��Z e j
d��Z ejdd��Zejdd��Z
RS( cC`sdS(s�
Returns the str representation of this Specifier like object. This
should be representative of the Specifier itself.
N((tself((sD/usr/lib/python2.7/site-packages/pip/_vendor/packaging/specifiers.pyt__str__tcC`sdS(sF
Returns a hash value for this Specifier like object.
N((R
((sD/usr/lib/python2.7/site-packages/pip/_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((sD/usr/lib/python2.7/site-packages/pip/_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((sD/usr/lib/python2.7/site-packages/pip/_vendor/packaging/specifiers.pyt__ne__+RcC`sdS(sg
Returns whether or not pre-releases as a whole are allowed by this
specifier.
N((R
((sD/usr/lib/python2.7/site-packages/pip/_vendor/packaging/specifiers.pytprereleases2RcC`sdS(sd
Sets whether or not pre-releases as a whole are allowed by this
specifier.
N((R
tvalue((sD/usr/lib/python2.7/site-packages/pip/_vendor/packaging/specifiers.pyR9RcC`sdS(sR
Determines if the given item is contained within this specifier.
N((R
titemR((sD/usr/lib/python2.7/site-packages/pip/_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((sD/usr/lib/python2.7/site-packages/pip/_vendor/packaging/specifiers.pytfilterFRN(R R
tabctabstractmethodRRRRtabstractpropertyRtsettertNoneRR(((sD/usr/lib/python2.7/site-packages/pip/_vendor/packaging/specifiers.pyRst_IndividualSpecifiercB`s�eZiZddd�Zd�Zd�Zd�Zd�Zd�Z d�Z
d�Zed ��Z
ed
��Zed��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((sD/usr/lib/python2.7/site-packages/pip/_vendor/packaging/specifiers.pyt__init__RscC`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((sD/usr/lib/python2.7/site-packages/pip/_vendor/packaging/specifiers.pyt__repr___s! cC`sdj|j�S(Ns{0}{1}(R$R'(R
((sD/usr/lib/python2.7/site-packages/pip/_vendor/packaging/specifiers.pyRlscC`s
t|j�S(N(thashR'(R
((sD/usr/lib/python2.7/site-packages/pip/_vendor/packaging/specifiers.pyRoscC`s`t|t�r:y|j|�}WqPtk
r6tSXnt||j�sPtS|j|jkS(N(t
isinstanceRR,RtNotImplementedR'(R
R((sD/usr/lib/python2.7/site-packages/pip/_vendor/packaging/specifiers.pyRrs
cC`s`t|t�r:y|j|�}WqPtk
r6tSXnt||j�sPtS|j|jkS(N(R1RR,RR2R'(R
R((sD/usr/lib/python2.7/site-packages/pip/_vendor/packaging/specifiers.pyR}s
cC`st|dj|j|��S(Ns_compare_{0}(tgetattrR$t
_operators(R
top((sD/usr/lib/python2.7/site-packages/pip/_vendor/packaging/specifiers.pyt
_get_operator�scC`s(t|ttf�s$t|�}n|S(N(R1RRR(R
R!((sD/usr/lib/python2.7/site-packages/pip/_vendor/packaging/specifiers.pyt_coerce_version�scC`s|jdS(Ni(R'(R
((sD/usr/lib/python2.7/site-packages/pip/_vendor/packaging/specifiers.pyR �scC`s|jdS(Ni(R'(R
((sD/usr/lib/python2.7/site-packages/pip/_vendor/packaging/specifiers.pyR!�scC`s|jS(N(R((R
((sD/usr/lib/python2.7/site-packages/pip/_vendor/packaging/specifiers.pyR�scC`s
||_dS(N(R((R
R((sD/usr/lib/python2.7/site-packages/pip/_vendor/packaging/specifiers.pyR�scC`s
|j|�S(N(R(R
R((sD/usr/lib/python2.7/site-packages/pip/_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((sD/usr/lib/python2.7/site-packages/pip/_vendor/packaging/specifiers.pyR�scc`s�t}g}i|dk r!|ntd6}xf|D]^}|j|�}|j||�r2|jr�|pn|jr�|j|�q�t}|Vq2q2W|r�|r�x|D]}|Vq�WndS(NR(R:RtTrueR7RR9Rtappend(R
RRtyieldedtfound_prereleasestkwR!tparsed_version((sD/usr/lib/python2.7/site-packages/pip/_vendor/packaging/specifiers.pyR�s
N(R R
R4RR+R/RRRRR6R7tpropertyR R!RRR8RR(((sD/usr/lib/python2.7/site-packages/pip/_vendor/packaging/specifiers.pyRNs
tLegacySpecifiercB`s�eZdZejdedejejB�Zidd6dd6dd6d d
6dd6d
d6Zd�Z d�Z
d�Zd�Zd�Z
d�Zd�ZRS(s�
(?P<operator>(==|!=|<=|>=|<|>))
\s*
(?P<version>
[^,;\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_thant<tgreater_thant>cC`s(t|t�s$tt|��}n|S(N(R1RR-(R
R!((sD/usr/lib/python2.7/site-packages/pip/_vendor/packaging/specifiers.pyR7�scC`s||j|�kS(N(R7(R
tprospectiveR)((sD/usr/lib/python2.7/site-packages/pip/_vendor/packaging/specifiers.pyt_compare_equal�scC`s||j|�kS(N(R7(R
RKR)((sD/usr/lib/python2.7/site-packages/pip/_vendor/packaging/specifiers.pyt_compare_not_equal�scC`s||j|�kS(N(R7(R
RKR)((sD/usr/lib/python2.7/site-packages/pip/_vendor/packaging/specifiers.pyt_compare_less_than_equal�scC`s||j|�kS(N(R7(R
RKR)((sD/usr/lib/python2.7/site-packages/pip/_vendor/packaging/specifiers.pyt_compare_greater_than_equalscC`s||j|�kS(N(R7(R
RKR)((sD/usr/lib/python2.7/site-packages/pip/_vendor/packaging/specifiers.pyt_compare_less_thanscC`s||j|�kS(N(R7(R
RKR)((sD/usr/lib/python2.7/site-packages/pip/_vendor/packaging/specifiers.pyt_compare_greater_thans(R R
t
_regex_strtretcompiletVERBOSEt
IGNORECASER"R4R7RLRMRNRORPRQ(((sD/usr/lib/python2.7/site-packages/pip/_vendor/packaging/specifiers.pyRB�s"
c`s"tj���fd��}|S(Nc`s#t|t�stS�|||�S(N(R1RR:(R
RKR)(tfn(sD/usr/lib/python2.7/site-packages/pip/_vendor/packaging/specifiers.pytwrappeds(t functoolstwraps(RWRX((RWsD/usr/lib/python2.7/site-packages/pip/_vendor/packaging/specifiers.pyt_require_version_compare
st SpecifiercB`seZdZejdedejejB�Zidd6dd6dd6d d
6dd6d
d6dd6dd6Ze d��Z
e d��Ze d��Ze d��Z
e d��Ze d��Ze d��Zd�Zed��Zejd��ZRS(s
(?P<operator>(~=|==|!=|<=|>=|<|>|===))
(?P<version>
(?:
# 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.
(?<!==|!=|~=) # We have special cases for these
# operators so we want to make sure they
# don't match here.
\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]*)
)?
(?:[-_\.]?dev[-_\.]?[0-9]*)? # dev release
)
)
s^\s*s\s*$t
compatibles~=RCs==RDs!=REs<=RFs>=RGRHRIRJt arbitrarys===cC`sfdjttjd�t|���d �}|d7}|jd�||�oe|jd�||�S(Nt.cS`s|jd�o|jd�S(Ntposttdev(t
startswith(tx((sD/usr/lib/python2.7/site-packages/pip/_vendor/packaging/specifiers.pyt<lambda>�si����s.*s>=s==(tjointlistt itertoolst takewhilet_version_splitR6(R
RKR)tprefix((sD/usr/lib/python2.7/site-packages/pip/_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)((sD/usr/lib/python2.7/site-packages/pip/_vendor/packaging/specifiers.pyRL�s cC`s|j||�S(N(RL(R
RKR)((sD/usr/lib/python2.7/site-packages/pip/_vendor/packaging/specifiers.pyRM�scC`s|t|�kS(N(R(R
RKR)((sD/usr/lib/python2.7/site-packages/pip/_vendor/packaging/specifiers.pyRN�scC`s|t|�kS(N(R(R
RKR)((sD/usr/lib/python2.7/site-packages/pip/_vendor/packaging/specifiers.pyRO�scC`sXt|�}||kstS|jrT|jrTt|j�t|j�krTtSntS(N(RR:R9tbase_versionR;(R
RKR)((sD/usr/lib/python2.7/site-packages/pip/_vendor/packaging/specifiers.pyRP�scC`s�t|�}||kstS|jrT|jrTt|j�t|j�krTtSn|jdk r�t|j�t|j�kr�tSntS(N(RR:tis_postreleaseRqRpRR;(R
RKR)((sD/usr/lib/python2.7/site-packages/pip/_vendor/packaging/specifiers.pyRQ�scC`s"t|�j�t|�j�kS(N(R-tlower(R
RKR)((sD/usr/lib/python2.7/site-packages/pip/_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!((sD/usr/lib/python2.7/site-packages/pip/_vendor/packaging/specifiers.pyRs
cC`s
||_dS(N(R((R
R((sD/usr/lib/python2.7/site-packages/pip/_vendor/packaging/specifiers.pyRs(R R
RRRSRTRURVR"R4R[RkRLRMRNRORPRQRtRARR(((sD/usr/lib/python2.7/site-packages/pip/_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*((sD/usr/lib/python2.7/site-packages/pip/_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((sD/usr/lib/python2.7/site-packages/pip/_vendor/packaging/specifiers.pyRd6RcS`s
|j�S(N(Rz(Rc((sD/usr/lib/python2.7/site-packages/pip/_vendor/packaging/specifiers.pyRd7Riit0(R<RfRgRhRntinserttmaxtchain(tlefttrightt
left_splittright_split((sD/usr/lib/python2.7/site-packages/pip/_vendor/packaging/specifiers.pyRo2s
""//tSpecifierSetcB`s�eZddd�Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z
d �Zed
��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((sD/usr/lib/python2.7/site-packages/pip/_vendor/packaging/specifiers.pyR+Os4
cC`s=|jdk r!dj|j�nd}djt|�|�S(Ns, prereleases={0!r}Rs<SpecifierSet({0!r}{1})>(R(RR$RR-(R
R.((sD/usr/lib/python2.7/site-packages/pip/_vendor/packaging/specifiers.pyR/ds!cC`s djtd�|jD���S(NR�cs`s|]}t|�VqdS(N(R-(t.0R�((sD/usr/lib/python2.7/site-packages/pip/_vendor/packaging/specifiers.pys <genexpr>ns(RetsortedR�(R
((sD/usr/lib/python2.7/site-packages/pip/_vendor/packaging/specifiers.pyRmscC`s
t|j�S(N(R0R�(R
((sD/usr/lib/python2.7/site-packages/pip/_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|_ntd��|S(NsFCannot combine SpecifierSets with True and False prerelease overrides.( R1RR�R2R�R�R(Rt
ValueError(R
RR�((sD/usr/lib/python2.7/site-packages/pip/_vendor/packaging/specifiers.pyt__and__ss cC`set|t�rt|�}n7t|t�rBtt|��}nt|t�sUtS|j|jkS(N(R1RR�RR-R2R�(R
R((sD/usr/lib/python2.7/site-packages/pip/_vendor/packaging/specifiers.pyR�scC`set|t�rt|�}n7t|t�rBtt|��}nt|t�sUtS|j|jkS(N(R1RR�RR-R2R�(R
R((sD/usr/lib/python2.7/site-packages/pip/_vendor/packaging/specifiers.pyR�scC`s
t|j�S(N(RnR�(R
((sD/usr/lib/python2.7/site-packages/pip/_vendor/packaging/specifiers.pyt__len__�scC`s
t|j�S(N(titerR�(R
((sD/usr/lib/python2.7/site-packages/pip/_vendor/packaging/specifiers.pyt__iter__�scC`s:|jdk r|jS|js#dStd�|jD��S(Ncs`s|]}|jVqdS(N(R(R�R�((sD/usr/lib/python2.7/site-packages/pip/_vendor/packaging/specifiers.pys <genexpr>�s(R(RR�tany(R
((sD/usr/lib/python2.7/site-packages/pip/_vendor/packaging/specifiers.pyR�s
cC`s
||_dS(N(R((R
R((sD/usr/lib/python2.7/site-packages/pip/_vendor/packaging/specifiers.pyR�scC`s
|j|�S(N(R(R
R((sD/usr/lib/python2.7/site-packages/pip/_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(sD/usr/lib/python2.7/site-packages/pip/_vendor/packaging/specifiers.pys <genexpr>�s(
R1RRRRRR9R:tallR�(R
RR((RRsD/usr/lib/python2.7/site-packages/pip/_vendor/packaging/specifiers.pyR�scC`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@((sD/usr/lib/python2.7/site-packages/pip/_vendor/packaging/specifiers.pyR�s*
N(R R
RR+R/RRR�RRR�R�RARRR8RR(((sD/usr/lib/python2.7/site-packages/pip/_vendor/packaging/specifiers.pyR�Ms
(t
__future__RRRRRYRgRSt_compatRRR!RRRR�RtABCMetatobjectRRRBR[R\RTRvRiRoR�(((sD/usr/lib/python2.7/site-packages/pip/_vendor/packaging/specifiers.pyt<module>s""9�4 �