3

Q'íc
ã@s„ddlmZddlZddlZddlZddlmZmZddlm	Z	m
Z
ddlmZddl
mZejeƒZGdd„de
ƒZe	jeƒdS)	é)Úabsolute_importN)Údisplay_pathÚrmtree)ÚvcsÚVersionControl)Úpath_to_url)Úconfigparserc@sdeZdZdZdZdZdZdd	„Zd
d„Zdd
„Z	dd„Z
dd„Zdd„Zdd„Z
dd„Zdd„ZdS)Ú	MercurialÚhgz.hgÚcloneúhg+httpúhg+httpsúhg+sshúhg+static-httpcCs>tjddƒ}|j|ƒz|jd|gd|dWdt|ƒXdS)z?Export the Hg repository at the url to the destination locationz-exportzpip-ÚarchiveF)Úshow_stdoutÚcwdN)ÚtempfileÚmkdtempÚunpackÚrun_commandr)ÚselfÚlocationÚtemp_dir©rú0/tmp/pip-build-l_bcah40/pip/pip/vcs/mercurial.pyÚexports
zMercurial.exportcCs¨tjj||jdƒ}tjƒ}y<|j|ƒ|jdd|ƒt|dƒ}|j	|ƒWdQRXWn6t
tjfk
rŒ}ztj
d||ƒWYdd}~XnX|jddg||ddS)	NÚhgrcÚpathsÚdefaultÚwz/Could not switch Mercurial repository to %s: %sÚupdatez-q)r)ÚosÚpathÚjoinÚdirnamerÚSafeConfigParserÚreadÚsetÚopenÚwriteÚOSErrorÚNoSectionErrorÚloggerÚwarningr)rÚdestÚurlÚrev_optionsÚrepo_configÚconfigÚconfig_fileÚexcrrrÚswitch s
zMercurial.switchcCs,|jddg|d|jddg||ddS)NÚpullz-q)rr!)r)rr/r1rrrr!/szMercurial.updatecCsz|jƒ\}}|r |g}d|}ng}d}|j||||ƒrvtjd||t|ƒƒ|jddd||gƒ|jddg||ddS)	Nz (to revision %s)ÚzCloning hg %s%s to %srz
--noupdatez-qr!)r)Úget_url_revÚcheck_destinationr-Úinforr)rr/r0Úrevr1Úrev_displayrrrÚobtain3s

zMercurial.obtaincCs2|jddgd|djƒ}|j|ƒr*t|ƒ}|jƒS)NÚ
showconfigz
paths.defaultF)rr)rÚstripÚ_is_local_repositoryr)rrr0rrrÚget_urlEs
zMercurial.get_urlcCs|jddgd|djƒ}|S)NÚparentsz--template={rev}F)rr)rr@)rrÚcurrent_revisionrrrÚget_revisionMszMercurial.get_revisioncCs|jddgd|djƒ}|S)NrCz--template={node}F)rr)rr@)rrÚcurrent_rev_hashrrrÚget_revision_hashSszMercurial.get_revision_hashcCsT|j|ƒ}|jƒjdƒs d|}|jƒjddƒd}|s<dS|j|ƒ}d|||fS)Nzhg:zhg+ú-érz%s@%s#egg=%s)rBÚlowerÚ
startswithÚegg_nameÚsplitrG)rÚdistrÚrepoÚegg_project_namerFrrrÚget_src_requirementYs

zMercurial.get_src_requirementcCsdS)z&Always assume the versions don't matchFr)rr/r1rrrÚ
check_versioncszMercurial.check_versionN)r
rr
rr)Ú__name__Ú
__module__Ú__qualname__Únamer%Ú	repo_nameÚschemesrr6r!r>rBrErGrQrRrrrrr	s

r	)Ú
__future__rÚloggingr"rÚ	pip.utilsrrÚpip.vcsrrÚpip.downloadrZpip._vendor.six.movesrÚ	getLoggerrSr-r	ÚregisterrrrrÚ<module>s
W