Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
Size: Mime:
ó
ϏRc@s~dZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZyddl
Z
Wnek
rÅddlZ
nXddlmZddlmZmZmZmZddlmZmZmZddlmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z&ddlm'Z'ddl(m)Z)m*Z*m+Z+m,Z,m-Z-dd	l.m/Z/m0Z0m1Z1m2Z2dd
l3m4Z4m5Z5m6Z6ddl7m8Z8dgZ9d
Z:de;fd„ƒYZ<de;fd„ƒYZ=de;fd„ƒYZ>de;fd„ƒYZ?e?eƒZ@d„ZAd„ZBeCd„ZDd„ZEdS(s!Routines related to PyPI, indexesiÿÿÿÿN(tlogger(tInftnormalize_nametsplitextt
is_prerelease(tDistributionNotFoundtBestVersionAlreadyInstalledtInstallationError(
tWindowsErrortBytesIOtQueueturlparsetURLErrort	HTTPErrortutproductturl2pathnametEmpty(tCertificateError(turlopentpath_to_url2turl_to_pathtgeturltUrllib2HeadRequest(tWheelt	wheel_exttwheel_setuptools_supporttsetuptools_requirement(tsupported_tagstsupported_tags_noarchtget_platform(thtml5libt
PackageFinderslast.pypi.python.orgc
BseZdZeddeggeeed„	Zed„ƒZejd„ƒZd„Z	d„Z
d„Zd„Zd„Z
d	„Zd
„ZejƒZd„ZejdƒZejd
ejƒZejdƒZd„Zd„Zd„Zd„Zd„Zd„Zddd„Z RS(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Csã||_||_g|_tƒ|_tƒ|_|rn|j||ƒ|_t	j
ddj|jƒƒn	g|_||_td„|Dƒƒ|_
td„|Dƒƒ|_|	|_|
|_t|_t|_||_dS(NsUsing PyPI mirrors: %ss, css|]}t|ƒVqdS(N(R(t.0tn((s>/home/tvault/.virtenv/lib/python2.7/site-packages/pip/index.pys	<genexpr>Dscss|]}t|ƒVqdS(N(R(R!R"((s>/home/tvault/.virtenv/lib/python2.7/site-packages/pip/index.pys	<genexpr>Gs(t
find_linkst
index_urlstdependency_linkst	PageCachetcachetsettlogged_linkst_get_mirror_urlstmirror_urlsRtinfotjoint	use_wheeltallow_externaltallow_insecuretallow_all_externaltallow_all_insecuretFalsetneed_warn_externaltneed_warn_insecuretallow_all_prereleases(tselfR#R$tuse_mirrorstmirrorstmain_mirror_urlR.R/R0R1R2R6((s>/home/tvault/.virtenv/lib/python2.7/site-packages/pip/index.pyt__init__1s"			 						cCs|jS(N(t
_use_wheel(R7((s>/home/tvault/.virtenv/lib/python2.7/site-packages/pip/index.pyR.ZscCs3||_|jr/tƒr/tdtƒ‚ndS(Ns pip's wheel support requires %s.(R<RRR(R7tvalue((s>/home/tvault/.virtenv/lib/python2.7/site-packages/pip/index.pyR.^s	cCs|jj|ƒdS(N(R%textend(R7tlinks((s>/home/tvault/.virtenv/lib/python2.7/site-packages/pip/index.pytadd_dependency_linksdsc	sGg‰g‰‡‡fd†}x|D]}tjj|ƒ}|jdƒ}||jk}|sg|r,|rv|}nt|ƒ}|râtjj|ƒrâtjj|ƒ}xztj|ƒD]}|tjj	||ƒƒq¼Wq9|r
tjj|ƒr
ˆj
|ƒq9tjj|ƒr9||ƒq9q%ˆj
|ƒq%WˆˆfS(st
        Sort locations into "files" (archives) and "urls", and return
        a pair of lists (files,urls)
        csLt|ƒ}tj|dtƒddkr;ˆj|ƒn
ˆj|ƒdS(Ntstrictis	text/html(Rt	mimetypest
guess_typeR3tappend(tpathturl(tfilesturls(s>/home/tvault/.virtenv/lib/python2.7/site-packages/pip/index.pyt	sort_pathtssfile:(tosREtexistst
startswithR#RtisdirtrealpathtlistdirR-RDtisfile(	R7t	locationsRIRFt
is_local_pathtis_file_urltis_find_linkREtitem((RGRHs>/home/tvault/.virtenv/lib/python2.7/site-packages/pip/index.pyt_sort_locationsks*
	 cCsn|\}}}|jrfttƒ}|tkr9d}n#|jrU|jjƒ}n|}||fS|SdS(sL
        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()
          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
        iN(R.tlenRtInfLinktwheeltsupport_index_min(R7t
link_tupletparsed_versiontlinkt_tsupport_numtpri((s>/home/tvault/.virtenv/lib/python2.7/site-packages/pip/index.pyt_link_sort_key“s
			
cCst|d|jdtƒS(sí
        Bring the latest version (and wheels) to the front, but maintain the existing ordering as secondary.
        See the docstring for `_link_sort_key` for details.
        This function is isolated for easier unit testing.
        tkeytreverse(tsortedRatTrue(R7tapplicable_versions((s>/home/tvault/.virtenv/lib/python2.7/site-packages/pip/index.pyt_sort_versions®scsÔ‡fd†}|j‰d}|jr›t||jdƒdtƒ}|j||ƒ}|dkr›|jt|jddtƒˆ|ƒp’|j‰q›n|j|j}ˆdk	ràg|D]}||ƒ^q¾|j}nt	|jƒ}xH|j
D]=}	ˆdk	rù|dk	rùtj|j
|	ƒg|}qùqùW|j|ƒ\}
}|j|jƒ\}}
|
j|ƒg|D]}t|dtƒ^q{}|jg|
D]}t|ƒ^q¦ƒtjd|ƒx|D]}tjd|ƒq×Wg}|j|jg|jD]}t|ddtƒ^q|jjƒƒƒg}xy|j||ƒD]e}tjd|j
ƒtjd7_z)|j|j|j|jjƒƒƒWdtjd8_XqXWt	|jg|jD]}t|ƒ^qÔ|jjƒƒƒ}|r@tjd	d
jg|D]\}}}	|j
^qƒƒnt	|jg|
D]}t|ƒ^qP|jjƒƒƒ}|rú|rú|rú|rútjd|ƒ|jrÇtjd|jƒn|jrçtjd
|jƒntd|ƒ‚ng}|jdk	r0|jj t!|jj"fg}n|rˆ|j#dtƒtjdd
jg|D]\}}}	t$|j
ƒ^q\ƒƒn|||||}g}xÒ|D]Ê\}}}	|	|j%krtjd||	djg|j%j&D]}dj|ƒ^qëƒfƒq«nKt'|	ƒr_|j(p/|j)r_|t!k	r_tjd||	fƒq«q_n|j*|||	fƒq«W|j+|ƒ}t,g|D]!\}}}	|t!kr’|^q’ƒ}|r |r |ddt!kr÷tjd|jj"ƒn%tjd|jj"|ddfƒdS|s®tjd|d
jg|D]\}}}	|	^q?ƒfƒ|jr{tjdƒn|jr›tjd
|jƒntd|ƒ‚n|ddt!krtjd|jj"d
jg|dD]\}}}	|	^qåƒpdfƒt-‚nt.|ƒdkrptjd|ddd
jg|D]\}}}	|	^qJƒfƒn|dd}|j/dk	r§|j/r§tjdƒn|j0dk	rÐ|j0rÐtjdƒn|S( Ncs2tj|ˆƒ}|jdƒs.|d}n|S(Nt/(t	posixpathR-tendswith(RFtloc(turl_name(s>/home/tvault/.virtenv/lib/python2.7/site-packages/pip/index.pytmkurl_pypi_url¸s
ittrusteds#URLs to search for versions for %s:s* %ss-fsAnalyzing links from page %sisdependency_links found: %ss, s<Could not find any downloads that satisfy the requirement %ssMSome externally hosted files were ignored (use --allow-external %s to allow).sUSome insecure and unverifiable files were ignored (use --allow-insecure %s to allow).s$No distributions at all found for %sRcsLocal files found: %ss-Ignoring link %s, version %s doesn't match %st,tsCIgnoring link %s, version %s is a pre-release (use --pre to allow).isLExisting installed version (%s) is most up-to-date and satisfies requirementsUExisting installed version (%s) satisfies requirement (most up-to-date version is %s)sNCould not find a version that satisfies the requirement %s (from versions: %s)sJSome externally hosted files were ignored (use --allow-external to allow).s,No distributions matching the version for %ss=Installed version (%s) is most up-to-date (past versions: %s)tnones)Using version %s (newest of versions: %s)syYou are installing an externally hosted file. Future versions of pip will default to disallowing externally hosted files.sƒYou are installing a potentially insecure and unverifiable file. Future versions of pip will default to disallowing insecure files.(1RltNoneR$tLinkRet	_get_paget_find_url_nameR+R#tlisttabsolute_versionsRiR-RFRVR%R>Rtdebugt_package_versionstnametlowert
_get_pagestindentR?R,tfatalR4twarnR5Rtsatisfied_byR\RXtversiontsortRtreqtspecsRR6tprereleasesRDRgtboolRRWtinternalt
verifiable(R7RƒtupgradeRmtmain_index_urltpagetall_index_urlsRFRQRtfile_locationst
url_locationst_flocationst_ulocationstlocationtfound_versionst
page_versionstdependency_versionstparsedR]t
file_versionstinstalled_versiontall_versionsRfR\tstexisting_applicabletselected_version((Rls>/home/tvault/.virtenv/lib/python2.7/site-packages/pip/index.pytfind_requirement¶sÊ
		7&#
%&
;)	4<	1				!B	<	4
			3				C		>

cCsÆ|jjdƒs$|jd7_n|j||ƒ}|dkrWtjd|ƒdSt|jƒ}xY|jD]N}t	j
|jjdƒƒ}|t|ƒkrptj
d||fƒ|SqpWdS(sŒFinds the true URL name of a package, when the given name isn't quite correct.
        This is usually used to implement case-insensitivity.RhsCannot fetch index base URL %sNs!Real name of requirement %s is %s(RFRjRtRrRR~RRlR?RitbasenameREtrstriptnotify(R7t	index_urlRlRƒR‹t	norm_nameR]tbase((s>/home/tvault/.virtenv/lib/python2.7/site-packages/pip/index.pyRuQsc
	CsÌtƒ}x|D]}|j|ƒqWg}tƒ}g}xnttdt|ƒƒƒD]Q}tjd|jd||||fƒ}	|	j	t
ƒ|j|	ƒ|	jƒqXWx|D]}	|	j
ƒq´W|S(sYields (page, page_url) from the given locations, skipping
        locations that have errors, and adding download/homepage linksi
ttargettargs(R
tputR(trangetminRWt	threadingtThreadt_get_queued_paget	setDaemonReRDtstartR-(
R7RQRƒt
pending_queueR‘tdonetseentthreadstitt((s>/home/tvault/.virtenv/lib/python2.7/site-packages/pip/index.pyR|ds	
	"'


c	CsFx?y|jtƒ}Wntk
r*dSX||kr=qn|j|ƒ|j||ƒ}|dkrnqn|j|ƒxÁ|jƒD]³}t|j	ƒj
ƒ}||jkrÜ|jrÜt
|_tjd|ƒqˆn|jdk	r.|jr.||jkr.|jr.tjd|ƒt
|_qˆn|j|ƒqˆWqdS(Ns@Not searching %s for files because external urls are disallowed.s_Not searching %s for urls, it is an untrusted link and cannot produce safe or verifiable files.(tgetR3t
QueueEmptytaddRtRrRDt	rel_linksRRzR{R/R1ReR4RRxRnR0R2R5R¥(	R7RƒR­R®R¯R‘R‹R]t
normalized((s>/home/tvault/.virtenv/lib/python2.7/site-packages/pip/index.pyRªxs:



		

		s#egg=([^&]*)s([a-z0-9_.]+)-([a-z0-9_.-]+)s-py([123]\.?[0-9]?)$cCsqgg}}tƒ}xP|D]H}||kr|j|ƒ|jrU|j|ƒqe|j|ƒqqW||S(sgReturns elements of links in order, non-egg links first, egg links second, while eliminating duplicates(R(Rµtegg_fragmentRD(R7R?teggstno_eggsR¯R]((s>/home/tvault/.virtenv/lib/python2.7/site-packages/pip/index.pyt_sort_linksŸs
	

	ccs@x9|j|ƒD](}x|j||ƒD]}|Vq)WqWdS(N(R»t_link_package_versions(R7R?tsearch_nameR]tv((s>/home/tvault/.virtenv/lib/python2.7/site-packages/pip/index.pyRy¬scCsd}|jr|tfS|S(Ns.tar.gzs.tar.bz2s.tars.tgzs.zip(s.tar.gzs.tar.bz2s.tars.tgzs.zip(R.R(R7t
extensions((s>/home/tvault/.virtenv/lib/python2.7/site-packages/pip/index.pyt_known_extensions±s	c
Csœtƒ}d}|jr$|j}né|jƒ\}}|ss||jkrotjd|ƒ|jj|ƒngS|jdƒr™|d }d|}n||j	ƒkrè||jkrätjd||fƒ|jj|ƒngSd|j
kr:|dkr:||jkr6tjd|ƒ|jj|ƒngS|jr
|jjj
ƒ|j
ƒkr
|jj}|jjƒs‘tjd|ƒgSt|d	dƒ}|jd
ƒr
|dk	r
tj|jƒjjdƒr
|jjdtƒs
tjd
|ƒgSq
n|s+|j|||ƒ}n|dkrRtjd||fƒgS|jdk	r®|jr®t|ƒj
ƒ|jkr®|jr®tjd|ƒt|_gS|jdk	r
|jr
t|ƒj
ƒ|jkr
|jr
tjd|ƒt|_ gS|j!j"|ƒ}|rl||j#ƒ }|j$dƒ}	|	t%jd krltjd|ƒgSntjd||fƒt&j'|ƒ||fgS(sâ
        Return an iterable of triples (pkg_resources_version_key,
        link, python_version) that can be extracted from the given
        link.

        Meant to be overridden by subclasses, not called by clients.
        sSkipping link %s; not a files.tariüÿÿÿs,Skipping link %s; unknown archive format: %stmacosx10s.zipsSkipping link %s; macosx10 ones9Skipping %s because it is not compatible with this Pythont
comes_fromtwinspypi.python.orgttagssOSkipping %s because it is a pypi-hosted binary Wheel on an unsupported platforms-Skipping link %s; wrong project name (not %s)s,Skipping %s because it is externally hosted.s<Skipping %s because it is an insecure and unverifiable file.iis/Skipping %s because Python version is incorrectsFound link %s, version: %sN((RRrR¸RR)RRxRµRjRÀRERYRzR{Rt	supportedtgetattrRLRRFtnetlocRt_egg_info_matchesR‡RR/R1ReR4RˆR0R2R5t_py_version_retsearchR¬tgrouptsyst
pkg_resourcest
parse_version(
R7R]R½tplatformRtegg_infotextRÂtmatcht
py_version((s>/home/tvault/.virtenv/lib/python2.7/site-packages/pip/index.pyR¼·sŠ		

'		


	

		cCs’|jj|ƒ}|s-tjd|ƒdS|jdƒjƒ}|jddƒ}|jƒd}|j|ƒrŠ|jdƒt	|ƒSdSdS(Ns%Could not parse version from link: %siR^t-(
t_egg_info_reRÊRRxRrRËR{treplaceRLRW(R7RÐR½R]RÒRztlook_for((s>/home/tvault/.virtenv/lib/python2.7/site-packages/pip/index.pyRÈscCstj||d|jƒS(NR'(tHTMLPagetget_pageR'(R7R]Rƒ((s>/home/tvault/.virtenv/lib/python2.7/site-packages/pip/index.pyRt)scCsÀ|s"t|ƒ}tj|ƒntƒ}xˆ|D]€}|jdƒ}tgdddgD]}|j|ƒ^qZƒs…d|}n|jdƒs¡d|}n|j|dƒq2Wt	|ƒS(sqRetrieves a list of URLs from the main mirror DNS entry
        unless a list of mirror URLs are passed.
        Rhshttp://shttps://sfile://s	http://%ss/simples	%s/simple(
tget_mirrorstrandomtshuffleR(RžtanyRLRjRµRv(R7R9R:R+t
mirror_urltscheme((s>/home/tvault/.virtenv/lib/python2.7/site-packages/pip/index.pyR*,s	
1

N(!t__name__t
__module__t__doc__R3RrR;tpropertyR.tsetterR@RVRaRgRœRuR|R¨tLockt	_log_lockRªtretcompilet_egg_fragment_retIRÕRÉR»RyRÀR¼RÈRtR*(((s>/home/tvault/.virtenv/lib/python2.7/site-packages/pip/index.pyR *s4		%		(			›			#	
			c		R&cBsVeZdZdZd„Zd„Zd„Zd„Zed„Z	d„Z
d„ZRS(	sCache of HTML pagesicCsi|_i|_i|_dS(N(t	_failurest_pagest	_archives(R7((s>/home/tvault/.virtenv/lib/python2.7/site-packages/pip/index.pyR;Gs		cCs|jj|dƒ|jkS(Ni(RëR³t
failure_limit(R7RF((s>/home/tvault/.virtenv/lib/python2.7/site-packages/pip/index.pyttoo_many_failuresLscCs|jj|ƒS(N(RìR³(R7RF((s>/home/tvault/.virtenv/lib/python2.7/site-packages/pip/index.pyRÙOscCs|jj|tƒS(N(RíR³R3(R7RF((s>/home/tvault/.virtenv/lib/python2.7/site-packages/pip/index.pyt
is_archiveRscCs||j|<dS(N(Rí(R7RFR=((s>/home/tvault/.virtenv/lib/python2.7/site-packages/pip/index.pytset_is_archiveUscCs$|jj|dƒ||j|<dS(Ni(RëR³(R7RFtlevel((s>/home/tvault/.virtenv/lib/python2.7/site-packages/pip/index.pytadd_page_failureXscCs"x|D]}||j|<qWdS(N(Rì(R7RHR‹RF((s>/home/tvault/.virtenv/lib/python2.7/site-packages/pip/index.pytadd_page[s
(RàRáRâRîR;RïRÙRðReRñRóRô(((s>/home/tvault/.virtenv/lib/python2.7/site-packages/pip/index.pyR&Bs					RØcBsùeZdZejdejƒZejdejƒZejdejejBƒZ	ddd„Zd„Ze
ded„ƒZed„ƒZed„ƒZed	„ƒZed
„ƒZd„Zdd„Zd„ZejdejƒZd„ZRS(s'Represents one page, along with its URLs<th>\s*home\s*pages<th>\s*download\s+urls(href=(?:"([^"]*)"|'([^']*)'|([^>\s\n]*))cCsC||_tj|jdtƒ|_||_||_||_dS(NtnamespaceHTMLElements(tcontentRtparseR3R•RFtheadersRn(R7RöRFRøRn((s>/home/tvault/.virtenv/lib/python2.7/site-packages/pip/index.pyR;hs
			cCs|jS(N(RF(R7((s>/home/tvault/.virtenv/lib/python2.7/site-packages/pip/index.pyt__str__osc
Cs|j}|jddƒd}|j|ƒr2dSddlm}xT|jD]I}|jƒj|ƒrL|t	|ƒdkrLt
jdtƒƒdSqLW|dk	rÇ|j
|ƒ}|dk	rÇ|Sny||r|dk	rò|j|ƒròdSn|j}	x‘dd	d
ddgD]w}
|	j|
ƒr|j|ƒ}|jƒjd
ƒrNPqˆt
jd||fƒ|dk	r|j|ƒndSqqWnt
jd|ƒtj|ƒ\}}}
}}}|dkr'tjjt|
ƒƒr'|jdƒs|d7}ntj|dƒ}t
jd|ƒnt|ƒ}t|ƒ}|jƒ}|jƒ}|jddƒ}|dk	rÃ|dkr¢tjdt |ƒƒjƒ}n|dkrÃt!j"|ƒ}qÃn|jddƒ}|jƒjd
ƒs!t
jd||fƒ|dk	r|j|ƒndS|t#|ƒ||d|j$ƒ}Wn™t%t&t'j(t'j)t*t+fk
rÞt,j-ƒd}t.|ƒ}t/|t'j(ƒr±t
j}d}d}nßt/|t&ƒrQt0|dƒrt/|j1t2j3ƒsöt/|j1t4ƒrd|}t
j5}n	t
j}t0|dƒrHt/|j1t'j(ƒrHd}d}qd}n?t/|t%ƒr|j6dkrt
j}d}nt
j}d}|d ||fƒ|d!|j|fƒ|dk	rÚ|j7||ƒndSX|dk	r|j8||g|ƒn|S("Nt#iiiÿÿÿÿ(t
VcsSupports+:s&Cannot look at %(scheme)s URL %(link)ss.tars.tar.gzs.tar.bz2s.tgzs.zips	text/htmls,Skipping page %s because of Content-Type: %ssGetting page %stfileRhs
index.htmls# file: URL is directory, getting %ssContent-EncodingtgziptfileobjtdeflatesContent-TypetunknownRns	timed outtreasons6There was a problem confirming the ssl certificate: %sii”sCould not fetch URL %s: %ss7Will skip URL %s when looking for download links for %s(9RFtsplitRïRrtpip.vcsRûtschemesR{RLRWRRxtlocalsRÙRðtfilenameRjt_get_content_typeRñRRJRERMRturljoinRRR,treadR³RýtGzipFileR	tzlibt
decompressRRnR
RtsocketttimeoutterrortOSErrorRRÌtexc_infotstrt
isinstancethasattrRtssltSSLErrorRRŸtcodeRóRô(tclsR]RƒR't
skip_archivesRFRûRßtinstRtbad_exttcontent_typeRÇREtparamstquerytfragmenttresptreal_urlRøtcontentstencodingtetdesctlog_methRò((s>/home/tvault/.virtenv/lib/python2.7/site-packages/pip/index.pyRÙrs¤	+	!$
!		%%		6
	$					cCs­tj|ƒ\}}}}}|dkr.dSt|di|d6ƒ}t|ƒ}zHt|dƒr„|jd	kr„|d
kr„dS|jƒjd
dƒSWd|jƒXdS(s;Get the Content-Type of the given url, using a HEAD requestthttpthttpstftptftpsRpRøtHostRiÈscontent-typeN(shttpshttpssftpR*(sftpR*(	RturlsplitRRRRR,R³tclose(RFRßRÇRERRRƒR ((s>/home/tvault/.virtenv/lib/python2.7/site-packages/pip/index.pyRßs*cCs´t|dƒs­d}g|jjdƒD]*}|jddƒjƒdkr(|^q(}|r¡y t|djddƒƒ}Wq¡ttfk
rd}q¡Xn||_	n|j	S(Nt_api_versions.//metaRzRpsapi-versioniR=(
RRrR•tfindallR³R{tintt	TypeErrort
ValueErrorR.(R7R.txtmetas((s>/home/tvault/.virtenv/lib/python2.7/site-packages/pip/index.pytapi_versionñs* 
cCsgt|dƒs`|jjdƒ}|dk	rQ|jdƒrQ|jdƒ|_q`|j|_n|jS(Nt	_base_urls.//basethref(RR•tfindRrR³R6RF(R7R¢((s>/home/tvault/.virtenv/lib/python2.7/site-packages/pip/index.pytbase_urlsccsÅx¾|jjdƒD]ª}|jdƒr|jdƒ}|jtj|j|ƒƒ}d}|jr¦|jdkr¦t	|jdƒod|jdƒj
ƒkƒ}nt||d|ƒVqqWdS(sYields all links in the pages.//aR7itrelR‡N(R•R/R³t
clean_linkRRR9RrR5R†RRs(R7tanchorR7RFR‡((s>/home/tvault/.virtenv/lib/python2.7/site-packages/pip/index.pyR?
s!ccs<x|jƒD]}|Vq
Wx|jƒD]}|Vq)WdS(N(texplicit_rel_linkstscraped_rel_links(R7RF((s>/home/tvault/.virtenv/lib/python2.7/site-packages/pip/index.pyR¶s	thomepagetdownloadccs·t|ƒ}x¤|jjdƒD]}|jdƒr|jdƒrt|jdƒjƒƒ}||@r¯|jdƒ}|jtj|j|ƒƒ}t	||dt
ƒVq¯qqWdS(s)Yields all links with the given relationss.//aR:R7RnN(R(R•R/R³RR;RRR9RsR3(R7trelsR<t
found_relsR7RF((s>/home/tvault/.virtenv/lib/python2.7/site-packages/pip/index.pyR=$s
ccs×xÐ|j|jfD]¼}|j|jƒ}|s7qn|jj|jd|jƒƒ}|sdqn|jdƒpŽ|jdƒpŽ|jdƒ}|sqn|jtj	|j
|ƒƒ}t||dtƒVqWdS(NtposiiiRn(
t_homepage_ret_download_reRÊRöt_href_retendRËR;RRR9RsR3(R7tregexRÒt
href_matchRF((s>/home/tvault/.virtenv/lib/python2.7/site-packages/pip/index.pyR>2s!-s[^a-z0-9$&+,/:;=?@.#%_\\|-]cCs|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).cSsdt|jdƒƒS(Ns%%%2xi(tordRË(RÒ((s>/home/tvault/.virtenv/lib/python2.7/site-packages/pip/index.pyt<lambda>Hs(t	_clean_retsub(R7RF((s>/home/tvault/.virtenv/lib/python2.7/site-packages/pip/index.pyR;Cs	N(R?sdownload(RàRáRâRçRèRêRDREtSRFRrR;RùtclassmethodReRÙtstaticmethodRRãR5R9R?R¶R=R>RLR;(((s>/home/tvault/.virtenv/lib/python2.7/site-packages/pip/index.pyRØ`s"	l
		RscBseZdddd„Zd„Zd„Zd„Zd„Zd„Zd„Z	d„Z
d„Zd	„Ze
d
„ƒZe
d„ƒZe
d„ƒZd
„Ze
d„ƒZejdƒZe
d„ƒZejdƒZe
d„ƒZe
d„ƒZe
d„ƒZe
d„ƒZRS(cCsh||_||_||_||_d|_|tkrd|jƒdtkrdt	|j
ƒ|_ndS(Ni(RFRÂR‡RnRrRYRRRRR(R7RFRÂR‡Rn((s>/home/tvault/.virtenv/lib/python2.7/site-packages/pip/index.pyR;Ms					"cCs.|jrd|j|jfSt|jƒSdS(Ns%s (from %s)(RÂRFR(R7((s>/home/tvault/.virtenv/lib/python2.7/site-packages/pip/index.pyRùXs	cCsd|S(Ns	<Link %s>((R7((s>/home/tvault/.virtenv/lib/python2.7/site-packages/pip/index.pyt__repr__^scCs|j|jkS(N(RF(R7tother((s>/home/tvault/.virtenv/lib/python2.7/site-packages/pip/index.pyt__eq__ascCs|j|jkS(N(RF(R7RR((s>/home/tvault/.virtenv/lib/python2.7/site-packages/pip/index.pyt__ne__dscCs|j|jkS(N(RF(R7RR((s>/home/tvault/.virtenv/lib/python2.7/site-packages/pip/index.pyt__lt__gscCs|j|jkS(N(RF(R7RR((s>/home/tvault/.virtenv/lib/python2.7/site-packages/pip/index.pyt__le__jscCs|j|jkS(N(RF(R7RR((s>/home/tvault/.virtenv/lib/python2.7/site-packages/pip/index.pyt__gt__mscCs|j|jkS(N(RF(R7RR((s>/home/tvault/.virtenv/lib/python2.7/site-packages/pip/index.pyt__ge__pscCs
t|jƒS(N(thashRF(R7((s>/home/tvault/.virtenv/lib/python2.7/site-packages/pip/index.pyt__hash__sscCs\tj|jƒ\}}}}}tj|jdƒƒp<|}|sXtd|jƒ‚|S(NRhsURL %r produced no filename(RR,RFRiRRžtAssertionError(R7R^RÇRERz((s>/home/tvault/.virtenv/lib/python2.7/site-packages/pip/index.pyRvs!cCstj|jƒdS(Ni(RR,RF(R7((s>/home/tvault/.virtenv/lib/python2.7/site-packages/pip/index.pyRß}scCstj|jƒdS(Ni(RR,RF(R7((s>/home/tvault/.virtenv/lib/python2.7/site-packages/pip/index.pyREscCsttj|jjdƒƒƒS(NRh(RRiRRERž(R7((s>/home/tvault/.virtenv/lib/python2.7/site-packages/pip/index.pyR…scCs=tj|jƒ\}}}}}tj||||dfƒS(N(RR,RFt
urlunsplitRr(R7RßRÇRERR((s>/home/tvault/.virtenv/lib/python2.7/site-packages/pip/index.pyturl_without_fragmentˆs!s#egg=([^&]*)cCs,|jj|jƒ}|sdS|jdƒS(Ni(RéRÊRFRrRË(R7RÒ((s>/home/tvault/.virtenv/lib/python2.7/site-packages/pip/index.pyR¸ss2(sha1|sha224|sha384|sha256|sha512|md5)=([a-f0-9]+)cCs,|jj|jƒ}|r(|jdƒSdS(Ni(t_hash_reRÊRFRËRr(R7RÒ((s>/home/tvault/.virtenv/lib/python2.7/site-packages/pip/index.pyRY˜s
cCs,|jj|jƒ}|r(|jdƒSdS(Ni(R^RÊRFRËRr(R7RÒ((s>/home/tvault/.virtenv/lib/python2.7/site-packages/pip/index.pyt	hash_nameŸs
cCs0tj|jjddƒdjddƒdƒS(NRúiit?(RiRRFR(R7((s>/home/tvault/.virtenv/lib/python2.7/site-packages/pip/index.pytshow_url¦scCs¹|jpt|jddƒ}|dk	r¥|r¥y%t|jddƒ}t|ƒ}Wnttfk
rtd}nX|dks|dkr‘dS|jržtSt	Sn|dk	rµt	SdS(sˆ
        Returns True if this link can be verified after download, False if it
        cannot, and None if we cannot determine.
        RnR5iN(
RnRÆRÂRrR0R2R1RYReR3(R7RnR5((s>/home/tvault/.virtenv/lib/python2.7/site-packages/pip/index.pyRˆªs
	N(RàRáRrR;RùRQRSRTRURVRWRXRZRãRRßRERR]RçRèRéR¸R^RYR_RaRˆ(((s>/home/tvault/.virtenv/lib/python2.7/site-packages/pip/index.pyRsKs,										cCs;t|ƒ}|j}|s1t|jƒd}nt|ƒS(sPGet a requirement from the URL, if possible.  This looks for #egg
    in the URLi(RsR¸RRtpackage_to_requirement(RFR]RÐ((s>/home/tvault/.virtenv/lib/python2.7/site-packages/pip/index.pytget_requirement_from_urlÑs
	cCsatjd|ƒ}|r9|jdƒ}|jdƒ}n|}d}|rYd||fS|SdS(s)Translate a name like Foo-1.2 to Foo==1.3s^(.*?)-(dev|\d.*)iiRps%s==%sN(RçRÊRË(tpackage_nameRÒRzR((s>/home/tvault/.virtenv/lib/python2.7/site-packages/pip/index.pyRbÛscCs§|dkrt}nd}ytj|ƒd}Wntjk
rIgSX|s]|tkrfd}n|jddƒ}gt|dƒD]}d||df^q‰S(s7Return the list of mirrors from the last record found on the DNS
    entry::

    >>> from pip.index import get_mirrors
    >>> get_mirrors()
    ['a.pypi.python.org', 'b.pypi.python.org', 'c.pypi.python.org',
    'd.pypi.python.org']

    Originally written for the distutils2 project by Alexis Metaireau.
    isz.pypi.python.orgt.is%s.%sN(RrtDEFAULT_MIRROR_HOSTNAMER
tgethostbyname_extgaierrorRtstring_range(thostnametlast_mirror_hostnamet
end_letterR™((s>/home/tvault/.virtenv/lib/python2.7/site-packages/pip/index.pyRÚês		ccsixbtt|ƒƒD]N}xEttjd|dƒD]*}dj|ƒ}|V||kr3dSq3WqWdS(sCompute the range of string between "a" and last.

    This works for simple "a to z" lists, but also for "a to zz" lists.
    trepeatiRpN(R¦RWRtstringtascii_lowercaseR-(tlasttkR3tresult((s>/home/tvault/.virtenv/lib/python2.7/site-packages/pip/index.pyRis (FRâRÌRJRçRýRBRiRÍRÛR
RRnRR¨tImportErrortdummy_threadingtpip.logRtpip.utilRRRRtpip.exceptionsRRRtpip.backwardcompatRR	R
RRR
RRRRR´Rtpip.downloadRRRRRt	pip.wheelRRRRtpip.pep425tagsRRRt
pip.vendorRt__all__RftobjectR R&RØRsRXRcRbRrRÚRi(((s>/home/tvault/.virtenv/lib/python2.7/site-packages/pip/index.pyt<module>sL
"F("	ÿÿëƒ