0{Yc@s?ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddl m Z m Z mZddlmZmZmZmZmZmZddlmZmZmZddlmZddlmZddlmZdd d d d d ddddddddddddddddddd gZ d!Z!e"d"Z#d#Z$d$Z%d%d&Z&ddd'Z(dd(Z)d)Z*d*Z+d+e,fd,YZ-e-Z.[-ej/d-ej0Z1d.Z2d/Z3d0Z4d1Z5d2Z6d3Z7d4Z8d5Z9d6Z:d7Z;d8Z<d9Z=d:Z>d;Z?d<Z@d=ZAeBdPeBe"dBZCdCZDdDZEdEZFdFZGeBdGZHdHZIdIZJdJZKdKZLeBddeBejMdddLZNdMZOdNe,fdOYZPdS(QiN(tInstallationErrort BadCommandtPipError(t WindowsErrort string_typest raw_inputtconsole_to_strt user_sitetPermissionError(t site_packagestrunning_under_virtualenvtvirtualenv_no_global(tlogger(t pkg_resources(tversiontrmtreet display_patht backup_dirt find_commandtasktInftnormalize_nametsplitextt format_sizetis_installable_dirt is_svn_paget file_contentstsplit_leading_dirthas_leading_dirtmake_path_relativetnormalize_pathtrenamestget_terminal_sizetget_progt unzip_filet untar_filetcreate_download_cache_foldertcache_downloadt unpack_filetcall_subprocesscCsOy.tjjtjddkr-dtjSWntttfk rJnXdS(Nis __main__.pys-cs %s -m piptpip(s __main__.pys-c( tostpathtbasenametsystargvt executabletAttributeErrort TypeErrort IndexError(((s9/opt/alt/python34/lib/python3.4/site-packages/pip/util.pyR!!s cCstj|d|dtdS(Nt ignore_errorstonerror(tshutilRtrmtree_errorhandler(tdirR2((s9/opt/alt/python34/lib/python3.4/site-packages/pip/util.pyR*scCs|d \}}|tkr/|jddkpj|tkrN|jddkpj|tkoj|jddkssntj|jtj@tjkrntj|tj ||dS(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.iiii iN( RtargstOSErrorRR)tstattst_modetS_IREADtchmodtS_IWRITE(tfuncR*texc_infotexctypetvalue((s9/opt/alt/python34/lib/python3.4/site-packages/pip/util.pyR5/s"cCs^tjjtjj|}|jtjtjjrZd|ttj}n|S(sTGives the display value for a given path, making it relative to cwd if possible.t.(R)R*tnormcasetabspatht startswithtgetcwdtseptlen(R*((s9/opt/alt/python34/lib/python3.4/site-packages/pip/util.pyRBss.bakcCsKd}|}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(R)R*texistststr(R6texttnt extension((s9/opt/alt/python34/lib/python3.4/site-packages/pip/util.pyRKs  cCsI|dkr0tjjddjtj}nt|trK|g}n|dkrct}ng|j jtjD]}t |r||^q|}tj j |dj |krdg}nxj|D]b}tj j ||}x.|D]&}||}tj j|r|SqWtj j|r|SqWtd|dS(s<Searches the PATH for the given command and returns its pathtPATHtisCannot find command %rN(tNoneR)tenvirontgettsplittpathsept isinstanceRt get_pathexttlowerRHR*RtjointisfileR(tcmdtpathstpathextRKR*tcmd_patht cmd_path_ext((s9/opt/alt/python34/lib/python3.4/site-packages/pip/util.pyRVs$ $   7"    cCsF|dkr-tjjddddg}ntjjd|}|S(s9Returns the path extensions from environment or a defaults.COMs.EXEs.BATs.CMDtPATHEXTN(RPR)RTRXRQRR(tdefault_pathextR\((s9/opt/alt/python34/lib/python3.4/site-packages/pip/util.pyRVqs !cCsCx3tjjddjD]}||kr|SqWt||S(NtPIP_EXISTS_ACTIONRO(R)RQRRRSR(tmessagetoptionstaction((s9/opt/alt/python34/lib/python3.4/site-packages/pip/util.pytask_path_existsys" cCsxxqtjjdr(td|nt|}|jj}||krmd|dj|fGHq|SqdS(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(R)RQRRt ExceptionRtstripRWRX(RbRctresponse((s9/opt/alt/python34/lib/python3.4/site-packages/pip/util.pyRs  t_InfcBsMeZdZdZdZdZdZdZdZdZ RS(sI am bigger than everything!cCs||krtStSdS(N(tTruetFalse(tselftother((s9/opt/alt/python34/lib/python3.4/site-packages/pip/util.pyt__eq__s cCs|j| S(N(Ro(RmRn((s9/opt/alt/python34/lib/python3.4/site-packages/pip/util.pyt__ne__scCstS(N(Rl(RmRn((s9/opt/alt/python34/lib/python3.4/site-packages/pip/util.pyt__lt__scCstS(N(Rl(RmRn((s9/opt/alt/python34/lib/python3.4/site-packages/pip/util.pyt__le__scCstS(N(Rk(RmRn((s9/opt/alt/python34/lib/python3.4/site-packages/pip/util.pyt__gt__scCstS(N(Rk(RmRn((s9/opt/alt/python34/lib/python3.4/site-packages/pip/util.pyt__ge__scCsdS(NR((Rm((s9/opt/alt/python34/lib/python3.4/site-packages/pip/util.pyt__repr__s( t__name__t __module__t__doc__RoRpRqRrRsRtRu(((s9/opt/alt/python34/lib/python3.4/site-packages/pip/util.pyRjs      s[^a-z]cCstjd|jS(Nt-(t _normalize_retsubRW(tname((s9/opt/alt/python34/lib/python3.4/site-packages/pip/util.pyRscCsX|dkrd|ddS|d kr4d|dS|dkrLd|dSd|SdS( Nis%.1fMBg@@i s%ikBs%.1fkBs%ibytesi@Bi'((tbytes((s9/opt/alt/python34/lib/python3.4/site-packages/pip/util.pyRs     cCsEtjj|stStjj|d}tjj|rAtStS(s@Return True if `path` is a directory containing a setup.py file.ssetup.py(R)R*tisdirRlRXRYRk(R*tsetup_py((s9/opt/alt/python34/lib/python3.4/site-packages/pip/util.pyRs cCs(tjd|o'tjd|tjS(sJReturns true if the page appears to be the index page of an svn repositorys[^<]*Revision \d+:s#���Powered by (?:<a[^>]*?>)?Subversion(���t���ret���searcht���I(���t���html(����(����s9���/opt/alt/python34/lib/python3.4/site-packages/pip/util.pyR������s����c���������C���s8���t��|��d��}�z�|�j���j�d��SWd��|�j���Xd��S(���Nt���rbs���utf-8(���t���opent���readt���decodet���close(���t���filenamet���fp(����(����s9���/opt/alt/python34/lib/python3.4/site-packages/pip/util.pyR������s����c���������C���s���t��|���}��|��j�d��j�d��}��d�|��k�rv�d�|��k�rZ�|��j�d��|��j�d��k��sf�d�|��k�rv�|��j�d�d��Sd�|��k�r�|��j�d�d��S|��d�f�Sd��S(���Nt���/s���\i���RO���(���RJ���t���lstript���findRS���(���R*���(����(����s9���/opt/alt/python34/lib/python3.4/site-packages/pip/util.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(���RP���R���Rl���Rk���(���R[���t ���common_prefixR*���t���prefixt���rest(����(����s9���/opt/alt/python34/lib/python3.4/site-packages/pip/util.pyR������s����    c���������C���s7��t��j�j�|���}�t��j�j�|���}��t��j�j�t��j�j�|����}��t��j�j�t��j�j�|���}�|��j�t��j�j��j�t��j�j��}�|�j�t��j�j��j�t��j�j��}�x>�|�r�|�r�|�d�|�d�k�r�|�j �d��|�j �d��q�Wd�g�t �|��|�|�g�}�|�d�g�k�r$d�t��j�j�St��j�j�j �|��S(���s�� Make a filename relative, where the filename path, and it is relative to rel_to >>> make_relative_path('/usr/share/something/a-file.pth', ... '/usr/share/another-place/src/Directory') '../../../something/a-file.pth' >>> make_relative_path('/usr/share/something/a-file.pth', ... '/home/user/src/Directory') '../../../usr/share/something/a-file.pth' >>> make_relative_path('/usr/share/a-file.pth', '/usr/share/') 'a-file.pth' i����s���..RO���RB���( ���R)���R*���R+���t���dirnamet���normpathRD���Rh���RG���RS���t���popRH���RX���(���R*���t���rel_tot ���path_filenamet ���path_partst ���rel_to_partst ���full_parts(����(����s9���/opt/alt/python34/lib/python3.4/site-packages/pip/util.pyR������s����$$# c���������C���s(���t��j�j�t��j�j�t��j�j�|�����S(���sN��� Convert a path to its canonical, case-normalized, absolute version. (���R)���R*���RC���t���realpatht ���expanduser(���R*���(����(����s9���/opt/alt/python34/lib/python3.4/site-packages/pip/util.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���RW���t���endswith(���R*���t���baseRK���(����(����s9���/opt/alt/python34/lib/python3.4/site-packages/pip/util.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( ���R)���R*���RS���RI���t���makedirsR4���t���movet ���removedirsR8���(���t���oldt���newt���headt���tail(����(����s9���/opt/alt/python34/lib/python3.4/site-packages/pip/util.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 ���Rk���R���RE���R,���R���(���R*���(����(����s9���/opt/alt/python34/lib/python3.4/site-packages/pip/util.pyt���is_local2��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(����(����s9���/opt/alt/python34/lib/python3.4/site-packages/pip/util.pyt ���dist_is_local>��s����c���������C���s-���t��r%�t�t�|����j�t�t����St�Sd�S(���sF��� Return True if given Distribution is installed in user site. N(���R���R���R���RE���Rl���(���R���(����(����s9���/opt/alt/python34/lib/python3.4/site-packages/pip/util.pyt���dist_in_usersiteI��s����c���������C���s���t��t�|����j�t��t���S(���sa��� Return True if given Distribution is installed in distutils.sysconfig.get_python_lib(). (���R���R���RE���R ���(���R���(����(����s9���/opt/alt/python34/lib/python3.4/site-packages/pip/util.pyt���dist_in_site_packagesR��s����c���������C���s)���d�d�l��m�}�|�j�|��g���}�|�j�S(���s$���Is distribution an editable install?i(���t���FrozenRequirement(���R(���R���t ���from_distt���editable(���R���R���t���req(����(����s9���/opt/alt/python34/lib/python3.4/site-packages/pip/util.pyt���dist_is_editableY��s����t ���setuptoolsR(���t���pythont ���distributec���������C���s���|��r�t��}�n �d���}�|�r*�d���}�n �d���}�|�rE�d���}�n �d���}�g��t�j�D]?�}�|�|��rX�|�j�|�k�rX�|�|��rX�|�|��rX�|�^�qX�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 ('setuptools', 'pip', 'python'). [FIXME also skip virtualenv?] If ``editables`` is False, don't report editables. If ``editables_only`` is True , only report editables. c���������S���s���t��S(���N(���Rk���(���t���d(����(����s9���/opt/alt/python34/lib/python3.4/site-packages/pip/util.pyt���<lambda>v��s����c���������S���s���t��S(���N(���Rk���(���R���(����(����s9���/opt/alt/python34/lib/python3.4/site-packages/pip/util.pyR���y��s����c���������S���s ���t��|��� S(���N(���R���(���R���(����(����s9���/opt/alt/python34/lib/python3.4/site-packages/pip/util.pyR���{��s����c���������S���s ���t��|���S(���N(���R���(���R���(����(����s9���/opt/alt/python34/lib/python3.4/site-packages/pip/util.pyR���~��s����c���������S���s���t��S(���N(���Rk���(���R���(����(����s9���/opt/alt/python34/lib/python3.4/site-packages/pip/util.pyR�����s����(���R���R ���t ���working_sett���key(���t ���local_onlyt���skipt���include_editablest���editables_onlyt ���local_testt ���editable_testt���editables_only_testR���(����(����s9���/opt/alt/python34/lib/python3.4/site-packages/pip/util.pyt���get_installed_distributions`��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���R)���R*���RX���t ���project_nameRY���(���R���t���sitest���sitet���egglink(����(����s9���/opt/alt/python34/lib/python3.4/site-packages/pip/util.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���t���egg_link(����(����s9���/opt/alt/python34/lib/python3.4/site-packages/pip/util.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���s{���yL�d�d��l��}�d�d��l�}�d�d��l�}�|�j�d�|�j�|��|�j�d���}�Wn�d��SX|�d�k�rg�d��S|�d�k�rw�d��S|�S(���Nit���hht���1234i����(���i����i����(���i����i����(���t���fcntlt���termiost���structt���unpackt���ioctlt ���TIOCGWINSZRP���(���t���fdR���R���R���t���cr(����(����s9���/opt/alt/python34/lib/python3.4/site-packages/pip/util.pyt ���ioctl_GWINSZ��s����     i����i���i���t���LINESi���t���COLUMNSiP���(���R)���R���t���ctermidt���O_RDONLYR���RQ���RR���t���int(���R���R���R���(����(����s9���/opt/alt/python34/lib/python3.4/site-packages/pip/util.pyR �����s���� $ -c����������C���s ���t��j�d��}��t��j�|���|��S(���sB���Get the current umask which involves having to set it temporarily.i����(���R)���t���umask(���t���mask(����(����s9���/opt/alt/python34/lib/python3.4/site-packages/pip/util.pyt ���current_umask��s���� c��� ��� ���C���s��t��j�j�|��s"�t��j�|��n��t�|��d��}�z}t�j�|��}�t�|�j����oX�|�}�xO|�j ���D]A}�|�j �}�|�j �|��}�|�} �|�r�t �|��d�} �n��t��j�j �|�| ��} �t��j�j�| ��} �t��j�j�| ��s�t��j�| ��n��| �j�d��s | �j�d��r1t��j�j�| ��st��j�| ��qqh�t�| �d��} �z�| �j�|��Wd�| �j���|�j�d�?} �| �rt�j�| ��r| �d�@rt��j�| �d �t���d�B�n��Xqh�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. R���i���R���s���\t���wbNi���iI���i��(���R)���R*���RI���R���R���t���zipfilet���ZipFileR���t���namelistt���infolistR���R���R���RX���R���R���t���writeR���t ���external_attrR9���t���S_ISREGR<���R���( ���R���R���t���flattent���zipfpt���zipt���leadingt���infoR|���t���datat���fnR6���R���t���mode(����(����s9���/opt/alt/python34/lib/python3.4/site-packages/pip/util.pyR"�����s6����    'c��� ��� ���C���s��t��j�j�|��s"�t��j�|��n��|��j���j�d��sL�|��j���j�d��rU�d�}�nh�|��j���j�d��s�|��j���j�d��r�d�}�n5�|��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�r7qn��|�rPt �|��d �}�n��t��j�j�|�|��}�|�j���rt��j�j�|��st��j�|��qq|�j���ry�|�j�|�|��Wqt�j���d �}�t�j�d �|��|�j �|�f��qqXqy�|�j�|��} �WnG�t�t�f�k �rOt�j���d �}�t�j�d �|��|�j �|�f��qn�Xt��j�j�t��j�j�|���st��j�t��j�j�|���n��t �|�d��} �z�t�j�| �| ��Wd�| �j���X| �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���.bz2s���.tbzs���r:bz2s���.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)���R*���RI���R���RW���R���R ���t���warnt���tarfileR���R���t ���getmembersR|���R���RX���R~���t���issymt���_extract_memberR,���R?���t ���extractfilet���KeyErrorR/���R���R4���t ���copyfileobjR���R���R<���R���( ���R���R���R���t���tart���memberR���R���R*���t���eR���t���destfp(����(����s9���/opt/alt/python34/lib/python3.4/site-packages/pip/util.pyR#��� ��sh���� * *  !        &c���������C���s@���t��j�d�8_�t��j�d�|���t��j�d�7_�t�j�|���d��S(���Ni���s&���Creating supposed download cache at %s(���R ���t���indentt���notifyR)���R���(���t���folder(����(����s9���/opt/alt/python34/lib/python3.4/site-packages/pip/util.pyR$���X��s����c���������C���sU���t��j�d�t�|����t�j�|�|���t�|��d�d��}�|�j�|��|�j���d��S(���Ns���Storing download in cache at %ss ���.content-typet���w(���R ���R���R���R4���t���copyfileR���R���R���(���t ���target_filet ���temp_locationt ���content_typeR���(����(����s9���/opt/alt/python34/lib/python3.4/site-packages/pip/util.pyR%���_��s ���� c������ ���C���sC��t��j�j�|���}��|�d�k�sZ�|��j�d��sZ�|��j�d��sZ�|��j�d��sZ�t�j�|���rz�t�|��|�d�|��j�d�� n�|�d�k�s�t�j�|���s�t �|���d�j ���d�k�r�t �|��|��n~�|�r|�j �d ��rt �t�|����rd�d�l�m�}�|�d�|�j��j�|��n*�t�j�d�|��|�|�f��t�d�|���d��S(���Ns���application/zips���.zips ���.pybundles���.whlR���s���application/x-gzipi���s���.tars���.tar.gzs���.tar.bz2s���.tgzs���.tbzs ���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(���s ���.pybundles���.whl(���s���.tars���.tar.gzs���.tar.bz2s���.tgzs���.tbz(���R)���R*���R���R���R���t ���is_zipfileR"���R���t ���is_tarfileR���RW���R#���RE���R���R���t���pip.vcs.subversionR���t���urlR���R ���t���fatalR����(���R���R���R���t���linkR���(����(����s9���/opt/alt/python34/lib/python3.4/site-packages/pip/util.pyR&���g��s$����    c������ ���C���s��|�d��k�r�g��}�xd�|��D]\�} �d�| �k�sO�d�| �k�sO�d�| �k�sO�d�| �k�rh�d�| �j�d�d��} �n��|�j�| ��q�Wd�j�|��}�n��|�r�d��} �n �t�j�} �t�j�|�d�|��t�j �j ���} �|�r�| �j �|��n��y4�t�j �|��d�t�j �d �d��d �| �d �|�d �| �} �Wn;�t�k �rMt�j���d �} �t�j�d�| �|�f����n�Xg��}�| �d��k �r| �j�} �x�t�| �j����}�|�sPn��|�j���}�|�j�|�d��|�r|�|��}�t�|�t��r|�\�}�}�n��t�j�|�|��t�j�|��st�j���qqlt�j�|��qln!�| �j���\�}�}�|�p2d�g�}�| �j���| �j�r|�r|�rt�j�d�|��t�j�d�j�|��d��n��t�d�|�| �j�|�f���qt�j �d�|�| �j�|�f��n��| �d��k �rd�j�|��Sd��S(���Nt��� s��� t���"t���'s���"%s"s���\"s���Running command %st���stderrt���stdint���stdoutt���cwdt���envi���s#���Error %s while executing command %sRO���s ���Complete output from command %s:s)��� ----------------------------------------s*���Command %s failed with error code %s in %ss"���Command %s had error code %s in %s(!���RP���t���replaceR���RX���t ���subprocesst���PIPER ���t���logR)���RQ���t���copyt���updatet���Popent���STDOUTRg���R,���R?���R��R ��R���t���readlinet���rstripRU���t���tuplet���stdout_level_matchest ���show_progressR���t ���communicatet���waitt ���returncodeR���R����R���(���RZ���t ���show_stdoutt ���filter_stdoutR ��t���raise_on_returncodet ���command_levelt ���command_desct ���extra_environt ���cmd_partst���partR ��R��t���procR���t ���all_outputt���linet���levelt���returned_stdoutt���returned_stderr(����(����s9���/opt/alt/python34/lib/python3.4/site-packages/pip/util.pyR'�����sp����  0          c������ ���C���s���t��j�|���}�|�d�k�r�t�St��j�|��}�t�g��|�D]@�}�t�g��|�D]'�}�|�t�d�d�d�d�d�g��k�^�qH��^�q8��S(���s��� Attempt to determine if this is a pre-release using PEP386/PEP426 rules. Will return True if it is a pre-release and False if not. Versions are assumed to be a pre-release if they cannot be parsed. t���at���bt���ct���rct���devN(���R���t���_suggest_normalized_versionRP���Rk���t���_normalized_keyt���anyt���set(���t���verst ���normalizedt���parsedt���xt���y(����(����s9���/opt/alt/python34/lib/python3.4/site-packages/pip/util.pyt ���is_prerelease��s ���� t���BuildDirectoryc�����������B���s;���e��Z�d�d�d���Z�d���Z�d���Z�d���Z�d���Z�RS(���c���������C���sm���|�d��k�r!�|�d��k�r!�t�}�n��|�d��k�rW�t�j�d�d��}�|�d��k�rW�t�}�qW�n��|�|��_�|�|��_�d��S(���NR���s ���pip-build-(���RP���Rk���t���tempfilet���mkdtempR|���t���delete(���Rm���R|���R?��(����(����s9���/opt/alt/python34/lib/python3.4/site-packages/pip/util.pyt���__init__��s����     c���������C���s���d�j��|��j�j�|��j��S(���Ns ���<{} {!r}>(���t���formatt ���__class__Rv���R|���(���Rm���(����(����s9���/opt/alt/python34/lib/python3.4/site-packages/pip/util.pyRu�����s����c���������C���s���|��j��S(���N(���R|���(���Rm���(����(����s9���/opt/alt/python34/lib/python3.4/site-packages/pip/util.pyt ���__enter__��s����c���������C���s���|��j����d��S(���N(���t���cleanup(���Rm���t���excRA���t���tb(����(����s9���/opt/alt/python34/lib/python3.4/site-packages/pip/util.pyt���__exit__��s����c���������C���s���|��j��r�t�|��j��n��d��S(���N(���R?��R���R|���(���Rm���(����(����s9���/opt/alt/python34/lib/python3.4/site-packages/pip/util.pyRD����s���� N(���Rv���Rw���RP���R@��Ru���RC��RG��RD��(����(����(����s9���/opt/alt/python34/lib/python3.4/site-packages/pip/util.pyR<����s ���   (���R���s���pips���pythonR���(Q���R,���R4���R)���R9���R���R���R���R���R��t���textwrapR=��t���pip.exceptionsR����R���R���t���pip.backwardcompatR���R���R���R���R���R���t ���pip.locationsR ���R ���R ���t���pip.logR ���t ���pip._vendorR ���t���pip._vendor.distlibR���t���__all__R!���Rl���R���R5���R���R���RP���R���RV���Re���R���t���objectRj���R���t���compileR���Rz���R���R���R���R���R���R���R���R���R���R���R���R���R���R���R���R���Rk���R���R���R���R ���R���R"���R#���R$���R%���R&���t���DEBUGR'���R;��R<��(����(����(����s9���/opt/alt/python34/lib/python3.4/site-packages/pip/util.pyt���<module>���s���           .                     ' "    - L     ?