abc@@sddlmZddlmZddlZddlZddlZddlZddlZ ddl Z ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlZddlmZddlmZmZmZddlmZmZmZmZmZddlm Z ddl!m"Z"dd l#m$Z$dd l%m&Z&e$rudd lm'Z(ndd lm(Z(d ddddddddddddddddddd d!d"d#d$gZ)e j*e+Z,dfZ-dgZ.dhZ/diZ0e/e-e0e.Z1e/e0Z2yddl3Z3e2e-7Z2Wne4k rPe,j5d1nXyddl6Z6e2e.7Z2Wne4k re,j5d2nXd3Z7d4Z8d5Z9e&d6d7d8d9e:d:Z;d;Z<d<Z=d=d>Z>d?Z?d@Z@dAZAdBZBdCZCdDZDejEdEZFdFZGdGZHeIdHZJdIZKdJZLdKZMdLZNdMZOdNZPdOZQeIeeIe:e:dPZRdQZSdRZTdSZUdTZVeIdUZWdVZXdWZYeIddXddddYZ[dZZ\d[Z]d\e^fd]YZ_d^e(fd_YZ`ejad`ZbdaZcdbe^fdcYZddddZedeZfdS(ji(tabsolute_import(tdequeN(tInstallationError(tconsole_to_strt expandusert stdlib_pkgs(t site_packagest user_sitetrunning_under_virtualenvtvirtualenv_no_globaltwrite_delete_marker_file(t pkg_resources(tinput(tPY2(tretry(tBytesIO(tStringIOtrmtreet display_patht backup_dirtasktsplitextt format_sizetis_installable_dirt is_svn_paget file_contentstsplit_leading_dirthas_leading_dirtnormalize_pathtrenamestget_terminal_sizetget_progt unzip_filet untar_filet unpack_filetcall_subprocesstcaptured_stdoutt ensure_dirtARCHIVE_EXTENSIONStSUPPORTED_EXTENSIONStget_installed_versions.tar.bz2s.tbzs.tar.xzs.txzs.tlzs.tar.lzs .tar.lzmas.zips.whls.tar.gzs.tgzs.tarsbz2 module is not availableslzma module is not availablecO@s5yt|SWn tk r0|||nXdS(N(t __import__t ImportError(tpkg_or_module_stringt ExceptionTypetargstkwargs((s6/usr/lib/python2.7/site-packages/pip/utils/__init__.pytimport_or_raiseIs cC@sCytj|Wn+tk r>}|jtjkr?q?nXdS(s os.path.makedirs without EEXIST.N(tostmakedirstOSErrorterrnotEEXIST(tpathte((s6/usr/lib/python2.7/site-packages/pip/utils/__init__.pyR%Ps cC@sOy.tjjtjddkr-dtjSWntttfk rJnXdS(Nis __main__.pys-cs %s -m piptpip(s __main__.pys-c( R0R5tbasenametsystargvt executabletAttributeErrort TypeErrort IndexError(((s6/usr/lib/python2.7/site-packages/pip/utils/__init__.pyRYs tstop_max_delayi t wait_fixedicC@stj|d|dtdS(Nt ignore_errorstonerror(tshutilRtrmtree_errorhandler(tdirRA((s6/usr/lib/python2.7/site-packages/pip/utils/__init__.pyRcscC@sAtj|jtj@r:tj|tj||dSdS(sOn Windows, the files in .svn are read-only, so when rmtree() tries to remove them, an exception is thrown. We catch that here, remove the read-only attribute, and hopefully continue without problems.N(R0tstattst_modetS_IREADtchmodtS_IWRITE(tfuncR5texc_info((s6/usr/lib/python2.7/site-packages/pip/utils/__init__.pyRDis  cC@stjjtjj|}tjddkrd|jtjd}|jtj d}n|j tj tjj rd|t tj }n|S(sTGives the display value for a given path, making it relative to cwd if possible.iitreplacet.(R0R5tnormcasetabspathR9t version_infotdecodetgetfilesystemencodingtencodetgetdefaultencodingt startswithtgetcwdtseptlen(R5((s6/usr/lib/python2.7/site-packages/pip/utils/__init__.pyRxss.bakcC@sKd}|}x4tjj||rB|d7}|t|}qW||S(s\Figure out the name of a directory to back up the given dir to (adding .bak, .bak2, etc)i(R0R5texistststr(REtexttnt extension((s6/usr/lib/python2.7/site-packages/pip/utils/__init__.pyRs  cC@sCx3tjjddjD]}||kr|SqWt||S(NtPIP_EXISTS_ACTIONt(R0tenvirontgettsplitR(tmessagetoptionstaction((s6/usr/lib/python2.7/site-packages/pip/utils/__init__.pytask_path_existss" cC@syxrtjjdr(td|nt|}|jj}||krmd|dj|fGHq|SqWdS(s@Ask the message interactively, with the given possible responsest PIP_NO_INPUTs7No input was expected ($PIP_NO_INPUT set); question: %ss<Your response (%r) was not one of the expected responses: %ss, N(R0RaRbt ExceptionR tstriptlowertjoin(RdRetresponse((s6/usr/lib/python2.7/site-packages/pip/utils/__init__.pyRs   cC@sX|dkrd|ddS|d kr4d|dS|dkrLd|dSd|SdS( Nis%.1fMBg@@i s%ikBs%.1fkBs%ibytesi@Bi'((tbytes((s6/usr/lib/python2.7/site-packages/pip/utils/__init__.pyRs     cC@sEtjj|stStjj|d}tjj|rAtStS(s@Return True if `path` is a directory containing a setup.py file.ssetup.py(R0R5tisdirtFalseRltisfiletTrue(R5tsetup_py((s6/usr/lib/python2.7/site-packages/pip/utils/__init__.pyRs cC@s(tjd|o'tjd|tjS(sT Returns true if the page appears to be the index page of an svn repository s[^<]*Revision \d+:s#���Powered by (?:<a[^>]*?>)?Subversion(���t���ret���searcht���I(���t���html(����(����s6���/usr/lib/python2.7/site-packages/pip/utils/__init__.pyR������s����c���������C@��s/���t��|��d���}�|�j���j�d��SWd��QXd��S(���Nt���rbs���utf-8(���t���opent���readRR���(���t���filenamet���fp(����(����s6���/usr/lib/python2.7/site-packages/pip/utils/__init__.pyR������s����c���������c@��s/���x(�t��r*�|��j�|��}�|�s"�Pn��|�Vq�Wd�S(���s7���Yield pieces of data from a file-like object until EOF.N(���Rr���Rz���(���t���filet���sizet���chunk(����(����s6���/usr/lib/python2.7/site-packages/pip/utils/__init__.pyt ���read_chunks���s ���� c���������C@��s���|��j��d��j��d��}��d�|��k�rj�d�|��k�rN�|��j�d��|��j�d��k��sZ�d�|��k�rj�|��j�d�d��Sd�|��k�r�|��j�d�d��S|��d�f�Sd��S(���Nt���/s���\i���R`���(���t���lstript���findRc���(���R5���(����(����s6���/usr/lib/python2.7/site-packages/pip/utils/__init__.pyR������s����6  c���������C@��s\���d�}�xO�|��D]G�}�t�|��\�}�}�|�s/�t�S|�d�k�rD�|�}�q �|�|�k�r �t�Sq �Wt�S(���sy���Returns true if all the paths have the same leading path name (i.e., everything is in one subdirectory in an archive)N(���t���NoneR���Rp���Rr���(���t���pathst ���common_prefixR5���t���prefixt���rest(����(����s6���/usr/lib/python2.7/site-packages/pip/utils/__init__.pyR������s����    c���������C@��sI���t��|���}��|�r'�t�j�j�|���}��n�t�j�j�|���}��t�j�j�|���S(���sN��� Convert a path to its canonical, case-normalized, absolute version. (���R���R0���R5���t���realpathRP���RO���(���R5���t���resolve_symlinks(����(����s6���/usr/lib/python2.7/site-packages/pip/utils/__init__.pyR������s ���� c���������C@��sO���t��j�|���\�}�}�|�j���j�d��rE�|�d�|�}�|�d� }�n��|�|�f�S(���s,���Like os.path.splitext, but take off .tar toos���.tari(���t ���posixpathR���Rk���t���endswith(���R5���t���baseR\���(����(����s6���/usr/lib/python2.7/site-packages/pip/utils/__init__.pyR������s ���� c���������C@��s���t��j�j�|��\�}�}�|�rG�|�rG�t��j�j�|�� rG�t��j�|��n��t�j�|��|��t��j�j�|���\�}�}�|�r�|�r�y�t��j�|��Wq�t�k �r�q�Xn��d�S(���s7���Like os.renames(), but handles renaming across devices.N( ���R0���R5���Rc���RZ���R1���RC���t���movet ���removedirsR2���(���t���oldt���newt���headt���tail(����(����s6���/usr/lib/python2.7/site-packages/pip/utils/__init__.pyR�����s����  c���������C@��s)���t����s �t�St�|���j�t�t�j���S(���s��� Return True if path is within sys.prefix, if we're running in a virtualenv. If we're not in a virtualenv, all paths are considered "local." (���R���Rr���R���RV���R9���R���(���R5���(����(����s6���/usr/lib/python2.7/site-packages/pip/utils/__init__.pyt���is_local��s���� c���������C@��s���t��t�|����S(���s��� Return True if given Distribution object is installed locally (i.e. within current virtualenv). Always True if we're not in a virtualenv. (���R���t ���dist_location(���t���dist(����(����s6���/usr/lib/python2.7/site-packages/pip/utils/__init__.pyt ���dist_is_local!��s����c���������C@��s%���t��t�|����}�|�j�t��t���S(���sF��� Return True if given Distribution is installed in user site. (���R���R���RV���R���(���R���t ���norm_path(����(����s6���/usr/lib/python2.7/site-packages/pip/utils/__init__.pyt���dist_in_usersite,��s����c���������C@��s���t��t�|����j�t��t���S(���se��� Return True if given Distribution is installed in distutils.sysconfig.get_python_lib(). (���R���R���RV���R���(���R���(����(����s6���/usr/lib/python2.7/site-packages/pip/utils/__init__.pyt���dist_in_site_packages4��s����c���������C@��sJ���xC�t��j�D]8�}�t�j�j�|�|��j�d��}�t�j�j�|��r �t�Sq �Wt�S(���s$���Is distribution an editable install?s ���.egg-link(���R9���R5���R0���Rl���t ���project_nameRq���Rr���Rp���(���R���t ���path_itemt���egg_link(����(����s6���/usr/lib/python2.7/site-packages/pip/utils/__init__.pyt���dist_is_editable>��s ����c��� ������C@��s���|��r�t��}�n �d���}�|�r*�d���}�n �d���}�|�rE�d���}�n �d���}�|�r]�t�}�n �d���}�g��t�j�D]K�} �|�| ��rp�| �j�|�k�rp�|�| ��rp�|�| ��rp�|�| ��rp�| �^�qp�S(���s�� Return a list of installed Distribution objects. If ``local_only`` is True (default), only return installations local to the current virtualenv, if in a virtualenv. ``skip`` argument is an iterable of lower-case project names to ignore; defaults to stdlib_pkgs If ``editables`` is False, don't report editables. If ``editables_only`` is True , only report editables. If ``user_only`` is True , only report installations in the user site directory. c���������S@��s���t��S(���N(���Rr���(���t���d(����(����s6���/usr/lib/python2.7/site-packages/pip/utils/__init__.pyt ���local_test`��s����c���������S@��s���t��S(���N(���Rr���(���R���(����(����s6���/usr/lib/python2.7/site-packages/pip/utils/__init__.pyt ���editable_testd��s����c���������S@��s ���t��|��� S(���N(���R���(���R���(����(����s6���/usr/lib/python2.7/site-packages/pip/utils/__init__.pyR���g��s����c���������S@��s ���t��|���S(���N(���R���(���R���(����(����s6���/usr/lib/python2.7/site-packages/pip/utils/__init__.pyt���editables_only_testk��s����c���������S@��s���t��S(���N(���Rr���(���R���(����(����s6���/usr/lib/python2.7/site-packages/pip/utils/__init__.pyR���n��s����c���������S@��s���t��S(���N(���Rr���(���R���(����(����s6���/usr/lib/python2.7/site-packages/pip/utils/__init__.pyt ���user_testt��s����(���R���R���R ���t ���working_sett���key( ���t ���local_onlyt���skipt���include_editablest���editables_onlyt ���user_onlyR���R���R���R���R���(����(����s6���/usr/lib/python2.7/site-packages/pip/utils/__init__.pyt���get_installed_distributionsG��s$����           c���������C@��s���g��}�t����rN�t���r(�|�j�t��qq�|�j�t��t�rq�|�j�t��qq�n#�t�rd�|�j�t��n��|�j�t��x@�|�D]8�}�t�j�j�|�|��j��d�}�t�j�j �|��rx�|�Sqx�Wd�S(���s�� Return the path for the .egg-link file if it exists, otherwise, None. There's 3 scenarios: 1) not in a virtualenv try to find in site.USER_SITE, then site_packages 2) in a no-global virtualenv try to find in site_packages 3) in a yes-global virtualenv try to find in site_packages, then site.USER_SITE (don't look in global location) For #1 and #3, there could be odd cases, where there's an egg-link in 2 locations. This method will just return the first one found. s ���.egg-linkN( ���R���R ���t���appendR���R���R0���R5���Rl���R���Rq���(���R���t���sitest���sitet���egglink(����(����s6���/usr/lib/python2.7/site-packages/pip/utils/__init__.pyt ���egg_link_path��s����     c���������C@��s���t��|���}�|�r�|�S|��j�S(���s��� Get the site-packages location of this distribution. Generally this is dist.location, except in the case of develop-installed packages, where dist.location is the source code location, and we want to know where the egg-link file is. (���R���t���location(���R���R���(����(����s6���/usr/lib/python2.7/site-packages/pip/utils/__init__.pyR�����s���� c����������C@��s���d���}��|��d��p*�|��d��p*�|��d��}�|�sx�y8�t��j�t��j���t��j��}�|��|��}�t��j�|��Wqx�qx�Xn��|�s�t��j�j�d�d��t��j�j�d�d��f�}�n��t�|�d��t�|�d��f�S( ���sl���Returns a tuple (x, y) representing the width(x) and the height(x) in characters of the terminal window.c���������S@��sk���yL�d�d��l��}�d�d��l�}�d�d��l�}�|�j�d�|�j�|��|�j�d���}�Wn�d��SX|�d�k�rg�d��S|�S(���Ni����t���hht���1234(���i����i����(���t���fcntlt���termiost���structt���unpackt���ioctlt ���TIOCGWINSZR���(���t���fdR���R���R���t���cr(����(����s6���/usr/lib/python2.7/site-packages/pip/utils/__init__.pyt ���ioctl_GWINSZ��s����    i����i���i���t���LINESi���t���COLUMNSiP���(���R0���Ry���t���ctermidt���O_RDONLYt���closeRa���Rb���t���int(���R���R���R���(����(����s6���/usr/lib/python2.7/site-packages/pip/utils/__init__.pyR�����s���� $ -c����������C@��s ���t��j�d��}��t��j�|���|��S(���sB���Get the current umask which involves having to set it temporarily.i����(���R0���t���umask(���t���mask(����(����s6���/usr/lib/python2.7/site-packages/pip/utils/__init__.pyt ���current_umask��s���� c��� ������C@��s~��t��|��t�|��d��}�zSt�j�|�d�t�}�t�|�j����oF�|�}�x|�j���D]}�|�j�}�|�j �|��}�|�} �|�r�t �|��d�} �n��t �j �j �|�| ��} �t �j �j�| ��} �| �j�d��s�| �j�d��r�t��| ��qV�t��| ��t�| �d��} �z�| �j�|��Wd�| �j���|�j�d�?} �| �rft�j�| ��rf| �d �@rft �j�| �d �t���d �B�n��XqV�WWd�|�j���Xd�S( ���s�� Unzip the file (with path `filename`) to the destination `location`. All files are written based on system defaults and umask (i.e. permissions are not preserved), except that regular file members with any execute permissions (user, group, or world) have "chmod +x" applied after being written. Note that for windows, any execute changes using os.chmod are no-ops per the python docs. Rx���t ���allowZip64i���R���s���\t���wbNi���iI���i��(���R%���Ry���t���zipfilet���ZipFileRr���R���t���namelistt���infolistR{���Rz���R���R0���R5���Rl���t���dirnameR���t���writeR���t ���external_attrRF���t���S_ISREGRI���R���( ���R{���R���t���flattent���zipfpt���zipt���leadingt���infot���namet���datat���fnRE���R|���t���mode(����(����s6���/usr/lib/python2.7/site-packages/pip/utils/__init__.pyR �����s0����      'c��� ������C@��s��t��|��|��j���j�d��s4�|��j���j�d��r=�d�}�np�|��j���j�t��r[�d�}�nR�|��j���j�t��ry�d�}�n4�|��j���j�d��r�d�}�n�t�j�d�|���d �}�t�j�|��|��}�zt �g��|�j ���D]�}�|�j �d �k�r�|�j �^�q��}�x|�j ���D]}�|�j �}�|�d �k�r'qn��|�r@t �|��d �}�n��t �j�j�|�|��}�|�j���rnt��|��q|�j���ry�|�j�|�|��Wqt�k �r}�t�j�d �|��|�j �|��qqXqy�|�j�|��} �Wn5�t�t�f�k �r }�t�j�d �|��|�j �|��qn�Xt��t �j�j�|���t�|�d ���} �t�j�| �| ��Wd�QX| �j���|�j�|�|��|�j�d�@rt �j�|�d�t���d�B�qqWWd�|�j���Xd�S(���s�� Untar the file (with path `filename`) to the destination `location`. All files are written based on system defaults and umask (i.e. permissions are not preserved), except that regular file members with any execute permissions (user, group, or world) have "chmod +x" applied after being written. Note that for windows, any execute changes using os.chmod are no-ops per the python docs. s���.gzs���.tgzs���r:gzs���r:bz2s���r:xzs���.tart���rs-���Cannot determine compression type for file %ss���r:*t���pax_global_headeri���s/���In the tar file %s the member %s is invalid: %sR���NiI���i��(���R%���Rk���R���t���BZ2_EXTENSIONSt ���XZ_EXTENSIONSt���loggert���warningt���tarfileRy���R���t ���getmembersR���R���R0���R5���Rl���Ro���t���issymt���_extract_memberRi���t ���extractfilet���KeyErrorR<���R���RC���t ���copyfileobjR���t���utimeR���RI���R���( ���R{���R���R���t���tart���memberR���R���R5���t���excR|���t���destfp(����(����s6���/usr/lib/python2.7/site-packages/pip/utils/__init__.pyR!�����sb���� *     !        &c���������C@��s(��t��j�j�|���}��|�d�k�sB�|��j���j�t��sB�t�j�|���rb�t�|��|�d�|��j�d�� n�|�d�k�s�t �j �|���s�|��j���j�t �t �t ��r�t�|��|��nz�|�r�|�j�d��r�t�t�|����r�d�d�l�m�}�|�d�|�j��j�|��n&�t�j�d �|��|�|��t�d �|���d��S( ���Ns���application/zipR���s���.whls���application/x-gzips ���text/htmli����(���t ���Subversions���svn+sZ���Cannot unpack file %s (downloaded from %s, content-type: %s); cannot detect archive formats%���Cannot determine archive format of %s(���R0���R5���R���Rk���R���t���ZIP_EXTENSIONSR���t ���is_zipfileR ���R���t ���is_tarfilet���TAR_EXTENSIONSR���R���R!���RV���R���R���t���pip.vcs.subversionR���t���urlR���R���t���criticalR���(���R{���R���t ���content_typet���linkR���(����(����s6���/usr/lib/python2.7/site-packages/pip/utils/__init__.pyR"���O��s,����    t���raisec������ ���C@��s��|�r�d��}�n �t�j�}�|�d��k�r�g��}�xd�|��D]\�} �d�| �k�sg�d�| �k�sg�d�| �k�sg�d�| �k�r�d�| �j�d�d��} �n��|�j�| ��q1�Wd�j�|��}�n��t�j�d�|��t�j �j ���} �|�r�| �j �|��n��y4�t�j �|��d�t�j �d �d��d �|�d �|�d �| �} �Wn)�t�k �r7} �t�j�d �| �|����n�X|�d��k �rg��} �x�t�rt�| �j�j����}�|�srPn��|�j���}�| �j�|�d��t�j���t�j�k�rt�j�|��qM|�d��k �rM|�j���qMqMWn��| �j���|�d��k �r| �j�r|�j�d��q|�j�d��n��| �j�r|�d�k�rt�j���t�j�k�rq|� rqt�j�d�|��t�j�d�j�| ��d��n��t�d�|�| �j�|�f���q|�d�k�rt�j�d�|�| �j�|��q|�d�k�rqt�d�t �|����n��|�sd�j�| ��Sd��S(���Nt��� s��� t���"t���'s���"%s"s���\"s���Running command %st���stderrt���stdint���stdoutt���cwdt���envs#���Error %s while executing command %st���errort���doneR���s ���Complete output from command %s:R`���s)��� ----------------------------------------s,���Command "%s" failed with error code %s in %st���warns$���Command "%s" had error code %s in %st���ignores���Invalid value: on_returncode=%s(!���R���t ���subprocesst���PIPERM���R���Rl���R���t���debugR0���Ra���t���copyt���updatet���Popent���STDOUTRi���R���Rr���R���R���t���readlinet���rstript���getEffectiveLevelt ���std_loggingt���DEBUGt���spint���waitt ���returncodet���finishR���R���R���t ���ValueErrort���repr(���t���cmdt ���show_stdoutR���t ���on_returncodet ���command_desct ���extra_environt���spinnerR���t ���cmd_partst���partR���t���procR���t ���all_outputt���line(����(����s6���/usr/lib/python2.7/site-packages/pip/utils/__init__.pyR#���p��sz����    0               c���������C@��s|���t��|��d���}�|�j���}�Wd�QXd�t�j�t��d�g�}�x9�|�D]1�}�y�|�j�|��}�Wn�t�k �rr�qC�n�XPqC�W|�S(���sR��Return the contents of *filename*. Try to decode the file contents with utf-8, the preferred 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. Rx���Ns���utf-8t���latin1(���Ry���Rz���t���localet���getpreferredencodingRp���RR���t���UnicodeDecodeError(���R{���R|���R���t ���encodingst���enc(����(����s6���/usr/lib/python2.7/site-packages/pip/utils/__init__.pyt���read_text_file��s����   c���������C@��s���t��j�|���t�|���d��S(���N(���R0���R1���R ���(���t ���build_dir(����(����s6���/usr/lib/python2.7/site-packages/pip/utils/__init__.pyt���_make_build_dir��s���� t���FakeFilec�����������B@��s)���e��Z�d��Z�d���Z�d���Z�d���Z�RS(���sQ���Wrap a list of lines in an object with readline() to make ConfigParser happy.c���������C@��s���d���|�D�|��_��d��S(���Nc���������s@��s���|��] �}�|�Vq�d��S(���N(����(���t���.0t���l(����(����s6���/usr/lib/python2.7/site-packages/pip/utils/__init__.pys ���<genexpr>��s����(���t���_gen(���t���selft���lines(����(����s6���/usr/lib/python2.7/site-packages/pip/utils/__init__.pyt���__init__��s����c���������C@��sL���y3�y�t��|��j��SWn�t�k �r1�|��j�j����SXWn�t�k �rG�d�SXd��S(���NR`���(���t���nextR+��t ���NameErrort ���StopIteration(���R,��(����(����s6���/usr/lib/python2.7/site-packages/pip/utils/__init__.pyR ����s����  c���������C@��s���|��j��S(���N(���R+��(���R,��(����(����s6���/usr/lib/python2.7/site-packages/pip/utils/__init__.pyt���__iter__��s����(���t���__name__t ���__module__t���__doc__R.��R ��R2��(����(����(����s6���/usr/lib/python2.7/site-packages/pip/utils/__init__.pyR(����s���  t ���StreamWrapperc�����������B@��s&���e��Z�e�d�����Z�e�d����Z�RS(���c���������C@��s���|�|��_��|����S(���N(���t ���orig_stream(���t���clsR7��(����(����s6���/usr/lib/python2.7/site-packages/pip/utils/__init__.pyt ���from_stream��s���� c���������C@��s ���|��j��j�S(���N(���R7��t���encoding(���R,��(����(����s6���/usr/lib/python2.7/site-packages/pip/utils/__init__.pyR:�� ��s����(���R3��R4��t ���classmethodR9��t���propertyR:��(����(����(����s6���/usr/lib/python2.7/site-packages/pip/utils/__init__.pyR6����s���c���������c@��sR���t��t�|���}�t�t�|��t�j�|���z�t��t�|���VWd�t�t�|��|��Xd�S(���s���Return a context manager used by captured_stdout/stdin/stderr that temporarily replaces the sys stream *stream_name* with a StringIO. Taken from Lib/support/__init__.py in the CPython repo. N(���t���getattrR9���t���setattrR6��R9��(���t ���stream_namet ���orig_stdout(����(����s6���/usr/lib/python2.7/site-packages/pip/utils/__init__.pyt���captured_output��s ����c�����������C@��s ���t��d��S(���s���Capture the output of sys.stdout: with captured_stdout() as stdout: print('hello') self.assertEqual(stdout.getvalue(), 'hello ') Taken from Lib/support/__init__.py in the CPython repo. R���(���RA��(����(����(����s6���/usr/lib/python2.7/site-packages/pip/utils/__init__.pyR$�����s���� t���cached_propertyc�����������B@��s ���e��Z�d��Z�d���Z�d���Z�RS(���s���A property that is only computed once per instance and then replaces itself with an ordinary attribute. Deleting the attribute resets the property. Source: https://github.com/bottlepy/bottle/blob/0.11.5/bottle.py#L175 c���������C@��s���t��|�d��|��_�|�|��_�d��S(���NR5��(���R=��R5��RK���(���R,��RK���(����(����s6���/usr/lib/python2.7/site-packages/pip/utils/__init__.pyR.��2��s����c���������C@��s4���|�d��k�r�|��S|��j�|��}�|�j�|��j�j�<|�S(���N(���R���RK���t���__dict__R3��(���R,��t���objR8��t���value(����(����s6���/usr/lib/python2.7/site-packages/pip/utils/__init__.pyt���__get__6��s����  (���R3��R4��R5��R.��RF��(����(����(����s6���/usr/lib/python2.7/site-packages/pip/utils/__init__.pyRB��*��s��� c���������C@��s\���t��j�j�|���}�|�d�k�r-�t��j���}�n�t��j�|��}�|�j�|��}�|�rX�|�j�Sd�S(���sC���Get the installed version of dist_name avoiding pkg_resources cacheN(���R ���t ���Requirementt���parseR���t ���WorkingSetR���t���version(���t ���dist_namet ���lookup_dirst���reqR���R���(����(����s6���/usr/lib/python2.7/site-packages/pip/utils/__init__.pyR(���>��s ���� c���������C@��s���t��|��d�d�d�S(���s���Consume an iterable at C speed.t���maxleni����N(���R���(���t���iterator(����(����s6���/usr/lib/python2.7/site-packages/pip/utils/__init__.pyt���consumeR��s����(���s���.tar.bz2s���.tbz(���s���.tar.xzs���.txzs���.tlzs���.tar.lzs ���.tar.lzma(���s���.zips���.whl(���s���.tar.gzs���.tgzs���.tar(g���t ���__future__R����t ���collectionsR���t ���contextlibR3���t���ioR ��t���loggingR ��Rt���R0���R���RC���RF���R��R9���R���R���t���pip.exceptionsR���t ���pip.compatR���R���R���t ���pip.locationsR���R���R���R ���R ���t ���pip._vendorR ���t���pip._vendor.six.movesR ���t���pip._vendor.sixR ���t���pip._vendor.retryingR���R���R���t���__all__t ���getLoggerR3��R���R���R���R���R���R&���R'���t���bz2R*���R��t���lzmaR/���R%���R���Rp���R���RD���R���R���Rg���R���R���R���R���R���t���DEFAULT_BUFFER_SIZER���R���R���Rr���R���R���R���R���R���R���R���R���R���R���R���R���R���R ���R!���R"���R���R#���R%��R'��t���objectR(��R6��t���contextmanagerRA��R$���RB��R(���RP��(����(����(����s6���/usr/lib/python2.7/site-packages/pip/utils/__init__.pyt���<module>���s���              (                     5 %    + L !_