Your IP : 3.145.201.49
�
u�-ec@@sdZddlmZddlZddlZddlmZddlZddlZddl Z ddl
Z
ddlZddlZddl
Z
ddlmZddlmZddlmZddlmZmZmZmZmZdd lmZdd
lmZddlm Z ddl!m"Z"m#Z#m$Z$m%Z%dd
l&m'Z'm(Z(m)Z)m*Z*ddl+m,Z,m-Z-ddl.m/Z/ddl0m1Z1m2Z2m3Z3ddl4mZ5ddl6m7Z7ddl8m9Z9ddl:m;Z;ddl<m=Z=dddgZ>dddfdddfdddfdddfdde?fdddfgZ@ejAeB�ZCdeDfd ��YZEdeDfd!��YZFe
jGd"e
jH�d#�ZId$eDfd%��YZJd&eDfd'��YZKedd(�ZLd)�ZMd*�ZNd+�ZOd,�ZPed-d.�ZQdS(/s!Routines related to PyPI, indexesi(tabsolute_importN(t
namedtuple(tparse(trequest(t ipaddress(tcached_propertytsplitexttnormalize_pathtARCHIVE_EXTENSIONStSUPPORTED_EXTENSIONS(tRemovedInPip10Warning(t
indent_log(tcheck_requires_python(tDistributionNotFoundtBestVersionAlreadyInstalledtInvalidWheelFilenametUnsupportedWheel(tHAS_TLStis_urltpath_to_urlturl_to_path(tWheelt wheel_ext(t
get_supported(thtml5libtrequeststsix(tcanonicalize_name(t
specifiers(tSSLError(tunescapet
FormatControltfmt_ctl_handle_mutual_excludet
PackageFinderthttpst*t localhosts127.0.0.0/8s::1/128tfiletsshtInstallationCandidatecB@sbeZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z
d �ZRS(
cC@s@||_t|�|_||_|j|j|jf|_dS(N(tprojectt
parse_versiontversiontlocationt_key(tselfR(R*R+((s-/usr/lib/python2.7/site-packages/pip/index.pyt__init__>s cC@sdj|j|j|j�S(Ns,<InstallationCandidate({0!r}, {1!r}, {2!r})>(tformatR(R*R+(R-((s-/usr/lib/python2.7/site-packages/pip/index.pyt__repr__DscC@s
t|j�S(N(thashR,(R-((s-/usr/lib/python2.7/site-packages/pip/index.pyt__hash__IscC@s|j|d��S(NcS@s
||kS(N((tsto((s-/usr/lib/python2.7/site-packages/pip/index.pyt<lambda>Mt(t_compare(R-tother((s-/usr/lib/python2.7/site-packages/pip/index.pyt__lt__LscC@s|j|d��S(NcS@s
||kS(N((R3R4((s-/usr/lib/python2.7/site-packages/pip/index.pyR5PR6(R7(R-R8((s-/usr/lib/python2.7/site-packages/pip/index.pyt__le__OscC@s|j|d��S(NcS@s
||kS(N((R3R4((s-/usr/lib/python2.7/site-packages/pip/index.pyR5SR6(R7(R-R8((s-/usr/lib/python2.7/site-packages/pip/index.pyt__eq__RscC@s|j|d��S(NcS@s
||kS(N((R3R4((s-/usr/lib/python2.7/site-packages/pip/index.pyR5VR6(R7(R-R8((s-/usr/lib/python2.7/site-packages/pip/index.pyt__ge__UscC@s|j|d��S(NcS@s
||kS(N((R3R4((s-/usr/lib/python2.7/site-packages/pip/index.pyR5YR6(R7(R-R8((s-/usr/lib/python2.7/site-packages/pip/index.pyt__gt__XscC@s|j|d��S(NcS@s
||kS(N((R3R4((s-/usr/lib/python2.7/site-packages/pip/index.pyR5\R6(R7(R-R8((s-/usr/lib/python2.7/site-packages/pip/index.pyt__ne__[scC@s&t|t�stS||j|j�S(N(t
isinstanceR'tNotImplementedR,(R-R8tmethod((s-/usr/lib/python2.7/site-packages/pip/index.pyR7^s(t__name__t
__module__R.R0R2R9R:R;R<R=R>R7(((s-/usr/lib/python2.7/site-packages/pip/index.pyR'<s c
B@s�eZdZededdddddd� Zd�Zeed��Zd�Z d�Z
d�Zd�Zd�Z
d �Zejd
�Zd�Zd�Zd
�Zd�Zd�ZRS(s�This finds packages.
This is meant to match easy_install's technique for looking for
packages, by reading pages and looking for appropriate links.
c C@s�|d
krtd��ng|_xW|D]O}|jd�rjt|�}
tjj|
�rj|
}qjn|jj|�q+W||_ g|_
t�|_|p�t
t�t��|_g|r�|ngD]}d|df^q�|_||_||_||_td| d|d|
d|�|_ts�xRtj|j |j�D]5}tj|�}|jdkrItjd �PqIqIWnd
S(s�Create a PackageFinder.
:param format_control: A FormatControl object or None. Used to control
the selection of source packages / binary packages when consulting
the index and links.
:param platform: A string or None. If None, searches for packages
that are supported by the current system. Otherwise, will find
packages that can be built on the platform passed in. These
packages will only be downloaded for distribution: they will
not be built locally.
:param versions: A list of strings or None. This is passed directly
to pep425tags.py in the get_supported() method.
:param abi: A string or None. This is passed directly
to pep425tags.py in the get_supported() method.
:param implementation: A string or None. This is passed directly
to pep425tags.py in the get_supported() method.
s>PackageFinder() missing 1 required keyword argument: 'session't~R#tversionstplatformtabitimplR"sipip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.N(tNonet TypeErrort
find_linkst
startswithRtostpathtexiststappendt
index_urlstdependency_linkstsettlogged_linksRtformat_controltsecure_originstallow_all_prereleasestprocess_dependency_linkstsessionRt
valid_tagsRt itertoolstchainturllib_parseturlparsetschemetloggertwarning(R-RKRQRWt
trusted_hostsRXRYRURFRERGtimplementationtlinktnew_linkthosttparsed((s-/usr/lib/python2.7/site-packages/pip/index.pyR.ls>
. cC@s0|jr,tjdt�|jj|�ndS(NsXDependency Links processing has been deprecated and will be removed in a future release.(RXtwarningstwarnR
RRtextend(R-tlinks((s-/usr/lib/python2.7/site-packages/pip/index.pytadd_dependency_links�s
c@sXg�g���fd�}x-|D]%}tjj|�}|jd�}|sX|r|rg|}nt|�}tjj|�r�|r�tjj|�}xItj|�D]}|tjj||��q�Wq|r�j |�qqJtjj
|�r||�qJtjd|�q%t
|�r:�j |�q%tjd|�q%W��fS(st
Sort locations into "files" (archives) and "urls", and return
a pair of lists (files,urls)
c@sLt|�}tj|dt�ddkr;�j|�n
�j|�dS(Ntstrictis text/html(Rt mimetypest
guess_typetFalseRP(RNturl(tfilesturls(s-/usr/lib/python2.7/site-packages/pip/index.pyt sort_path�ssfile:s:Url '%s' is ignored: it is neither a file nor a directory.sQUrl '%s' is ignored. It is either a non-existing path or lacks a specific scheme.(RMRNRORLRtisdirtrealpathtlistdirtjoinRPtisfileR`RaR(t locationst
expand_dirRtRqt
is_local_pathtis_file_urlRNtitem((RrRss-/usr/lib/python2.7/site-packages/pip/index.pyt_sort_locations�s8
cC@st|j�}|jjrkt|jj�}|j|j�sUtd|j��n|j|j�}n|}|j |fS(s[
Function used to generate link sort key for link tuples.
The greater the return value, the more preferred it is.
If not finding wheels, then sorted by version only.
If finding wheels, then the sort order is by version, then:
1. existing installs
2. wheels ordered via Wheel.support_index_min(self.valid_tags)
3. source archives
Note: it was considered to embed this logic into the Link
comparison operators, but then different sdist links
with the same version, would have to be considered equal
sB%s is not a supported wheel for this platform. It can't be sorted.(
tlenRZR+tis_wheelRtfilenamet supportedRtsupport_index_minR*(R-t candidatetsupport_numtwheeltpri((s-/usr/lib/python2.7/site-packages/pip/index.pyt_candidate_sort_key�s
c C@s�tjt|��}|j|j|jf}|djdd�d}xht|jD]Y}||dkr�|ddkr�qUny�t j
t|dtj
�s�|ddkr�|dn|djd��}t jt|dtj
�r�|dn|djd��}WnQtk
r`|drs|dj�|dj�krs|ddkrsqUqsnX||krsqUn|d|dkr�|ddkr�|ddk r�qUntSW|jd|j|j�tS( Nit+ii����R#tutf8is�The repository located at %s is not a trusted or secure host and is being ignored. If this repository is available via HTTPS it is recommended to use HTTPS instead, otherwise you may silence this warning and allow it anyways with '--trusted-host %s'.(R]R^tstrR_thostnametporttrsplittSECURE_ORIGINSRVRt
ip_addressR?Rt text_typeRItdecodet
ip_networkt
ValueErrortlowertTrueRaRp( R-R`R+Rgtorigintprotocolt
secure_origintaddrtnetwork((s-/usr/lib/python2.7/site-packages/pip/index.pyt_validate_secure_origins>
c@s/�fd�}g|jD]}||�^qS(s�Returns the locations found via self.index_urls
Checks the url_name on the main (first in the list) index and
use this url_name to produce all locations
c@sAtj|tjt����}|jd�s=|d}n|S(Nt/(t posixpathRxR]tquoteRtendswith(Rqtloc(tproject_name(s-/usr/lib/python2.7/site-packages/pip/index.pytmkurl_pypi_urlhs
(RQ(R-R�R�Rq((R�s-/usr/lib/python2.7/site-packages/pip/index.pyt_get_index_urls_locationsas
c C@s�|j|�}|j|�\}}|j|jdt�\}}|j|j�\}}d�tj|||�D�} gtjd�|D�d�|D�d�|D��D]}
|jt|
�r�|
^q�}tj dt
|�|�x|D]}tj d|�q�Wt|�}
t|j
|
�}t||
|�}|jd�|jD�|�}g}xY|j||�D]E}tj d |j�t��!|j|j|j|��Wd
QXqsW|jd�|jD�|�}|rtj dd
jg|D]}|jj^q���n|j| |�}|ry|jdt�tj dd
jg|D]}t|jj�^qT��n||||S(sFind all available InstallationCandidate for project_name
This checks index_urls, find_links and dependency_links.
All versions found are returned as an InstallationCandidate list.
See _link_package_versions for details on which files are accepted
R{cs@s|]}t|�VqdS(N(tLink(t.0Rq((s-/usr/lib/python2.7/site-packages/pip/index.pys <genexpr>�scs@s|]}t|�VqdS(N(R�(R�Rq((s-/usr/lib/python2.7/site-packages/pip/index.pys <genexpr>�scs@s|]}t|�VqdS(N(R�(R�Rq((s-/usr/lib/python2.7/site-packages/pip/index.pys <genexpr>�scs@s|]}t|�VqdS(N(R�(R�Rq((s-/usr/lib/python2.7/site-packages/pip/index.pys <genexpr>�ss,%d location(s) to search for versions of %s:s* %scs@s|]}t|d�VqdS(s-fN(R�(R�Rq((s-/usr/lib/python2.7/site-packages/pip/index.pys <genexpr>�ssAnalyzing links from page %sNcs@s|]}t|�VqdS(N(R�(R�Rq((s-/usr/lib/python2.7/site-packages/pip/index.pys <genexpr>�ssdependency_links found: %ss, treversesLocal files found: %s(R�RRKR�RRR[R\R�R`tdebugR�Rtfmt_ctl_formatsRUtSearcht_package_versionst
_get_pagesRqRRjRkRxR+tsortR(R-R�tindex_locationstindex_file_loct
index_url_loctfl_file_loct
fl_url_loctdep_file_loctdep_url_loctfile_locationsRdt
url_locationsR+tcanonical_nametformatstsearchtfind_links_versionst
page_versionstpagetdependency_versionsR*t
file_versionsR�((s-/usr/lib/python2.7/site-packages/pip/index.pytfind_all_candidateswsZ
&)c
C@s"|j|j�}t|jjg|D]}t|j�^q%d|jrR|jnd��}g|D]!}t|j�|kre|^qe}|r�t |d|j
�}nd}|jdk r�t|jj�}nd}|dkr=|dkr=t
jd|djttd�|D��dt���td|��nt} |rm|dksd|j|krmt} n|r�|dk r�| r�t
jd|�nt
jd||j�dS| r�t
jd |djt|dt��p�d
�t�nt
jd|jdjt|dt���|jS(
s�Try to find a Link matching req
Expects req, an InstallRequirement and upgrade, a boolean
Returns a Link if found,
Raises DistributionNotFound or BestVersionAlreadyInstalled otherwise
tprereleasestkeysNCould not find a version that satisfies the requirement %s (from versions: %s)s, cs@s|]}t|j�VqdS(N(R�R*(R�tc((s-/usr/lib/python2.7/site-packages/pip/index.pys <genexpr>�ss%No matching distribution found for %ssLExisting installed version (%s) is most up-to-date and satisfies requirementsUExisting installed version (%s) satisfies requirement (most up-to-date version is %s)s=Installed version (%s) is most up-to-date (past versions: %s)tnones)Using version %s (newest of versions: %s)N(R�tnameRSt specifiertfilterR�R*RWRItmaxR�tsatisfied_byR)R`tcriticalRxtsortedR
RpR�R�RR+(
R-treqtupgradetall_candidatesR�tcompatible_versionstapplicable_candidatestbest_candidatetinstalled_versiontbest_installed((s-/usr/lib/python2.7/site-packages/pip/index.pytfind_requirement�sd ".
cc@sct�}xS|D]K}||kr(qn|j|�|j|�}|dkrVqn|VqWdS(sp
Yields (page, page_url) from the given locations, skipping
locations that have errors.
N(RStaddt _get_pageRI(R-RzR�tseenR+R�((s-/usr/lib/python2.7/site-packages/pip/index.pyR�-s
s-py([123]\.?[0-9]?)$cC@sqgg}}t�}xP|D]H}||kr|j|�|jrU|j|�qe|j|�qqW||S(s�
Returns elements of links in order, non-egg links first, egg links
second, while eliminating duplicates
(RSR�tegg_fragmentRP(R-Rkteggstno_eggsR�Rd((s-/usr/lib/python2.7/site-packages/pip/index.pyt_sort_links@s
cC@sRg}xE|j|�D]4}|j||�}|dk r|j|�qqW|S(N(R�t_link_package_versionsRIRP(R-RkR�tresultRdtv((s-/usr/lib/python2.7/site-packages/pip/index.pyR�PscC@s9||jkr5tjd||�|jj|�ndS(NsSkipping link %s; %s(RTR`R�R�(R-Rdtreason((s-/usr/lib/python2.7/site-packages/pip/index.pyt_log_skipped_linkXsc
C@s�d}|jr$|j}|j}n^|j�\}}|sP|j|d�dS|tkrt|j|d|�dSd|jkr�|tkr�|j|d|j�dSd|j kr�|dkr�|j|d�dS|tkr�yt
|j�}Wn"tk
r|j|d �dSXt
|j�|jkrP|j|d
|j�dS|j|j�sv|j|d�dS|j}nd|jkr�|tkr�|j|d
|j�dS|s�t||j|�}n|dkr�|j|d
|j�dS|jj|�}|r^||j� }|jd�}|tjd kr^|j|d�dSnyt|j�} Wn3tjk
r�tjd|j|j�t} nX| s�tjd||j�dStjd||�t |j||�S(s'Return an InstallationCandidate or Nones
not a fileNsunsupported archive format: %stbinarysNo binaries permitted for %stmacosx10s.zipsmacosx10 onesinvalid wheel filenameswrong project name (not %s)s%it is not compatible with this PythontsourcesNo sources permitted for %siisPython version is incorrects3Package %s has an invalid Requires-Python entry: %ss_The package %s is incompatible with the pythonversion in use. Acceptable python versions are:%ssFound link %s, version: %s(!RIR�textRR�R R�RtsuppliedRNRR�RRR�t canonicalR�RZR*tegg_info_matchest_py_version_reR�tstarttgrouptsysRtrequires_pythonRtInvalidSpecifierR`R�R�R'(
R-RdR�R*tegg_infoR�R�tmatcht
py_versiontsupport_this_python((s-/usr/lib/python2.7/site-packages/pip/index.pyR�]s�
cC@stj|d|j�S(NRY(tHTMLPagetget_pageRY(R-Rd((s-/usr/lib/python2.7/site-packages/pip/index.pyR��sN(RBRCt__doc__RpRIR.RltstaticmethodRR�R�R�R�R�R�tretcompileR�R�R�R�R�R�(((s-/usr/lib/python2.7/site-packages/pip/index.pyR!es( Q
1 G S c Ms([a-z0-9_.]+)-([a-z0-9_.!+-]+)cC@s�|j|�}|s)tjd|�dS|dkrU|jd�}||jd�S|jd�j�}|jdd�}|j�d}|j|�r�|jd�t |�SdSdS(sxPull the version part out of a string.
:param egg_info: The string to parse. E.g. foo-2.1
:param search_name: The name of the package this belongs to. None to
infer the name. Note that this cannot unambiguously parse strings
like foo-2-2 which might be foo, 2-2 or foo-2, 2.
:param link: The link the string came from, for logging on failure.
s%Could not parse version from link: %sit-t_N(
R�R`R�RIR�tindexR�treplaceRLR�(R�tsearch_nameRdt_egg_info_reR�t
full_matchR�tlook_for((s-/usr/lib/python2.7/site-packages/pip/index.pyR��sR�cB@s�eZdZd
d�Zd�Zeed
d��Ze d
d��Z
e d��Zed��Z
ed��Zejdej�Zd �ZRS(s'Represents one page, along with its URLcC@s�d}|rMd|krMtj|d�\}}d|krM|d}qMn||_tj|jd|dt�|_||_||_ dS(NsContent-Typetcharsetttransport_encodingtnamespaceHTMLElements(
RItcgitparse_headertcontentRRRpRgRqtheaders(R-RRqRtencodingtcontent_typetparams((s-/usr/lib/python2.7/site-packages/pip/index.pyR.�s cC@s|jS(N(Rq(R-((s-/usr/lib/python2.7/site-packages/pip/index.pyt__str__�scC@s�|dkrtd��n|j}|jdd�d}ddlm}xS|jD]H}|j�j|�rT|t |�dkrTt
jd||�dSqTWy�|r|j}xht
D]]}|j|�r�|j|d|�} | j�jd �r�Pqt
jd
|| �dSq�q�Wnt
jd|�tj|�\}}
}}}
}|dkr�tjjtj|��r�|jd
�s�|d
7}ntj|d�}t
jd|�n|j|did d6dd6�}|j�|jjdd�} | j�jd �s$t
jd
|| �dS||j|j|j�}Wn�tjk
rk}|j|||�n�tk
r�}d|}|j|||dt
j �nWtj!k
r�}|j|d||�n+tj"k
r�|j|d|�nX|SdS(Ns9get_page() missing 1 required keyword argument: 'session't#ii(t
VcsSupports+:sCannot look at %s URL %sRYs text/htmls,Skipping page %s because of Content-Type: %ssGetting page %sR%R�s
index.htmls# file: URL is directory, getting %sRtAcceptsmax-age=600s
Cache-ControlsContent-Typetunknowns6There was a problem confirming the ssl certificate: %stmethsconnection error: %ss timed out(#RIRJRqtsplittpip.vcsRtschemesR�RLR�R`R�R�RR�t_get_content_typeR]R^RMRNRuturllib_requestturl2pathnameturljointgettraise_for_statusRRRt HTTPErrort_handle_failRtinfotConnectionErrortTimeout(tclsRdt
skip_archivesRYRqRR_R�tbad_extRtnetlocRNR tquerytfragmenttresptinsttexcR�((s-/usr/lib/python2.7/site-packages/pip/index.pyR��sr +
!
cC@s,|dkrtj}n|d||�dS(Ns%Could not fetch URL %s: %s - skipping(RIR`R�(RdR�RqR((s-/usr/lib/python2.7/site-packages/pip/index.pyR9scC@s`tj|�\}}}}}|dkr.dS|j|dt�}|j�|jjdd�S(s;Get the Content-Type of the given url, using a HEAD requestthttpR"R6tallow_redirectssContent-Type(R'R"(R]turlsplittheadR�RRR(RqRYR_R!RNR"R#R$((s-/usr/lib/python2.7/site-packages/pip/index.pyR@s
cC@sog|jjd�D]!}|jd�dk r|^q}|rd|djd�rd|djd�S|jSdS(Ns.//basethrefi(RgtfindallRRIRq(R-txtbases((s-/usr/lib/python2.7/site-packages/pip/index.pytbase_urlNs
!cc@s�x�|jjd�D]�}|jd�r|jd�}|jtj|j|��}|jd�}|rvt|�nd}t ||d|�VqqWdS(sYields all links in the pages.//aR+sdata-requires-pythonR�N(
RgR,Rt
clean_linkR]RR/RRIR�(R-tanchorR+Rqt pyrequire((s-/usr/lib/python2.7/site-packages/pip/index.pyRkYss[^a-z0-9$&+,/:;=?@.#%_\\|-]cC@s|jjd�|�S(s�Makes sure a link is fully encoded. That is, if a ' ' shows up in
the link, it will be rewritten to %20 (while not over-quoting
% or other characters).cS@sdt|jd��S(Ns%%%2xi(tordR�(R�((s-/usr/lib/python2.7/site-packages/pip/index.pyR5mR6(t _clean_retsub(R-Rq((s-/usr/lib/python2.7/site-packages/pip/index.pyR0hs N(RBRCR�RIR.R
tclassmethodR�R�R�RRRR/tpropertyRkR�R�tIR4R0(((s-/usr/lib/python2.7/site-packages/pip/index.pyR��s U
R�cB@saeZddd�Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z
d�Zd �Ze
d
��Ze
d��Ze
d��Ze
d
��Zd�Ze
d��Ze
d��Zejd�Ze
d��Zejd�Ze
d��Zejd�Ze
d��Ze
d��Ze
d��Ze
d��Ze
d��Z RS(cC@sI|jd�rt|�}n||_||_|r<|nd|_dS(s�
Object representing a parsed link from https://pypi.python.org/simple/*
url:
url of the resource pointed to (href of the link)
comes_from:
instance of HTMLPage where the link was found, or string.
requires_python:
String containing the `Requires-Python` metadata field, specified
in PEP 345. This may be specified by a data-requires-python
attribute in the HTML link tag, as described in PEP 503.
s\\N(RLRRqt
comes_fromRIR�(R-RqR9R�((s-/usr/lib/python2.7/site-packages/pip/index.pyR.rs
cC@sP|jrd|j}nd}|jr?d|j|j|fSt|j�SdS(Ns (requires-python:%s)R6s%s (from %s)%s(R�R9RqR�(R-trp((s-/usr/lib/python2.7/site-packages/pip/index.pyR
�s cC@sd|S(Ns <Link %s>((R-((s-/usr/lib/python2.7/site-packages/pip/index.pyR0�scC@s#t|t�stS|j|jkS(N(R?R�R@Rq(R-R8((s-/usr/lib/python2.7/site-packages/pip/index.pyR;�scC@s#t|t�stS|j|jkS(N(R?R�R@Rq(R-R8((s-/usr/lib/python2.7/site-packages/pip/index.pyR>�scC@s#t|t�stS|j|jkS(N(R?R�R@Rq(R-R8((s-/usr/lib/python2.7/site-packages/pip/index.pyR9�scC@s#t|t�stS|j|jkS(N(R?R�R@Rq(R-R8((s-/usr/lib/python2.7/site-packages/pip/index.pyR:�scC@s#t|t�stS|j|jkS(N(R?R�R@Rq(R-R8((s-/usr/lib/python2.7/site-packages/pip/index.pyR=�scC@s#t|t�stS|j|jkS(N(R?R�R@Rq(R-R8((s-/usr/lib/python2.7/site-packages/pip/index.pyR<�scC@s
t|j�S(N(R1Rq(R-((s-/usr/lib/python2.7/site-packages/pip/index.pyR2�scC@sktj|j�\}}}}}tj|jd��p<|}tj|�}|sgtd|j��|S(NR�sURL %r produced no filename(R]R)RqR�tbasenametrstriptunquotetAssertionError(R-R�R!RNR�((s-/usr/lib/python2.7/site-packages/pip/index.pyR��s
!cC@stj|j�dS(Ni(R]R)Rq(R-((s-/usr/lib/python2.7/site-packages/pip/index.pyR_�scC@stj|j�dS(Ni(R]R)Rq(R-((s-/usr/lib/python2.7/site-packages/pip/index.pyR!�scC@stjtj|j�d�S(Ni(R]R=R)Rq(R-((s-/usr/lib/python2.7/site-packages/pip/index.pyRN�scC@sttj|jjd���S(NR�(RR�R;RNR<(R-((s-/usr/lib/python2.7/site-packages/pip/index.pyR�scC@s|j�dS(Ni(R(R-((s-/usr/lib/python2.7/site-packages/pip/index.pyR��scC@s=tj|j�\}}}}}tj||||df�S(N(R]R)Rqt
urlunsplitRI(R-R_R!RNR"R#((s-/usr/lib/python2.7/site-packages/pip/index.pyturl_without_fragment�s!s[#&]egg=([^&]*)cC@s,|jj|j�}|sdS|jd�S(Ni(t_egg_fragment_reR�RqRIR�(R-R�((s-/usr/lib/python2.7/site-packages/pip/index.pyR��ss[#&]subdirectory=([^&]*)cC@s,|jj|j�}|sdS|jd�S(Ni(t_subdirectory_fragment_reR�RqRIR�(R-R�((s-/usr/lib/python2.7/site-packages/pip/index.pytsubdirectory_fragment�ss2(sha1|sha224|sha384|sha256|sha512|md5)=([a-f0-9]+)cC@s,|jj|j�}|r(|jd�SdS(Ni(t_hash_reR�RqR�RI(R-R�((s-/usr/lib/python2.7/site-packages/pip/index.pyR1�s
cC@s,|jj|j�}|r(|jd�SdS(Ni(RDR�RqR�RI(R-R�((s-/usr/lib/python2.7/site-packages/pip/index.pyt hash_name�s
cC@s0tj|jjdd�djdd�d�S(NRiit?(R�R;RqR(R-((s-/usr/lib/python2.7/site-packages/pip/index.pytshow_url�scC@s
|jtkS(N(R�R(R-((s-/usr/lib/python2.7/site-packages/pip/index.pyR��scC@s*ddlm}|j|jkr&tStS(s�
Determines if this points to an actual artifact (e.g. a tarball) or if
it points to an "abstract" thing like a path or a VCS location.
i(tvcs(RRHR_tall_schemesRpR�(R-RH((s-/usr/lib/python2.7/site-packages/pip/index.pytis_artifactsN(!RBRCRIR.R
R0R;R>R9R:R=R<R2R7R�R_R!RNRR�R@R�R�RAR�RBRCRDR1RERGR�RJ(((s-/usr/lib/python2.7/site-packages/pip/index.pyR�ps8
sno_binary only_binarycC@s�|jd�}xUd|krf|j�|j�|jd�||jd�d4d|krdSqWxP|D]H}|dkr�|j�qnnt|�}|j|�|j|�qnWdS(Nt,s:all:is:none:(RtclearR�R�Rtdiscard(tvaluettargetR8tnewR�((s-/usr/lib/python2.7/site-packages/pip/index.pyR s
cC@s�tddg�}||jkr1|jd�n]||jkrP|jd�n>d|jkro|jd�nd|jkr�|jd�nt|�S(NR�R�s:all:(RStonly_binaryRMt no_binaryt frozenset(tfmt_ctlR�R�((s-/usr/lib/python2.7/site-packages/pip/index.pyR�-scC@std|j|j�dS(Ns:all:(R RRRQ(RT((s-/usr/lib/python2.7/site-packages/pip/index.pytfmt_ctl_no_binary:scC@s$t|�tjdtdd�dS(Nsf--no-use-wheel is deprecated and will be removed in the future. Please use --no-binary :all: instead.t
stackleveli(RURhRiR
(RT((s-/usr/lib/python2.7/site-packages/pip/index.pytfmt_ctl_no_use_wheel?s
R�ssupplied canonical formats(RR�t
__future__RtloggingRtcollectionsRR[R�RMR�RnR�Rhtpip._vendor.six.moves.urllibRR]RRt
pip.compatRt pip.utilsRRRRR tpip.utils.deprecationR
tpip.utils.loggingRtpip.utils.packagingRtpip.exceptionsR
RRRtpip.downloadRRRRt pip.wheelRRtpip.pep425tagsRtpip._vendorRRRtpip._vendor.packaging.versionR)tpip._vendor.packaging.utilsRtpip._vendor.packagingRtpip._vendor.requests.exceptionsRtpip._vendor.distlib.compatRt__all__RIR�t getLoggerRBR`tobjectR'R!R�R8R�R�R�RR R�RURWR�(((s-/usr/lib/python2.7/site-packages/pip/index.pyt<module>sd("")��M��