� ��abc@@s�ddlmZddlmZddlZddlZddlZddlZddlZ 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,j5d1�nXyddl6Z6e2e.7Z2Wne4k r�e,j5d2�nXd3�Z7d4�Z8d5�Z9e&d6d7d8d9�e:d:��Z;d;�Z<d<�Z=d=d>�Z>d?�Z?d@�Z@dA�ZAdB�ZBdC�ZCdD�ZDejEdE�ZFdF�ZGdG�ZHeIdH�ZJdI�ZKdJ�ZLdK�ZMdL�ZNdM�ZOdN�ZPdO�ZQeIeeIe:e:dP�ZRdQ�ZSdR�ZTdS�ZUdT�ZVeIdU�ZWdV�ZXdW�ZYeIddXddddY�Z[dZ�Z\d[�Z]d\e^fd]��YZ_d^e(fd_��YZ`ejad`��Zbda�Zcdbe^fdc��YZdddd�Zede�ZfdS(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.tjjtjd�dkr-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_fixedi�cC@stj|d|dt�dS(Nt ignore_errorstonerror(tshutilRtrmtree_errorhandler(tdirRA((s6/usr/lib/python2.7/site-packages/pip/utils/__init__.pyRcscC@sAtj|�jtj@r:tj|tj�||�dS�dS(s�On 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@s�tjjtjj|��}tjddkrd|jtj�d�}|jtj �d�}n|j tj �tjj �r�d|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__.pyR�s  cC@sCx3tjjdd�j�D]}||kr|SqWt||�S(NtPIP_EXISTS_ACTIONt(R0tenvirontgettsplitR(tmessagetoptionstaction((s6/usr/lib/python2.7/site-packages/pip/utils/__init__.pytask_path_exists�s" cC@syxrtjjd�r(td|��nt|�}|j�j�}||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__.pyR�s   cC@sX|dkrd|ddS|d kr4d|dS|dkrLd|dSd|SdS( Ni�s%.1fMBg@�@i s%ikBs%.1fkBs%ibytesi@Bi'((tbytes((s6/usr/lib/python2.7/site-packages/pip/utils/__init__.pyR�s     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__.pyR�s cC@s(tjd|�o'tjd|tj�S(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�|��|���}�z�t �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����r�y�|�j�|�|���Wq�t�k �r�}�t�j�d �|��|�j �|���qq�Xqy�|�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 �r�g��} �x��t�r�t�| �j�j������}�|�srPn��|�j����}�| �j�|�d���t�j����t�j�k�r�t�j�|���qM|�d��k �rM|�j����qMqMWn��| �j����|�d��k �r| �j�r|�j�d���q|�j�d���n��| �j�r�|�d�k�r�t�j����t�j�k�rq|� rqt�j�d�|���t�j�d�j�| ���d���n��t�d�|�| �j�|�f�����q�|�d�k�r�t�j�d�|�| �j�|���q�|�d�k�r�q�t�d�t �|�������n��|�s�d�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�Wt�|���t�k�s��t ���|�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���UnicodeDecodeErrort���typeRn���t���AssertionError(���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__R0��R ��R4��(����(����(����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���clsR9��(����(����s6���/usr/lib/python2.7/site-packages/pip/utils/__init__.pyt ���from_stream��s���� c���������C@��s ���|��j��j�S(���N(���R9��t���encoding(���R.��(����(����s6���/usr/lib/python2.7/site-packages/pip/utils/__init__.pyR<�� ��s����(���R5��R6��t ���classmethodR;��t���propertyR<��(����(����(����s6���/usr/lib/python2.7/site-packages/pip/utils/__init__.pyR8����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���setattrR8��R;��(���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����(���RC��(����(����(����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(���NR7��(���R?��R7��RK���(���R.��RK���(����(����s6���/usr/lib/python2.7/site-packages/pip/utils/__init__.pyR0��2��s����c���������C@��s4���|�d��k�r�|��S|��j�|���}�|�j�|��j�j�<|�S(���N(���R����RK���t���__dict__R5��(���R.��t���objR:��t���value(����(����s6���/usr/lib/python2.7/site-packages/pip/utils/__init__.pyt���__get__6��s����  (���R5��R6��R7��R0��RH��(����(����(����s6���/usr/lib/python2.7/site-packages/pip/utils/__init__.pyRD��*��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 ���getLoggerR5��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*��R8��t���contextmanagerRC��R$���RD��R(���RR��(����(����(����s6���/usr/lib/python2.7/site-packages/pip/utils/__init__.pyt���<module>���s����              (                     5 %    + L !_