Files
PowerToys/PythonHome/Lib/site-packages/pip/util.pyc

166 lines
26 KiB
Plaintext
Raw Normal View History

2014-07-09 18:15:23 +08:00
<03>
<00>Sc@sddlZddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl
m Z m Z m Z ddlmZmZmZmZmZmZddlmZmZmZddlmZddlmZddlmZdd d
d d d ddddddddddddddddddd gZd!<00>Z e!d"<00>Z"d#<00>Z#d$<00>Z$d%d&<00>Z%ddd'<00>Z'dd(<00>Z(d)<00>Z)d*<00>Z*d+e+fd,<00><00>YZ,e,<00>Z-[,ej.d-ej/<00>Z0d.<00>Z1d/<00>Z2d0<00>Z3d1<00>Z4d2<00>Z5d3<00>Z6d4<00>Z7d5<00>Z8d6<00>Z9d7<00>Z:d8<00>Z;d9<00>Z<d:<00>Z=d;<00>Z>d<<00>Z?d=<00>Z@eAdNeAe!dB<00>ZBdC<00>ZCdD<00>ZDdE<00>ZEdF<00>ZFeAdG<00>ZGdH<00>ZHdI<00>ZIdJ<00>ZJdK<00>ZKeAddeAejLdddL<00>ZMdM<00>ZNdS(Oi<><69><EFBFBD><EFBFBD>N(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.tjjtjd<19>dkr-dtjSWntttfk
rJnXdS(Nis __main__.pys-cs %s -m piptpip(s __main__.pys-c( tostpathtbasenametsystargvt
executabletAttributeErrort TypeErrort
IndexError(((s?c:\Users\lifqian\Desktop\Python27\lib\site-packages\pip\util.pyR! s cCstj|d|dt<00>dS(Nt ignore_errorstonerror(tshutilRtrmtree_errorhandler(tdirR2((s?c:\Users\lifqian\Desktop\Python27\lib\site-packages\pip\util.pyR)scCs<>|d \}}|tkr/|jddkpj|tkrN|jddkpj|tkoj|jddkss<00>ntj|<00>jtj@tjkr<><00>ntj|tj <00>||<00>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.iiii iN(
RtargstOSErrorRR)tstattst_modetS_IREADtchmodtS_IWRITE(tfuncR*texc_infotexctypetvalue((s?c:\Users\lifqian\Desktop\Python27\lib\site-packages\pip\util.pyR5.s"cCs^tjjtjj|<00><00>}|jtj<00>tjj<17>rZd|ttj<00><00>}n|S(sTGives the display value for a given path, making it relative to cwd
if possible.t.(R)R*tnormcasetabspatht
startswithtgetcwdtseptlen(R*((s?c:\Users\lifqian\Desktop\Python27\lib\site-packages\pip\util.pyRAss.bakcCsKd}|}x4tjj||<17>rB|d7}|t|<00>}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((s?c:\Users\lifqian\Desktop\Python27\lib\site-packages\pip\util.pyRJs 
cCsI|dkr0tjjdd<00>jtj<00>}nt|t<00>rK|g}n|dkrct<00>}ng|j <00>jtj<00>D]}t
|<00>r||^q|}tj j |<00>dj <00>|kr<>dg}nxj|D]b}tj j ||<00>}x.|D]&}||}tj j|<00>r<>|Sq<53>Wtj j|<00>r<>|Sq<53>Wtd|<16><00>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((s?c:\Users\lifqian\Desktop\Python27\lib\site-packages\pip\util.pyRUs$ $   7"   
cCsF|dkr-tjjddddg<00>}ntjjd|<00>}|S(s9Returns the path extensions from environment or a defaults.COMs.EXEs.BATs.CMDtPATHEXTN(RPR)RTRXRQRR(tdefault_pathextR\((s?c:\Users\lifqian\Desktop\Python27\lib\site-packages\pip\util.pyRVps !cCsCx3tjjdd<00>j<00>D]}||kr|SqWt||<00>S(NtPIP_EXISTS_ACTIONRO(R)RQRRRSR(tmessagetoptionstaction((s?c:\Users\lifqian\Desktop\Python27\lib\site-packages\pip\util.pytask_path_existsxs" cCsxxqtjjd<00>r(td|<16><00>nt|<00>}|j<00>j<00>}||krmd|dj|<00>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((s?c:\Users\lifqian\Desktop\Python27\lib\site-packages\pip\util.pyRs  t_InfcBsMeZdZd<00>Zd<00>Zd<00>Zd<00>Zd<00>Zd<00>Zd<00>Z RS(sI am bigger than everything!cCs||krtStSdS(N(tTruetFalse(tselftother((s?c:\Users\lifqian\Desktop\Python27\lib\site-packages\pip\util.pyt__eq__<5F>s cCs|j|<00> S(N(Ro(RmRn((s?c:\Users\lifqian\Desktop\Python27\lib\site-packages\pip\util.pyt__ne__<5F>scCstS(N(Rl(RmRn((s?c:\Users\lifqian\Desktop\Python27\lib\site-packages\pip\util.pyt__lt__<5F>scCstS(N(Rl(RmRn((s?c:\Users\lifqian\Desktop\Python27\lib\site-packages\pip\util.pyt__le__<5F>scCstS(N(Rk(RmRn((s?c:\Users\lifqian\Desktop\Python27\lib\site-packages\pip\util.pyt__gt__<5F>scCstS(N(Rk(RmRn((s?c:\Users\lifqian\Desktop\Python27\lib\site-packages\pip\util.pyt__ge__<5F>scCsdS(NR((Rm((s?c:\Users\lifqian\Desktop\Python27\lib\site-packages\pip\util.pyt__repr__<5F>s(
t__name__t
__module__t__doc__RoRpRqRrRsRtRu(((s?c:\Users\lifqian\Desktop\Python27\lib\site-packages\pip\util.pyRj<00>s      s[^a-z]cCstjd|j<00><00>S(Nt-(t _normalize_retsubRW(tname((s?c:\Users\lifqian\Desktop\Python27\lib\site-packages\pip\util.pyR<00>scCsX|dkrd|ddS|d kr4d|dS|dkrLd|dSd|SdS(
Ni<4E>s%.1fMBg@<40>@i
s%ikBs%.1fkBs%ibytesi@Bi'((tbytes((s?c:\Users\lifqian\Desktop\Python27\lib\site-packages\pip\util.pyR<00>s     cCsEtjj|<00>stStjj|d<00>}tjj|<00>rAtStS(s@Return True if `path` is a directory containing a setup.py file.ssetup.py(R)R*tisdirRlRXRYRk(R*tsetup_py((s?c:\Users\lifqian\Desktop\Python27\lib\site-packages\pip\util.pyR<00>s cCs(tjd|<00>o'tjd|tj<00>S(sJReturns true if the page appears to be the index page of an svn repositorys<title>[^<]*Revision \d+:s#Powered by (?:<a[^>]*?>)?Subversion(tretsearchtI(thtml((s?c:\Users\lifqian\Desktop\Python27\lib\site-packages\pip\util.pyR<00>scCs8t|d<00>}z|j<00>jd<00>SWd|j<00>XdS(Ntrbsutf-8(topentreadtdecodetclose(tfilenametfp((s?c:\Users\lifqian\Desktop\Python27\lib\site-packages\pip\util.pyR<00>scCs<>t|<00>}|jd<00>jd<00>}d|krvd|krZ|jd<00>|jd<00>ksfd|krv|jdd<00>Sd|kr<>|jdd<00>S|dfSdS(Nt/s\iRO(RJtlstriptfindRS(R*((s?c:\Users\lifqian\Desktop\Python27\lib\site-packages\pip\util.pyR<00>s 6  cCs\d}xO|D]G}t|<00>\}}|s/tS|dkrD|}q ||kr tSq WtS(syReturns true if all the paths have the same leading path name
(i.e., everything is in one subdirectory in an archive)N(RPRRlRk(R[t common_prefixR*tprefixtrest((s?c:\Users\lifqian\Desktop\Python27\lib\site-packages\pip\util.pyR<00>s    cCs7tjj|<00>}tjj|<00>}tjjtjj|<00><00>}tjjtjj|<00><00>}|jtjj<00>jtjj<00>}|jtjj<00>jtjj<00>}x>|r<>|r<>|d|dkr<>|j d<00>|j d<00>q<>Wdgt
|<00>||g}|dgkr$dtjjStjjj |<00>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'
is..RORB( R)R*R+tdirnametnormpathRDRhRGRStpopRHRX(R*trel_tot path_filenamet
path_partst rel_to_partst
full_parts((s?c:\Users\lifqian\Desktop\Python27\lib\site-packages\pip\util.pyR<00>s$$# cCs(tjjtjjtjj|<00><00><00>S(sN
Convert a path to its canonical, case-normalized, absolute version.
(R)R*RCtrealpatht
expanduser(R*((s?c:\Users\lifqian\Desktop\Python27\lib\site-packages\pip\util.pyRscCsOtj|<00>\}}|j<00>jd<00>rE|d|}|d }n||fS(s,Like os.path.splitext, but take off .tar toos.tari<72><69><EFBFBD><EFBFBD>(t posixpathRRWtendswith(R*tbaseRK((s?c:\Users\lifqian\Desktop\Python27\lib\site-packages\pip\util.pyRs
 cCs<>tjj|<00>\}}|rG|rGtjj|<00> rGtj|<00>ntj||<00>tjj|<00>\}}|r<>|r<>ytj|<00>Wq<57>tk
r<>q<>XndS(s7Like os.renames(), but handles renaming across devices.N( R)R*RSRItmakedirsR4tmovet
removedirsR8(toldtnewtheadttail((s?c:\Users\lifqian\Desktop\Python27\lib\site-packages\pip\util.pyR s  cCs)t<00>s tSt|<00>jttj<00><00>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
RkRRER,R<>(R*((s?c:\Users\lifqian\Desktop\Python27\lib\site-packages\pip\util.pytis_local1s cCstt|<00><00>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(tdist((s?c:\Users\lifqian\Desktop\Python27\lib\site-packages\pip\util.pyt dist_is_local=scCs-tr%tt|<00><00>jtt<00><00>StSdS(sF
Return True if given Distribution is installed in user site.
N(RRR<>RERl(R<>((s?c:\Users\lifqian\Desktop\Python27\lib\site-packages\pip\util.pytdist_in_usersiteHscCstt|<00><00>jtt<00><00>S(sa
Return True if given Distribution is installed in distutils.sysconfig.get_python_lib().
(RR<>RER (R<>((s?c:\Users\lifqian\Desktop\Python27\lib\site-packages\pip\util.pytdist_in_site_packagesQscCs)ddlm}|j|g<00>}|jS(s$Is distribution an editable install?i<><69><EFBFBD><EFBFBD>(tFrozenRequirement(R(R<>t from_distteditable(R<>R<>treq((s?c:\Users\lifqian\Desktop\Python27\lib\site-packages\pip\util.pytdist_is_editableXst
setuptoolsR(tpythont
distributecCs<>|rt}n d<00>}|r*d<00>}n d<00>}|rEd<00>}n d<00>}gtjD]?}||<00>rX|j|krX||<00>rX||<00>rX|^qXS(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.
cSstS(N(Rk(td((s?c:\Users\lifqian\Desktop\Python27\lib\site-packages\pip\util.pyt<lambda>uscSstS(N(Rk(R<>((s?c:\Users\lifqian\Desktop\Python27\lib\site-packages\pip\util.pyR<79>xscSs t|<00> S(N(R<>(R<>((s?c:\Users\lifqian\Desktop\Python27\lib\site-packages\pip\util.pyR<79>zscSs
t|<00>S(N(R<>(R<>((s?c:\Users\lifqian\Desktop\Python27\lib\site-packages\pip\util.pyR<79>}scSstS(N(Rk(R<>((s?c:\Users\lifqian\Desktop\Python27\lib\site-packages\pip\util.pyR<79>s(R<>R t working_settkey(t
local_onlytskiptinclude_editablesteditables_onlyt
local_testt editable_testteditables_only_testR<74>((s?c:\Users\lifqian\Desktop\Python27\lib\site-packages\pip\util.pytget_installed_distributions_s        cCs<>g}t<00>rNt<00>r(|jt<00>qq|jt<00>trq|jt<00>qqn#trd|jt<00>n|jt<00>x@|D]8}tjj||j<00>d}tjj |<00>rx|SqxWdS(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 tappendR RR)R*RXt project_nameRY(R<>tsitestsitetegglink((s?c:\Users\lifqian\Desktop\Python27\lib\site-packages\pip\util.pyt egg_link_path<74>s     cCst|<00>}|r|S|jS(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<>tlocation(R<>tegg_link((s?c:\Users\lifqian\Desktop\Python27\lib\site-packages\pip\util.pyR<79><00>s cCs<>d<00>}|d<00>p*|d<00>p*|d<00>}|sxy8tjtj<00>tj<00>}||<00>}tj|<00>WqxqxXn|s<>tjjdd<00>tjjdd<00>f}nt|d<19>t|d<19>fS( slReturns a tuple (x, y) representing the width(x) and the height(x)
in characters of the terminal window.cSs{yLddl}ddl}ddl}|jd|j||jd<00><00>}WndSX|dkrgdS|dkrwdS|S(Ni<4E><69><EFBFBD><EFBFBD>thht1234i(ii(ii(tfcntlttermioststructtunpacktioctlt
TIOCGWINSZRP(tfdR<64>R<>R<>tcr((s?c:\Users\lifqian\Desktop\Python27\lib\site-packages\pip\util.pyt ioctl_GWINSZ<53>s     iiitLINESitCOLUMNSiP(R)R<>tctermidtO_RDONLYR<59>RQRRtint(R<>R<>R<>((s?c:\Users\lifqian\Desktop\Python27\lib\site-packages\pip\util.pyR <00>s $ -cCs tjd<00>}tj|<00>|S(sBGet the current umask which involves having to set it temporarily.i(R)tumask(tmask((s?c:\Users\lifqian\Desktop\Python27\lib\site-packages\pip\util.pyt current_umask<73>s c Cs<>tjj|<00>s"tj|<00>nt|d<00>}z}tj|<00>}t|j<00><00>oX|}xO|j <00>D]A}|j
}|j |<00>}|} |r<>t |<00>d} ntjj || <00>} tjj| <00>}
tjj|
<00>s<>tj|
<00>n| jd<00>s | jd<00>r1tjj| <00>s<>tj| <00>q<>qht| d<00>} z| j|<00>Wd| j<00>|jd?} | r<>tj| <00>r<>| d@r<>tj| d t<00>dB<>nXqhWWd|j<00>XdS(
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<>iR<>s\twbNiiIi<>(R)R*RIR<>R<>tzipfiletZipFileRtnamelisttinfolistR<74>R<>RRXR<>R<>twriteR<65>t external_attrR9tS_ISREGR<R<>( R<>R<>tflattentzipfptziptleadingtinfoR|tdatatfnR6R<>tmode((s?c:\Users\lifqian\Desktop\Python27\lib\site-packages\pip\util.pyR"<00>s6  
 'c Cstjj|<00>s"tj|<00>n|j<00>jd<00>sL|j<00>jd<00>rUd}nh|j<00>jd<00>s|j<00>jd<00>r<>d}n5|j<00>jd<00>r<>d}ntjd |<16>d
}tj ||<00>}z&t
g|j <00>D]}|j d kr<>|j ^q<><00>}x<>|j <00>D]<5D>}|j }|d kr7qn|rPt |<00>d }ntjj||<00>}|j<00>r<>tjj|<00>s<>tj|<00>q<>q|j<00>r<>y|j||<00>Wq<57>tj<00>d }tjd ||j |f<16>qq<>Xqy|j|<00>} WnGttfk
rOtj<00>d }tjd ||j |f<16>qnXtjjtjj|<00><00>s<>tjtjj|<00><00>nt |d<00>}
ztj| |
<00>Wd|
j<00>X| j<00>|jd@rtj|dt<00>dB<>qqWWd|j<00>XdS(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.tgzsr:gzs.bz2s.tbzsr:bz2s.tartrs-Cannot determine compression type for file %ssr:*tpax_global_headeris/In the tar file %s the member %s is invalid: %sR<73>NiIi<>(R)R*RIR<>RWR<>R twarnttarfileR<65>Rt
getmembersR|RRXR~tissymt_extract_memberR,R?t extractfiletKeyErrorR/R<>R4t copyfileobjR<6A>R<>R<R<>( R<>R<>R<>ttartmemberR<72>R<>R*teR<65>tdestfp((s?c:\Users\lifqian\Desktop\Python27\lib\site-packages\pip\util.pyR# sh * *  !    
 
 &cCs@tjd8_tjd|<16>tjd7_tj|<00>dS(Nis&Creating supposed download cache at %s(R tindenttnotifyR)R<>(tfolder((s?c:\Users\lifqian\Desktop\Python27\lib\site-packages\pip\util.pyR$WscCsUtjdt|<00><16>tj||<00>t|dd<00>}|j|<00>|j<00>dS(NsStoring download in cache at %ss .content-typetw(R R<>RR4tcopyfileR<65>R<>R<>(t target_filet temp_locationt content_typeR<65>((s?c:\Users\lifqian\Desktop\Python27\lib\site-packages\pip\util.pyR%^s
 cCsCtjj|<00>}|dksZ|jd<00>sZ|jd<00>sZ|jd<00>sZtj|<00>rzt||d|jd<00> <0C>n<>|dks<>tj|<00>s<>t |<00>dj
<00>dkr<>t ||<00>n~|r|j d <00>rt t|<00><00>rddlm}|d|j<17>j|<00>n*tjd|||f<16>td|<16><00>dS(Nsapplication/zips.zips .pybundles.whlR<6C>sapplication/x-gzipis.tars.tar.gzs.tar.bz2s.tgzs.tbzs text/htmli<6C><69><EFBFBD><EFBFBD>(t
Subversionssvn+sZCannot 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_tarfileRRWR#RERRtpip.vcs.subversionRturlR<6C>R tfatalR(R<>R<>R<>tlinkR((s?c:\Users\lifqian\Desktop\Python27\lib\site-packages\pip\util.pyR&fs$    c Cs<>|dkr<>g}xd|D]\} d| ksOd| ksOd| ksOd| krhd| jdd<00>} n|j| <00>qWdj|<00>}n|r<>d}
n tj}
tj|d|<16>tj j
<00>} |r<>| j |<00>ny4tj |dtj d dd
|
d |d | <00>} Wn;tk
rMtj<00>d } tjd| |f<16><01>nXg}|
dk r| j}
x<>t|
j<00><00>}|s<>Pn|j<00>}|j|d<17>|r||<00>}t|t<00>r<>|\}}ntj||<00>tj|<00>stj<00>qqltj|<00>qln!| j<00>\}}|p2dg}| j<00>| jr<>|r<>|r<>tjd|<16>tjdj|<00>d<17>ntd|| j|f<16><00>q<>tj d|| j|f<16>n|
dk r<>dj|<00>SdS(Nt s
t"t's"%s"s\"sRunning command %ststderrtstdintstdouttcwdtenvis#Error %s while executing command %sROs Complete output from command %s:s)
----------------------------------------s*Command %s failed with error code %s in %ss"Command %s had error code %s in %s(!RPtreplaceR<65>RXt
subprocesstPIPER tlogR)RQtcopytupdatetPopentSTDOUTRgR,R?RR RtreadlinetrstripRUttupletstdout_level_matchest show_progressR<73>t communicatetwaitt
returncodeR<65>RR<>(RZt show_stdoutt filter_stdoutR traise_on_returncodet command_levelt command_desct extra_environt cmd_partstpartR RtprocR<63>t
all_outputtlinetleveltreturned_stdouttreturned_stderr((s?c:\Users\lifqian\Desktop\Python27\lib\site-packages\pip\util.pyR'sp  0       
  c Cstj|<00>}|dkrtStj|<00>}tg|D]@}tg|D]'}|tdddddg<00>k^qH<00>^q8<00>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.
tatbtctrctdevN(Rt_suggest_normalized_versionRPRkt_normalized_keytanytset(tverst
normalizedtparsedtxty((s?c:\Users\lifqian\Desktop\Python27\lib\site-packages\pip\util.pyt is_prerelease<73>s
 (s
setuptoolsspipspythonR<6E>(OR,R4R)R9R<>R<>R<>R<>Rttextwraptpip.exceptionsRRRtpip.backwardcompatRRRRRRt pip.locationsR R
R tpip.logR t pip._vendorR tpip._vendor.distlibRt__all__R!RlRR5RRRPRRVReRtobjectRjRtcompileR<65>RzRRRRRRRRRRRR<>R<>R<>R<>R<>RkR<>R<>R<>R R<>R"R#R$R%R&tDEBUGR'R;(((s?c:\Users\lifqian\Desktop\Python27\lib\site-packages\pip\util.pyt<module>s<>          .            
        ' "    - L     ?