Current File : //proc/3/cwd/opt/alt/python35/lib/python3.5/site-packages/pip/req.pyc
�
�wMVc@sGddlmZddlZddlZddlZddlZddlZddlZddlZddl Z ddl
Z
ddlmZddl
mZmZmZmZmZddlmZmZmZmZmZmZmZddlmZddlmZddlm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0dd l1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9dd
l:m;Z;ddl
m<Z<ddl=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHddlIZJdd
lImKZKmLZLmMZMddlNmOZOmPZPd�ZQdeRfd��YZSdeRfd��YZTdeRfd��YZUd�ZVejWdejX�ZYeZeZeZeZd�Z[d�Z\d�Z]d�Z^eZd�Z_deRfd��YZ`deRfd ��YZad!eRfd"��YZbdS(#i����(t
FeedParserN(tchange_root(tbin_pytrunning_under_virtualenvtPIP_DELETE_MARKER_FILENAMEtwrite_delete_marker_filetbin_user(tInstallationErrortUninstallationErrortUnsupportedWheeltBestVersionAlreadyInstalledtInvalidWheelFilenametDistributionNotFoundtPreviousBuildDirError(tvcs(tlogger(tdisplay_pathtrmtreetasktask_path_existst
backup_dirtis_installable_dirtis_localt
dist_is_localtdist_in_usersitetdist_in_site_packagestrenamestnormalize_patht
egg_link_pathtmake_path_relativetcall_subprocesst
is_prereleasetnormalize_name(turlparseturllibtuses_pycachetConfigParsertstring_typest HTTPErrortget_python_versiontb(tLink(tbuild_prefix(t
PipSessiontget_file_contenttis_urlturl_to_pathtpath_to_urltis_archive_filetunpack_vcs_linkt
is_vcs_urltis_file_urltunpack_file_urltunpack_http_url(tmove_wheel_filestWheelt wheel_ext(t
pkg_resourcestsixcCs�t|d��}|j�}WdQXdtjt�dg}x9|D]1}y|j|�}Wntk
rrqCnXPqCWt|�tks�t �|S(sQReturn the contents of *filename*.
Try to decode the file contents with utf-8, the preffered system encoding
(e.g., cp1252 on some Windows machines) and latin1, in that order. Decoding
a byte string with latin1 will never raise an error. In the worst case, the
returned string will contain some garbage characters.
trbNsutf-8tlatin1(
topentreadtlocaletgetpreferredencodingtFalsetdecodetUnicodeDecodeErrorttypetbytestAssertionError(tfilenametfptdatat encodingstenc((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pytread_text_file's
tInstallRequirementc
Bs�eZd'ed'eed'd'eed� Zed'd'd��Zed'd'd��Zd�Z d�Z
ed�Zd�Ze
d��Ze
d��Ze
d ��Zed
�ZdZd�Zd
�Zd�Zd�Ze
d��Zejd�Zd(d�Ze
d��Ze
d��Zd�Zed�Zed�Z d�Z!d�Z"d�Z#d�Z$d)d'd'd�Z%d�Z&d*d�Z'd�Z(d �Z)e
d!��Z*e
d"��Z+d#�Z,d$�Z-d'd'd%�Z.e
d&��Z/RS(+c
Csld|_t|t�r9tjj|�}|j|_n||_||_||_||_ | dkrri} n| |_||_||_
d|_d|_d|_d|_d|_||_d|_d|_t|_d|_|
|_||_|rt|_n]|jdk r_tg|jjD]&}t|d�oM|ddk^q*�|_n t|_dS(Niis!=(( textrast
isinstanceR%R9tRequirementtparsetreqt
comes_fromt
source_dirteditabletNoneteditable_optionsturltas_eggt_egg_info_pathtsatisfied_bytconflicts_witht_temp_build_dirt
_is_bundletupdatetinstall_succeededtuninstalledRAt
use_user_sitet
target_dirtfrom_bundlet pycompiletTruetprereleasestanytspecsR(
tselfRRRSRTRURXRYR_RgRWRdRetx((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pyt__init__As< Ec
Cs�t||�\}}}|jd�r6t|�}nd}|||d|dtd|d|dt�}|dk r�||_n|S(Nsfile:RTRURXRWRg(tparse_editablet
startswithR.RVRfRN( tclsteditable_reqRStdefault_vcstnameRXtextras_overrideRTtres((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pyt
from_editableps c Cs�d }|j�}d }tjjtjj|��}d }t|�rWt|�}n�tjj|�r�tjj |ks�|j
d�r�t|�s�td|��ntt
|��}nFt|�rtjj|�s�tjd|�ntt
|��}n|r�|d kr�|j}|j}|jdkrstjd|�rst
tjjtjj|j���}n|jtkr�t|j�}|j�s�td|j��q�q�n|}|||d|d|�S(
s�Creates an InstallRequirement from a name, which might be a
requirement, directory containing 'setup.py', filename, or URL.
t.s;Directory %r is not installable. File 'setup.py' not found.sARequirement %r looks like a filename, but the file does not existtfiles\.\./s-%s is not a supported wheel on this platform.RXRgN(RVtstriptostpathtnormpathtabspathR-R)tisdirtsepRnRRR/R0tisfileRtwarnturl_without_fragmenttegg_fragmenttschemetretsearchtextR8R7RGt supportedR ( RoRrRSRgRXRRRztlinktwheel((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pyt from_line�s43 !*cCs�|jr8t|j�}|jrA|d|j7}qAn |j}|jdk rm|dt|jj�7}n|jr�t|jt �r�|j}n|jj
�}|r�|d|7}q�n|S(Ns from %ss in %ss
(from %s)(RRtstrRXR[RVRtlocationRSROR%t from_path(RjtsRS((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pyt__str__�s cCsv|jdkrdSt|j�}|jrrt|jt�rI|j}n|jj�}|rr|d|7}qrn|S(Ns->(RRRVR�RSROR%R�(RjR�RS((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pyR��s cCs�|jdk r|jS|jdkrJtjdd�|_||_|jS|jre|jj�}n |j}t j
j|�s�t|�nt j
j
||�S(Ns-buildspip-(R]RVRRttempfiletmkdtempt_ideal_build_dirRURrtlowerRyRztexistst_make_build_dirtjoin(Rjt build_dirtunpackRr((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pytbuild_location�s
cCs8|jdk rdS|jdk s(t�|js7t�|j}|j}|`|jrj|jj�}n |j}t j
j||�}t j
j|�s�t
jd|�t|�nt j
j|�r�tdt|���nt
jd|t|�t|�f�tj||�||_||_d|_dS(skIf the build location was a temporary directory, this will move it
to a new more permanent locationNsCreating directory %ss<A package already exists in %s; please remove it to continues,Moving package %s from %s to new location %s(RTRVRRRFR]R�RURrR�RyRzR�R�RtdebugR�RRtshutiltmoveRZ(Rjtold_locationt
new_build_dirRrtnew_location((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pytcorrect_build_location�s0
cCs|jdkrdS|jjS(N(RRRVtproject_name(Rj((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pyRr�scCs&|jdkrdStj|jj�S(N(RRRVR"tquotetunsafe_name(Rj((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pyturl_namescCs�yddl}Wntk
r/td��nXd}|jrsd|jkrstjj|j|jd|�}ntjj|j|�}tj r�t
|tj�r�|jt
j��}n|S(Ni����sBsetuptools must be installed to install from a source distributionssetup.pytsubdirectory(t
setuptoolstImportErrorRRWRyRzR�RTR:tPY2ROt text_typetencodetsystgetfilesystemencoding(RjR�t
setup_filetsetup_py((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pyR�s
cCs�|jst�|jr8tjd|j|jf�ntjd|j|jf�tjd7_z>|jdkr�tj j
tj j|jd��r�ttj j|jd��n|j
}|jdt|j��}|jdt|j��}tjd |d
g}|js|r&g}nFtj j|jd�}tj j|�s`tj|�nddg}t||d
|jd|jdtdtjdd�Wdtjd8_X|js�tjjd|j��|_|j�ndS(Ns2Running setup.py (path:%s) egg_info for package %ss7Running setup.py (path:%s) egg_info for package from %sit
distributeR�sdistribute.egg-infot__SETUP_PY__t__PKG_NAME__s-ctegg_infospip-egg-infos
--egg-basetcwdt
filter_stdouttshow_stdoutt
command_leveltcommand_descspython setup.py egg_infos%(Name)s==%(Version)s(RTRFRrRtnotifyR�RXtindentRyRzR}R�Rt
_run_setup_pytreplacetreprR�t
executableRUR�tmakedirsRt_filter_installRAt
VERBOSE_DEBUGRRR9RPRQtpkg_infoR�(Rjtforce_root_egg_infotscripttegg_info_cmdtegg_base_optiontegg_info_dir((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pytrun_egg_info!s8 4
s}
__file__ = __SETUP_PY__
from setuptools.command import egg_info
import pkg_resources
import os
import tokenize
def replacement_run(self):
self.mkpath(self.egg_info)
installer = self.distribution.fetch_build_egg
for ep in pkg_resources.iter_entry_points('egg_info.writers'):
# require=False is the change we're making:
writer = ep.load(require=False)
if writer:
writer(self, ep.name, os.path.join(self.egg_info,ep.name))
self.find_sources()
egg_info.egg_info.run = replacement_run
exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))
cCsy|jdk r5|jj|�s%dS|jj|�S|jsDt�|j|�}tjj |�sidSt
|�}|S(N(R[RVthas_metadatatget_metadataRTRFt
egg_info_pathRyRzR�RL(RjRGRI((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pyt
egg_info_databsc Cs<|jdkr&|jr$|j}ntjj|jd�}tj|�}|jr�g}xtj|�D]\}}}x-t j
D]"}||kr�|j|�q�q�Wx�t|�D]�}tjj
tjj||dd��s
tjj
tjj||dd��r|j|�n|dks2|dkr�|j|�q�q�W|jg|D]}tjj||�^qS�qjWg|D]}|jd�r�|^q�}n|s�td ||f��n|s�td ||f��t|�d
kr|jdd��ntjj||d
�|_ntjj|j|�S(Nspip-egg-infotbintpythontScriptss
Python.exettestttestss .egg-infos$No files/directories in %s (from %s)itkeycSs8|jtjj�tjjr3|jtjj�p6dS(Ni(tcountRyRzR~taltsep(Rk((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pyt<lambda>�si(RZRVRURTRyRzR�tlistdirtwalkRtdirnamestremovetlistR�textendtendswithRRFtlentsort( RjRGtbaset filenamestroottdirstfilestdirtf((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pyR�ns6 '' *+cCso|j|�}|sgSg}xI|j�D];}|j�}|s,|jd�rZq,n|j|�q,W|S(Nt#(R�t
splitlinesRxRntappend(RjRGRItresulttline((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pytegg_info_lines�scCs^t�}|jd�}|sAtjdt|jd���n|j|pPd�|j�S(NsPKG-INFOsNo PKG-INFO file found in %st(RR�RR�RR�tfeedtclose(RjtpRI((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pyR��s #cCs
|jd�S(Nsdependency_links.txt(R�(Rj((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pytdependency_links�ss \[(.*?)\]ccs�d}xx|jd�D]g}|jj|j��}|rO|jd�}qn|rx||krxtjd|�qn|VqWdS(Nsrequires.txtisskipping extra %s(RVR�t_requirements_section_retmatchR�tgroupRR�(RjRNtin_extraR�R�((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pytrequirements�sccs5x.|jjD] \}}|dkr
|Vq
q
WdS(Ns==(RRRi(Rjt qualifiertversion((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pytabsolute_versions�scCs|j�dS(NR�(R�(Rj((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pytinstalled_version�scCsk|jst�|j}||jkrDtjd||jf�n#tjdt|j�||f�dS(Ns'Requested %s, but installing version %ss;Source in %s has version %s, which satisfies requirement %s(RTRFR�RRRR�R�R(RjR�((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pytassert_source_matches_version�s cCs|js!tjd|j�dS|js0t�|js?t�|jjd�rUdSd|jkswtd|j��|js�dS|jjdd�\}}t j
|�}|r�||j�}|r�|j|j�q|j|j�ndstd|j|f��dS(Ns>Cannot update repository at %s; repository location is unknownsfile:t+sbad url: %riis+Unexpected version control type (in %s): %s(
RXRtinfoRTRURFRnR_tsplitRtget_backendtobtaintexport(RjR�tvc_typeRXtbackendtvcs_backend((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pytupdate_editable�s( " cCsp|j�s%td|jf��n|jp4|j}t|�}tjj|j |j
��d}tjj|j dj|j
�jd�d ��d}|jdt
jd�}|j
�d}t|�}tjj|�} tjj|�}
tjj|�}| s|
r^| r#|}n|}|j|�|jd �r�x|jd �j�D]4}
tjjtjj||
��}|j|�q[Wq�|jd
�r�|jd�r�|jd�}ng}x�g|jd
�j�D]}|r�||kr�|^q�D]M}tjj|j |�}|j|�|j|d�|j|d
�qWq�n?|j j|�r�|j|j �tjjtjj|j �d�}|j|d|�n�|rjt|d�}tjj|j�j��}|j�||j ks&td||j|j f��|j|�tjjtjj|�d�}|j||j �n3|r�x*tj j!|�D]}|j|�q�Wn|jd�rA|j"d�rAx�|j#d�D]o}t$|�r�t%}nt&}|jtjj||��t'j(dkr�|jtjj||�d�q�q�Wn|jd�rVt)j*�}|j+t,|j-d���|j.d�rVx�|j/d�D]�\}}t$|�r�t%}nt&}|jtjj||��t'j(dkr�|jtjj||�d�|jtjj||�d�|jtjj||�d�q�q�WqVn|j0|�||_1dS(s�
Uninstall the distribution currently satisfying this requirement.
Prompts before removing or modifying files unless
``auto_confirm`` is True.
Refuses to delete or modify files outside of ``sys.prefix`` -
thus uninstallation within a virtual environment can only
modify that virtual environment, even if the virtualenv is
linked to global site-packages.
s.Cannot uninstall requirement %s, not installeds .egg-infot-is
.dist-infos-py%sR�s.eggsinstalled-files.txts
top_level.txtsnamespace_packages.txts.pys.pycseasy-install.pths./trs;Egg-link %s does not match installed location of %s (at %s)tscriptstwin32s.batsentry_points.txttconsole_scriptss.exes
.exe.manifests
-script.pyN(2tcheck_if_existsRRrR[R\tUninstallPathSetRyRzR�R�tegg_nameR�R�R9tPY_MAJORRR�taddR�R�R�R{R�tdirnametadd_pthR=tnormcasetreadlineRxR�RFtpipR�tuninstallation_pathstmetadata_isdirtmetadata_listdirRRRR�tplatformR$tSafeConfigParsertreadfptFakeFiletget_metadata_linesthas_sectiontitemsR�Ra(Rjtauto_confirmtdisttpaths_to_removetpip_egg_info_pathtdist_info_pathtdebian_egg_info_pathteasy_install_eggtdevelop_egg_linktpip_egg_info_existstdebian_egg_info_existstdist_info_existsR�tinstalled_fileRzt
namespacesR�t
top_level_pkgteasy_install_pthtfhtlink_pointerR�tbin_dirtconfigRrtvalue((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pyt uninstall�s�
"
!"
.
* -
cCs4|jr|jj�ntjd|jf�dS(Ns'Can't rollback %s, nothing uninstalled.(RatrollbackRterrorR�(Rj((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pytrollback_uninstallYs cCs4|jr|jj�ntjd|jf�dS(Ns%Can't commit %s, nothing uninstalled.(RatcommitRR3R�(Rj((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pytcommit_uninstall`s cCs�|jst�t}d|j|jf}tjj||�}tjj|�rt dt
|�d�}|dkr�t}q|dkr�tj
dt
|��tj|�q|dkrt|�}tj
dt
|�t
|�f�tj||�qn|r�tj|dtj�}tjjtjj|j��}xtj|�D]�\} }
}d|
kr~|
jd�nxl|
D]d}tjj| |�}|j||�}
tj|jd |
d �}d|_|j|d�q�Wxb|D]Z}|tkrq�ntjj| |�}|j||�}
|j||jd |
�q�WqSW|j�tjd
8_tj dt
|��ndS(Ns %s-%s.zips/The file %s exists. (i)gnore, (w)ipe, (b)ackup titwR(sDeleting %ssBacking up %s to %sspip-egg-infot/i�iR�isSaved %s(R7R8R(i�(!RTRFRfRrR�RyRzR�R�RRRARR�R�RR�R�tzipfiletZipFiletZIP_DEFLATEDRR|R�t_clean_zip_nametZipInfot
external_attrtwritestrRtwriteR�R�R�(RjR�tcreate_archivetarchive_nametarchive_pathtresponset dest_filetzipR�tdirpathR�R�RRrtzipdirRG((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pytarchivegsN !
#
cCs_|j|tjj�s/td||f��|t|�d}|jtjjd�}|S(Ns$name %r doesn't start with prefix %riR9(RnRyRzR~RFR�R�(RjRrtprefix((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pyR=�s
cs�|jr|j||�dS|jrztjj|j�}tjj||j�|j |jd�d|�t
|_dStj
dd�}tjj|d�}z�tjg}|jd�|jd|j�|t|�dd |g7}|js|d
g7}n�dk r&|d�g7}n|jr?|dg7}n
|d
g7}t�r�|dtjjtjdddt��g7}ntjd|j�tjd7_z*t||d|jd|j dt!�Wdtjd8_Xtjj"|�stjd|�dSt
|_|jr$dS�fd�} t#|�}
xN|
D]1}|j$�}|j%d�rF| |�}PqFqFWtj&d|�dS|
j'�g}
t#|�}
x[|
D]S}|j$�}tjj(|�r�|tjj)7}n|
jt*| |�|��q�W|
j'�t#tjj|d�d�}
|
j+dj|
�d�|
j'�Wdtjj"|�r|tj,|�ntj-|�XdS(NR�tstrip_file_prefixs-recordspip-sinstall-record.txts-cs�import setuptools, tokenize;__file__=%r;exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))tinstalls--records#--single-version-externally-manageds--roots --compiles--no-compiles--install-headerstincludetsiteR�sRunning setup.py install for %siR�R�R�sRecord file %s not foundcs4�dkstjj|�r#|St�|�SdS(N(RVRyRztisabsR(Rz(R�(s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pytprepend_root�ss .egg-infos;Could not find .egg-info directory in install record for %ssinstalled-files.txtR8s
(.RUtinstall_editabletis_wheelRR�t
wheel_versionRTtcheck_compatibilityRrR6RfR`R�R�RyRzR�R�R�R�R�R�RYRVReRRKR'RR�R�RR�RAR�R=RxR�R�R�R}R~RRAR�trmdir(Rjtinstall_optionstglobal_optionsR�RLR�t
temp_locationtrecord_filenametinstall_argsRQR�R�R�t new_linesRG((R�s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pyRM�s�
cCs�|jstjj|j�rWtjd|j�|jrKt|j�nd|_n|j
r�tjj|j
�r�t|j
�nd|_
dS(sVRemove the source files from this requirement, if they are marked
for deletionsRemoving source in %sN(t is_bundleRyRzR�tdelete_marker_filenameRR�RTRRVR](Rj((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pytremove_temporary_source�s cCs�tjd|j�tjd7_zWttjdd|jgt|�ddgt|�d|j d|j
d t�Wdtjd8_Xt|_
dS(
NsRunning setup.py develop for %sis-cs�import setuptools, tokenize; __file__=%r; exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))tdevelops --no-depsR�R�R�(RR�RrR�RR�R�R�R�RTR�RARfR`(RjRWRX((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pyRRs7cCsatj}xKddddddddgD]+}tj||j��r(tj}Pq(q(W||fS( Ns^running .*s^writing .*s^creating .*s^[Cc]opying .*s^reading .*s4^removing .*\.egg-info' \(and everything under it\)$s^byte-compiling s7^warning: manifest_maker: standard file '-c' not found$(RtNOTIFYR�R�RxtINFO(RjR�tleveltregex((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pyR�s
cCs|jdkrtSyJ|jjdkrG|jrG|jjdkrGtStj|j�|_Wn�tj k
rttStj
k
r�tj|jj�}|jr�t|�r�||_q�t
�r�t|�r�td|j|jf��q�q�||_nXtS(s�Find an installed distribution that satisfies or conflicts
with this requirement, and set self.satisfied_by or
self.conflicts_with appropriately.R�R�sVWill not install to the user site because it will lack sys.path precedence to %s in %sN(RRRVRAR�R\RfR9tget_distributionR[RtVersionConflictRbRRRRR�(Rjt
existing_dist((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pyR s(
cCs|jod|jkS(Ns.whl(RX(Rj((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pyRS=scCsu|jdk r|jS|j}|s)tStjjtjj|d��phtjjtjj|d��|_|jS(Nspip-manifest.txtspyinstall-manifest.txt(R^RVR]RARyRzR�R�(RjR�((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pyR]As !$c
csGx|jD]�}tjj|�}x�tjD]�}d}}tjj||j�}tjj |�r,|j
}t|�}|j�} |j
�|�j| �\}}Pq,q,W|r�d|||f}nd}t||dtd|dtd|dt�Vq
Wx=|jD]2}tjj|�}t||d|dt�Vq
WdS(Ns%s+%s@%sRURXR_RTRd(t_bundle_editable_dirsRyRztbasenameRtbackendsRVR�tbundle_fileR�RrR=R>R�tparse_vcs_bundle_fileRMRfRAt_bundle_build_dirs(
Rjtdest_dirtpackageRRXtrevtvcs_bundle_fileRRHtcontent((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pytbundle_requirementsMs,
c
Cs�|j}|st�tjj|d�}tjj|d�}g}g}x#|||f|||fgD]\}} }
tjj|�rjx�tj|�D]�}tjj| |�}|
j|�tjj|�r�tj d|||f�q�ntjj| �s(tj
d| �tj| �ntj
tjj||�|�q�Wtj|�smtj|�qmqjqjWd|_||_||_dS(NtsrctbuildsZThe directory %s (containing package %s) already exists; cannot move source from bundle %ssCreating directory %s(R]RFRyRzR�R�R�R�RR�R�R�R�R�RVRVRmRh(
Rjtdest_build_dirtdest_src_dirR�tsrc_dirR�tbundle_build_dirstbundle_editable_dirsRTRntdir_collectionRtdest((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pytmove_bundle_filesgs4
# cCsAt|j|j|d|jd|jd|d|jd|�dS(NtuserthomeR�ReRL(R6RrRRRbRcRe(RjtwheeldirR�RL((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pyR6�s cCs%|jst�tjj|jt�S(N(RTRFRyRzR�R(Rj((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pyR^�sN((((0t__name__t
__module__RVRARfRltclassmethodRuR�R�R�R�R�tpropertyRrR�R�R�R�R�R�R�R�R�R�tcompileR�R�R�R�R�RR1R4R6RJR=RMR_RRR�R RSR]RsR}R6R^(((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pyRM?sV-*
? *
n ) ] !
tRequirementscBsGeZd�Zd�Zd�Zd�Zd�Zd�Zd�ZRS(cCsg|_i|_dS(N(t_keyst_dict(Rj((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pyRl�s cCs|jS(N(R�(Rj((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pytkeys�scCs!g|jD]}|j|^q
S(N(R�R�(RjR�((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pytvalues�scCs
||jkS(N(R�(Rjtitem((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pyt__contains__�scCs3||jkr"|jj|�n||j|<dS(N(R�R�R�(RjR�R0((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pyt__setitem__�scCs|j|S(N(R�(RjR�((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pyt__getitem__�scCsJg|j�D]&}dt|�t||�f^q
}ddj|�S(Ns%s: %ssRequirements({%s})s, (R�R�R�(RjtkR�((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pyt__repr__�s9( R�R�RlR�R�R�R�R�R�(((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pyR��s tRequirementSetcBseZdeeedeeededd�Zd�Zd�Zd�Ze d��Z
e d��Ze d��Zd�Z
ed�Zd �Zeed
�Zed�Zd�Zd
�Zded�Zdd�Zd�ZdZd�Zd�ZRS(cCs�||_||_||_|r6tjj|�}n||_||_||_|
|_ t
�|_i|_g|_
| |_g|_g|_g|_||_||_||_|p�t�|_|
|_||_dS(N(R�Rxtdownload_dirRyRzt
expandusertdownload_cachetupgradetignore_installedtforce_reinstallR�R�trequirement_aliasestunnamed_requirementstignore_dependenciestsuccessfully_downloadedtsuccessfully_installedtreqs_to_cleanupRYRbRcR+tsessionRetwheel_download_dir(RjR�RxR�R�R�R�RYRcR�R�RbR�ReR�((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pyRl�s, cCsgg|jj�D]}|js|^q}|jdd��djg|D]}t|j�^qK�S(NR�cSs
|jj�S(N(RrR�(RR((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pyR��st (R�R�RSR�R�R�RR(RjRRtreqs((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pyR��scCs�|j}|j|_|j|_|j|_|j|_|sR|jj|�ni|j|�r�td||j |�|f��n||j
|<|j�|kr�||j|j�<ndS(Ns5Double requirement given: %s (already in %s, name=%r)(
RrRYRbRcReR�R�thas_requirementRtget_requirementR�R�R�(Rjtinstall_reqRr((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pytadd_requirement�s
cCsCx<||j�fD](}||jks7||jkrtSqWtS(N(R�R�R�RfRA(RjR�Rr((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pyR��scCst|jj��p|jS(N(R�R�R�R�(Rj((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pythas_requirements�scCsDtd�|jj�D��r#tStd�|jD��r@tStS(Ncss|]}|jVqdS(N(RU(t.0RR((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pys <genexpr>�scss|]}|jVqdS(N(RU(R�RR((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pys <genexpr>�s(RhR�R�RfR�RA(Rj((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pyt
has_editables�s
cCsg|jrctjj|j�|_tjj|j�r:tStjd�tdt |j���nt
S(Ns!Could not find download directorys0Could not find or access download directory '%s'(R�RyRzR�R�RfRtfatalRRRA(Rj((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pytis_download�s
cCslxU||j�fD]A}||jkr3|j|S||jkr|j|j|SqWtd|��dS(NsNo project with the name %r(R�R�R�tKeyError(RjR�Rr((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pyR�scCs8x1|jj�D] }|jd|�|j�qWdS(NR(R�R�R1R6(RjRRR((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pyR1scCs�t|j�}t|jj��}xc|s3|r�|rK|jd�}n|jd�}t}|jr�|jr�|j�|j r�|j
r�|jo�t|j �s�|j |_
nd|_ q�t}n|j r�tjd|�q�n|jr |jdkrE|j|j�|_qEn%|rE|j|j|j�|_n|jdk r'tjj|j�r'td||jf��q'q'WdS(Nis<Requirement already satisfied (use --upgrade to upgrade): %ss�Could not install requirement %s because source folder %s does not exist (perhaps --no-download was used without first running an equivalent install with --no-install?)(R�R�R�R�tpopRfR�RUR R[R�RbRR\RVRARR�RTR�RxR�R�RyRzR}R(RjtunnamedR�treq_to_installtinstall_needed((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pytlocate_filess4
%cCs�t|j�}t|jj��}xk|s3|r�|rK|jd�}n|jd�}t}t}d} |jr�|j r�|j
�|jr^|jrU|j
r|jry|j||j�}
Wn=tk
r�t}t}qtk
rtj�d} qX|
j|_n|s[|jo4t|j�sF|j|_nd|_q[q^t}n|jr�|r�tjd|�q�tjd|�q�n|j r�tjd|�n^|r|jr�|jj�jd�r�tjdtt|j���qtjd|�ntjd 7_zYt}t}|j r�|jdkrg|j|j �}
|
|_n |j}
t!j"j#|j$�s�t%|j$�n|j&|j'�|j'r�|j(�|j)|j*�q|j(�nD|r|j|j$|j'�}
t}d}
|j+rnEt!j"j#t!j"j,|
d
��rSt-t.j/d||
f���n|jdkr�| rq| �n|j|d|j�}
nt0|j�}
|
s�t1�|
rOyY|
j2j3t4�r�|j5r�|j5}t}n|j*}|j'}|j6|
|
||�WqUt7k
rK}tj8d
||f�t9d|||
f��qUXnt}|r|j:}|
oy|
j2j3t4�}|r�|j;|j$|j �x�|j<�D] }|j=|�|j>|�q�Wn�|j'r|
|_|s�|j(�n|
r�|
j?t@jAkr�|j)|j*�q�ny|r=|
|_|
j|_n[|
|_|j(�|ri|j(dt�n|jB�|r�|jr�|jC|�t}n|js�|j
�n|jr|js�|jr�|jo�t|j�s�|j|_nd|_qtjd|�t}qqn|r�ttDjE|
��d}|jFsd|jG�|_F|j>|�n|jHs�xd|jI|jJ�D]M}|jK|jL�r�q�ntMtN|�|�}|j=|�|j>|�q�Wq�n%|s�|jO|jP�|jJrtjddj,|jJ��n|jHs�x�|j|jJ�D]�}ytDjQjR|�jL}Wn>tSk
r�tj�d}tjTd|||f�q2nX|jK|�r�q2ntM||�}|j=|�|j>|�q2Wn|jK|jU�s�|j>|�q�n|s0|j's|jVdk r0|jWj=|�q0n|rz|jXj=|�|rz|jrz|jjd�rz|jC|�qznWdtjd 8_Xq'WdS(sGPrepare process. Create temp directories, download and/or unpack files.iis"Requirement already up-to-date: %ss<Requirement already satisfied (use --upgrade to upgrade): %ssObtaining %ssfile:sUnpacking %ssDownloading/unpacking %sissetup.pys�
pip can't proceed with requirement '%s' due to a pre-existing build directory.
location: %s
This is likely due to a previous installation that failed.
pip is being responsible and not assuming it can delete this.
Please delete it and try again.
R�s4Could not install requirement %s because of error %ssDCould not install requirement %s because of HTTP error %s for URL %sR�s!Installing extra requirements: %rt,s.Invalid requirement: %r (%s) in requirement %ssfile:///N(YR�R�R�R�R�RfRARVR�RUR R[R�R�RXtfind_requirementR
RR�texc_infoRbRR\RR�R�RnRR.R�RTR�RxRyRzR�R�R�RR�R�RJR�RdR�R
ttextwraptdedentR)RFRGR�R8R�t
unpack_urlR&R�RR]R}RsR�R�R�Rtall_schemesR�tcopy_to_build_dirR9tfind_distributionsRRtas_requirementR�trequiresRNR�R�RMR�tadd_dependency_linksR�RPRQt
ValueErrorR3RrR]R�R�(RjtfinderR�tbundleR�R�R�RMtbest_installedt not_foundRXR]RSR�R�R�tdo_downloadtexctetsubreqRRRRr((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pyt
prepare_files:sV
!#
!
!cCs�tjd�tjd7_x|jD]}|j�q&Wg}|j�r_|j|j�n|rx|j|j�nx>|D]6}t j
j|�rtjd|�t
|�qqWtjd8_dS(sClean up files, remove builds.sCleaning up...isRemoving temporary dir %s...N(RR�R�R�R_t_pip_has_created_build_dirR�R�RxRyRzR�R�R(RjR�RRt
remove_dirR�((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pyt
cleanup_files's
cCs1|jtko0tjjtjj|jt��S(N(R�R*RyRzR�R�R(Rj((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pyR�>scCs�|jr|jp|j}tjd|j|f�tjj||j�}t j
|j|�tdd|dgd|dd�dS(NsCopying %s to %sR�s%s/setup.pytcleanR�R�spython setup.py clean(
RURxR�RR�RrRyRzR�R�tcopytreeRTR(RjR�RcR|((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pyR�BscCs�|dkr|j}nt|�rL|r3|}n|}t|||�nat|�r~t|||�|r�t|�q�n/t|||j||j �|r�t|�ndS(N(
RVR�R2R1R3R4RR5R�R�(RjR�R�R�t
only_downloadtloc((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pyR�Js&
cOs2g|jj�D]}|js|^q}tjjd�}xI|D]A}|jdkrD|j|krD|j|�|j |�qDqDW|r�t
jddjg|D]}|j^q���nt
j
d7_
zAx:|D]2} | jdkrGy=tjjd�}
tjd�}||
kr,|| _nWqGtjk
rCqGXn| jr�t
jd| j�t
j
d7_
z| jd t�Wd
t
j
d8_
Xny| j||||�Wn*| jr�| jr�| j�n�n X| jr| jr| j�n| j�q�WWd
t
j
d8_
X||_d
S(sRInstall everything in this set (after having downloaded and unpacked the packages)sdistribute>=0.7R�s!Installing collected packages: %ss, iR�sdistribute<0.7sFound existing installation: %sRN(R�R�R[R9RPRQRrR�R�R�RR�R�R�ReR\RR1RfRMR`R4R6R_R�(RjRWRXtargstkwargsRt
to_installtdistribute_reqRRtrequirementtdistribute_requirementtexisting_distribute((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pyRMisL
3
cCs�tj|dtj�}g}xJ|jdf|jdffD]*\}}tjjtjj|��}x�tj |�D]�\}}}x�t
jD]�} | �}
d}}|
j
|kr�xR|D]}
|j|
�r�Pq�q�W|
jtjj||��\}}|j|�|
j}|
ji|d6|d6}|j|
j
�Pq�q�Wd|kre|jd�nxQ|D]I}tjj||�}|j||�}|j|d|dd�qlWx_|D]W}|tkr�q�ntjj||�}|j||�}|j||d|�q�W|rwtjj||�}|j||�}|j|d||�qwqwWq=W|jd |j��|j�dS(
NR8RuRtRXRpspip-egg-infoR9R�spip-manifest.txt(R:R;R<R�RxRyRzRR|R�RRjRVRRntget_infoR�R�RktguideR�R=R@RRARsR�(Rjtbundle_filenameRGtvcs_dirsR�RiRHR�R�RRtvcs_urltvcs_revtvcs_dirRqt vcs_guideRRrRG((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pyt
create_bundle�sL+
#s�# This is a pip bundle file, that contains many source packages
# that can be installed as a group. You can install this like:
# pip this_file.zip
# The rest of the file contains a list of all the packages included:
cCs�|jg}xPg|jj�D]}|js|^qD]#}|jd|j|jf�q8W|jd�xPg|jj�D]}|jr|^qD]#}|jd|j|jf�q�Wdj|�S(Ns%s==%s
sC# These packages were installed to satisfy the above requirements:
R�(t
BUNDLE_HEADERR�R�RSR�RrR�R�(RjtpartsRR((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pyRs�s!
!cCs_|j|tjj�s/td||f��|t|�d}|jtjjd�}|S(Ns$name %r doesn't start with prefix %riR9(RnRyRzR~RFR�R�(RjRrRK((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pyR=�s
N((R�R�RVRARfRlR�R�R�R�R�R�R�R�R1R�R�R�R�R�R�RMR�R�RsR=(((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pyR��s2
'� E 7 cCstj|�t|�dS(N(RyR�R(R�((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pyR��s
s^(http|https|file):ccs�|dkrt�}nd}|r-|jnd}|rKtj|�}ntjjtjj|��}t |d|d|�\}}x2t
|j��D]\} }
| d7} |
j�}
tj
dd|
�}
|
s�|
jd�r�q�n|r|j|
�rq�n|
jd�s&|
jd�r�|
jd�rH|
d j�}n|
td�j�jd
�}tj|�r�tj||�}n3tj|�s�tjjtjj|�|�}nx�t||d|d|d|�D]}|Vq�Wq�|
jd�s�|
jd
�rq�|
jd�s1|
jd�r�|
jd�rS|
d j�}
n|
td�j�jd
�}
tjj||
�}
tjj|
�r�|
}
n|r�|jj|
�q�q�|
jd�s�|
jd�r5|
jd�r�|
d j�}
n|
td�j�jd
�}
|r�|
g|_q�q�|
jd�r|
td�j�jd
�}
|r�|jj|
�q�q�|
jd�r�t|_q�|
jd�r�g|_q�|
jd�r
|
td�j�jd
�}
|jtt|
�j �g�O_q�|
jd�r%t|_!q�|
jd�r7q�|
jd�rIq�|
jd�r�|
td�j�jd
�}
|j"tt|
�j �g�O_"q�|
jd�r�|
td�j�jd
�}
|j"tt|
�j �g�O_"q�d|| f}|
jd�s!|
jd�r�|
jd�rC|
d j�}
n|
td�j�jd
�}
t#j$|
d|d|r�|j%nd�}n$t#j&|
|dt'|d d��}|Vq�WdS(!NRSR�is
(^|\s)#.*$R�R�s-rs
--requirementit=toptionss-Zs--always-unzips-fs--find-linkss-is--index-urls--extra-index-urls--use-wheels
--no-indexs--allow-externals--allow-all-externals--no-allow-externals--no-allow-insecures--allow-insecures--allow-unverifieds-r %s (line %s)s-es
--editableRqRgtpre((RVR+tskip_requirements_regexR�R�RyRzRR|R,t enumerateR�RxtsubRnR�R�t
_scheme_reR!turljoinR�tparse_requirementstlstripR�t
find_linksR�t
index_urlsRft use_wheeltallow_externaltsetR R�tallow_all_externaltallow_unverifiedRMRuRqR�tgetattr(RGR�RSR�R�t
skip_matcht
skip_regext
reqs_file_dirRrtline_numberR�treq_urlR�trelative_to_reqs_fileRR((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pyR�s�
$( ''''$cCs.tjd|�}|r*|jd�}n|S(s2
Strip req postfix ( -dev, 0.2, etc )
s^(.*?)(?:-dev|-\d.*)$i(R�R�R�(RRR�((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pyt_strip_postfixgscCs|g|jdd�djd�D]}|r |^q }d}|dd
kr[|d
}n|ddkrx|d}n|S(NR�iiR9i����ttagstbranchesttagtbranchi����i����ttrunk(R�R�R�sbranch(R�RV(RXR�R�RR((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pyt_build_req_from_urlrs8
cCs{tjd�}|j|�}|rwt�}xC|D];}|\}}||kretd|��n|||<q4W|SdS(sz
This method generates a dictionary of the query string
parameters contained in a given editable URL.
s([\?#&](?P<name>[^&=]+)=(?P<value>[^&=]+)s%s option already definedN(R�R�tfindalltdictt ExceptionRV(RRtregexptmatchedtrettoptionRrR0((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pyt_build_editable_options}s
cCsy|}d}tjd|�}|rE|jd�}|jd�}n|}tjj|�r�tjjtjj|d��s�t d|��nt
|�}n|j�jd�r�|r�d|t
jjd|�jfSd|dfSnx;tD]3}|j�jd|�r�d ||f}Pq�q�Wd
|kr_|rL|d
|}q_t d|��n|jd
d�dj�}tj|�s�d
|djgtjD]}|jd^q��d} t | ��nyt|�}
Wn7tk
rtj�d}t d||f��nX|
s.d|
krVt|�}|s`t d|��q`n
|
d}t|�}
|
||
fS(sSParses svn+http://blahblah@rev#egg=Foobar into a requirement
(Foobar) and a URLs^(.+)(\[[^\]]+\])$iissetup.pys;Directory %r is not installable. File 'setup.py' not found.sfile:t__placeholder__s%s:s%s+%sR�sb%s should either be a path to a local project or a VCS url beginning with svn+, git+, hg+, or bzr+isFor --editable=%s only s, s+URLs is currently supporteds*--editable=%s error in editable options:%steggs@--editable=%s is not the right format; it must have #egg=PackageN(RVR�R�R�RyRzR}R�R�RR/R�RnR9RPRQRNRR�R�RjRrRRR�R�R�R�(RpRqRXRNtmt
url_no_extrastversion_controlRRt
error_messageR�tmessageRRRo((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pyRm�sT!
1
R
cBskeZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z e
d�Zd �Zd
�Z
RS(sMA set of file paths to be removed in the uninstallation of a
requirement.cCs@t�|_t�|_i|_||_d|_g|_dS(N(R�tpathst_refusetpthRRVtsave_dirt_moved_paths(RjR((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pyRl�s cCs
t|�S(ss
Return True if the given path is one we are permitted to
remove/modify, False otherwise.
(R(RjRz((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pyt
_permitted�scCsFt|j�sBtjd|jjt|jj�tjf�t St
S(Ns1Not uninstalling %s at %s, outside environment %s(RRRR�R�RR�R�RKRARf(Rj((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pyt_can_uninstall�s
&cCs�t|�}tjj|�s"dS|j|�rD|jj|�n|jj|�tjj|�ddkr�t r�|jt
j|��ndS(Nis.py(RRyRzR�RRR
RtsplitextR#timptcache_from_source(RjRz((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pyR
�s"cCskt|�}|j|�rW||jkr@t|�|j|<n|j|j|�n|jj|�dS(N(RRRtUninstallPthEntriesR
R(Rjtpth_filetentry((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pyR�sc Cs�t�}x}t|dt�D]i}tg|D]@}|j|�oi|t|jtjj��tjjk^q,�s|j |�qqW|S(s�Compact a path set to contain the minimal number of paths
necessary to contain all paths in the set. If /a/path/ and
/a/path/to/a/file.txt are both in the set, leave only the
shorter path.R�(
R�tsortedR�RhRntrstripRyRzR~R
(RjRtshort_pathsRzt shortpath((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pytcompacts McCs5tjj|jtjj|�djtjj��S(Ni(RyRzR�Rt
splitdriveR�R~(RjRz((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pyt_stashs cCs�|j�sdS|js4tjd|jj�dStjd|jj�tjd7_t|j|j��}z6|r�d}n-x|D]}tj|�q�Wt dd�}|j
r�tjd�x*|j|j
�D]}tj|�q�Wn|dkr�tjd d
dd�|_
xK|D]C}|j|�}tjd
|�|jj|�t||�q"Wx!|jj�D]}|j�qyWtjd|jj�nWdtjd8_XdS(s[Remove paths in ``self.paths`` with confirmation (unless
``auto_confirm`` is True).Ns7Can't uninstall '%s'. No files were found to uninstall.sUninstalling %s:itysProceed (y/n)? tns.Not removing or modifying (outside of prefix):tsuffixs
-uninstallRKspip-sRemoving file or directory %ssSuccessfully uninstalled %s(R"R#(RRRR�RR�R�RRRRR�R�RR!R�RR�RRR�R�(RjRRRERztnew_pathR((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pyR�s<
cCs�|jdkr*tjd|jj�tStjd|jj�x>|jD]3}|j |�}tj
d|�t||�qKWx|jD]}|j
�q�WdS(s1Rollback the changes previously made by remove().s'Can't roll back %s; was not uninstalledsRolling back uninstall of %ssReplacing %sN(RRVRR3RR�RAR�RR!R�RRR2(RjRzttmp_pathR((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pyR29scCs5|jdk r1t|j�d|_g|_ndS(s?Remove temporary save dir: rollback will no longer be possible.N(RRVRR(Rj((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pyR5Fs
(R�R�t__doc__RlRRR
RRR!RAR�R2R5(((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pyR
�s
%
RcBs,eZd�Zd�Zd�Zd�ZRS(cCsGtjj|�s%td|��n||_t�|_d|_dS(Ns.Cannot remove entries from nonexistent file %s( RyRzRRRwR�tentriesRVt_saved_lines(RjR((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pyRlOs
cCsatjj|�}tjdkrMtjj|�drM|jdd�}n|jj|�dS(NRis\R9( RyRzRR�RR R�R(R
(RjR((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pyR
Vs&cCs�tjd|j�t|jd�}|j�}||_|j�td�|D��rdd}nd}xQ|jD]F}y,tjd|�|j t
||��Wqttk
r�qtXqtWt|jd�}|j|�|j�dS(NsRemoving pth entries from %s:R;css!|]}td�|kVqdS(s
N(R((R�R�((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pys <genexpr>gss
s
sRemoving entry: %stwb(
RR�RwR=t readlinesR)R�RhR(R�R(R�t
writelines(RjR,tlinestendlineR((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pyR�`s"
cCsk|jdkr'tjd|j�tStjd|j�t|jd�}|j|j�|j �t
S(Ns.Cannot roll back changes to %s, none were mades!Rolling %s back to previous stateR*(R)RVRR3RwRAR�R=R,R�Rf(RjR,((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pyR2us
(R�R�RlR
R�R2(((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pyRNs
RcBs)eZdZd�Zd�Zd�ZRS(sQWrap a list of lines in an object with readline() to make
ConfigParser happy.cCsd�|D�|_dS(Ncss|]}|VqdS(N((R�tl((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pys <genexpr>�s(t_gen(RjR-((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pyRl�scCsLy3yt|j�SWntk
r1|jj�SXWntk
rGdSXdS(NR�(tnextR0t NameErrort
StopIteration(Rj((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pyR�s
cCs|jS(N(R0(Rj((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pyt__iter__�s(R�R�R'RlRR4(((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pyR�s (ctemail.parserRRyRR?R�R�R�R�R�R:tdistutils.utilRt
pip.locationsRRRRRtpip.exceptionsRRR R
RRR
tpip.vcsRtpip.logRtpip.utilRRRRRRRRRRRRRRRRR tpip.backwardcompatR!R"R#R$R%R&R'R(t pip.indexR)R*tpip.downloadR+R,R-R.R/R0R1R2R3R4R5t pip.wheelRR6R7R8tpip._vendorR9R:RLtobjectRMR�R�R�R�tIR�RVR�R�R�RRmR
RR(((s8/opt/alt/python35/lib/python3.5/site-packages/pip/req.pyt<module>sT(4p:L ���W��N c A|2