asda?‰PNG  IHDR ? f ??C1 sRGB ??é gAMA ±? üa pHYs ? ??o¨d GIDATx^íüL”÷e÷Y?a?("Bh?_ò???¢§?q5k?*:t0A-o??¥]VkJ¢M??f?±8\k2íll£1]q?ù???T usr/lib/python2.7/site-packages/setuptools/wheel.pyc000064400000016257151027760720016477 0ustar00 fc@sdZddlmZddlZddlZddlZddlZddlZddlm Z m Z m Z ddl m Z ddlm ZddlmZddlmZejd ejjZd Zd Zd efd YZdS(sWheels support.i(t get_platformN(t Distributiont PathMetadatat parse_version(tPY3(R(t pep425tags(twrite_requirementss^(?P.+?)-(?P\d.*?) ((-(?P\d.*?))?-(?P.+?)-(?P.+?)-(?P.+?) )\.whl$stry: __import__('pkg_resources').declare_namespace(__name__) except ImportError: __path__ = __import__('pkgutil').extend_path(__path__, __name__) c CsOxtj|D]\}}}tjj||}xK|D]C}tjj||}tjj|||}tj||q;Wxttt|D]e\} } tjj|| }tjj||| }tjj |stj|||| =qqWqWx@tj|dt D])\}}}| s:t tj |qWdS(sDMove everything under `src_dir` to `dst_dir`, and delete the former.ttopdownN( tostwalktpathtrelpathtjointrenamestreversedtlistt enumeratetexiststTruetAssertionErrortrmdir( tsrc_dirtdst_dirtdirpathtdirnamest filenamestsubdirtftsrctdsttntd((s4/usr/lib/python2.7/site-packages/setuptools/wheel.pytunpacks %% tWheelcBs5eZdZdZdZdZdZRS(cCswttjj|}|dkr7td|n||_x0|jjD]\}}t |||qSWdS(Nsinvalid wheel name: %r( t WHEEL_NAMERR tbasenametNonet ValueErrortfilenamet groupdicttitemstsetattr(tselfR&tmatchtktv((s4/usr/lib/python2.7/site-packages/setuptools/wheel.pyt__init__7s   cCs7tj|jjd|jjd|jjdS(s>List tags (py_version, abi, platform) supported by this wheel.t.(t itertoolstproductt py_versiontsplittabitplatform(R*((s4/usr/lib/python2.7/site-packages/setuptools/wheel.pyttags?scs/tjtfd|jDtS(s5Is the wheel is compatible with the current platform?c3s!|]}|krtVqdS(N(R(t.0tt(tsupported_tags(s4/usr/lib/python2.7/site-packages/setuptools/wheel.pys Hs(Rt get_supportedtnextR6tFalse(R*((R9s4/usr/lib/python2.7/site-packages/setuptools/wheel.pyt is_compatibleEs cCsAtd|jd|jd|jdkr-dntjdS(Nt project_nametversionR5tanys.egg(RR>R?R5R$Rtegg_name(R*((s4/usr/lib/python2.7/site-packages/setuptools/wheel.pyRAJs$c stj|jd|j|jf}d|d|fd}|d}|d}t|jd}td|kotd knstd |ntj |j |tj j |t j|d t|d tttjfd jD}tj j |d}tj|tjtj j |dtj j |dtdtdd|} t| jddtj j |dtj j |tj j d} tj j| rtj j |dd} tj | xstj| D]b} | jdrtjtj j | | q\tjtj j | | tj j | | q\Wtj| nx:t tj jfdd!DD]} t!| |qWtj jr1tjntj j |d}tj j|rt"|}|j#j$}WdQXx|D]}tj j ||j$d}tj j |d}tj j|rtj j| rt"|d }|j%t&WdQXqqWnWdQXdS("s"Install wheel as an egg directory.s%s-%ss %s.dist-infos%s.datacscjd|fD}tr7|jjdn |j}tjjj|SWdQXdS(Ns%s/%ssutf-8(topenRtreadtdecodetemailtparsertParsertparsestr(tnametfptvalue(t dist_infotzf(s4/usr/lib/python2.7/site-packages/setuptools/wheel.pyt get_metadataVs'tWHEELtMETADATAs Wheel-Versions1.0s2.0dev0s$unsupported wheel format version: %stmetadatacSsd|_t|S(N(R$tmarkertstr(treq((s4/usr/lib/python2.7/site-packages/setuptools/wheel.pytraw_reqls c sJi|]@}ttfdtj|fD|qS(c3s!|]}|kr|VqdS(N((R7RT(tinstall_requires(s4/usr/lib/python2.7/site-packages/setuptools/wheel.pys rs(Rtsortedtmaptrequires(R7textra(tdistRVRU(s4/usr/lib/python2.7/site-packages/setuptools/wheel.pys qs sEGG-INFOsPKG-INFOtattrsRVtextras_requiretegg_infos requires.txttscriptss.pycc3s$|]}tjj|VqdS(N(RR R (R7R(t dist_data(s4/usr/lib/python2.7/site-packages/setuptools/wheel.pys stdatatheaderstpurelibtplatlibsnamespace_packages.txtNR/s __init__.pytw(RaRbRcRd('tzipfiletZipFileR&R>R?RtgetR%Rtmkdirt extractallR R Rt from_locationRRRWRXRYtextrastrenametSetuptoolsDistributiontdictRtget_command_objR$RtlistdirtendswithtunlinkRtfilterR RBRCR3twritetNAMESPACE_PACKAGE_INIT(R*tdestination_eggdirt dist_basenameRNtwheel_metadatat dist_metadatat wheel_versionR]R^t setup_disttdist_data_scriptstegg_info_scriptstentryRtnamespace_packagesRJtmodtmod_dirtmod_init((R[R`RLRVRURMs4/usr/lib/python2.7/site-packages/setuptools/wheel.pytinstall_as_eggPsr    (    !        %(t__name__t __module__R.R6R=RAR(((s4/usr/lib/python2.7/site-packages/setuptools/wheel.pyR!5s     (t__doc__tdistutils.utilRRER0RtreRft pkg_resourcesRRRtsetuptools.extern.sixRt setuptoolsRnRtsetuptools.command.egg_infoRtcompiletVERBOSER+R"RvR tobjectR!(((s4/usr/lib/python2.7/site-packages/setuptools/wheel.pyts"      usr/lib/python2.7/site-packages/pip/wheel.pyc000064400000061531151027767400015043 0ustar00 abc @@s dZddlmZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddl Z ddl Z ddl Z ddlZddlZddlZddlmZddlmZddlmZddlZddlmZddlmZmZdd lmZmZm Z dd l!m"Z"m#Z#dd lm$Z$dd l%m&Z&m'Z'm(Z(m)Z)m*Z*dd l+m,Z,ddl-m.Z.ddl/m0Z0ddl1m2Z2ddl3m4Z4ddl5m6Z6ddl7m8Z8dZ9ddfZ:ej;e<Z=de>fdYZ?dZ@dZAddd>dZBdZCdZDe jEde jFZGd ZHd!ZIeJeKeKeLeKeJeKeKd"ZMd#ZNeNd$ZOd%ZPd&ZQd'e>fd(YZRd)e>fd*YZSdS(+sH Support for installing and building the "wheel" binary package format. i(tabsolute_importN(turlsafe_b64encode(tParser(tStringIO(t expanduser(t path_to_urlt unpack_url(tInstallationErrortInvalidWheelFilenametUnsupportedWheel(tdistutils_schemetPIP_DELETE_MARKER_FILENAME(t pep425tags(tcall_subprocesst ensure_dirtcaptured_stdouttrmtreet read_chunks(t open_spinner(t indent_log(tSETUPTOOLS_SHIM(t ScriptMaker(t pkg_resources(tcanonicalize_name(t configparsers.whlit WheelCachecB@s eZdZdZdZRS(s&A cache of wheels for future installs.cC@s(|rt|nd|_||_dS(sCreate a wheel cache. :param cache_dir: The root of the cache. :param format_control: A pip.index.FormatControl object to limit binaries being read from the cache. N(RtNonet _cache_dirt_format_control(tselft cache_dirtformat_control((s-/usr/lib/python2.7/site-packages/pip/wheel.pyt__init__8scC@st|j||j|S(N(t cached_wheelRR(Rtlinkt package_name((s-/usr/lib/python2.7/site-packages/pip/wheel.pyR!Bs(t__name__t __module__t__doc__R R!(((s-/usr/lib/python2.7/site-packages/pip/wheel.pyR5s cC@s|jg}|jdk rO|jdk rO|jdj|j|jgndj|}tj|jj }|d |dd!|dd!|dg}t j j|d|S(s Return a directory to store cached wheels in for link. Because there are M wheels for any one sdist, we provide a directory to cache them in, and then consult that directory when looking up cache hits. We only insert things into the cache if they have plausible version numbers, so that we don't contaminate the cache with things that were not unique. E.g. ./package might have dozens of installs done for it and build a version of 0.0...and if we built and cached a wheel, we'd end up using the same wheel even if the source has been edited. :param cache_dir: The cache_dir being used by pip. :param link: The link of the sdist for which this will cache wheels. t=t#iiitwheelsN( turl_without_fragmentt hash_nameRthashtappendtjointhashlibtsha224tencodet hexdigesttostpath(RR"t key_partstkey_urlthashedtparts((s-/usr/lib/python2.7/site-packages/pip/wheel.pyt_cache_for_linkGs %(c C@ss|s |S|s|S|jr!|S|js.|S|s8|St|}tjj||}d|kri|St||}ytj|}Wn5t k r}|j t j t j fkr|SnXg} x`|D]X} yt | } Wntk rqnX| jsqn| j| j| fqW| s6|S| jtjj|| dd} tjjt| S(Ntbinaryii(tis_wheelt is_artifactRtpiptindextfmt_ctl_formatsR9R3tlistdirtOSErrorterrnotENOENTtENOTDIRtWheelRt supportedR-tsupport_index_mintsortR4R.tLinkR( RR"RR#tcanonical_nametformatstroott wheel_namestet candidatest wheel_nametwheelR4((s-/usr/lib/python2.7/site-packages/pip/wheel.pyR!psF        tsha256icC@stj|}d}t|dA}x7t|d|D]#}|t|7}|j|q:WWdQXdt|jjdj d}||fS(s6Return (hash, length) for path using hashlib.new(algo)itrbtsizeNssha256=tlatin1R'( R/tnewtopenRtlentupdateRtdigesttdecodetrstrip(R4talgot blocksizethtlengthtftblockRZ((s-/usr/lib/python2.7/site-packages/pip/wheel.pytrehashscC@sItjddkr"i}d}nidd6}d}t||||S(Niitbttnewline(tsyst version_infoRW(tnametmodetnltbin((s-/usr/lib/python2.7/site-packages/pip/wheel.pyt open_for_csvs   cC@stjj|rt|dd}|j}|jdsCtStjj tj }d|tj j d}|j }WdQXt|d!}|j ||j |WdQXtSdS(sLReplace #!python with #!/path/to/python Return True if file was changed.RSs#!pythons#!tasciiNtwb(R3R4tisfileRWtreadlinet startswithtFalseRgt executableR1tgetfilesystemencodingtlineseptreadtwritetTrue(R4tscriptt firstlinetexenametrest((s-/usr/lib/python2.7/site-packages/pip/wheel.pyt fix_scripts  sZ^(?P(?P.+?)(-(?P\d.+?))?) \.dist-info$cC@s|jdd}xtj|D]}tj|}|r"|jd|kr"ttjj||d:}x0|D](}|j j }|dkrzt SqzWWdQXq"q"Wt S(sP Return True if the extracted wheel in wheeldir should go into purelib. t-t_RitWHEELsroot-is-purelib: trueN( treplaceR3R@t dist_info_retmatchtgroupRWR4R.tlowerR\RyRs(Ritwheeldirt name_foldedtitemRRQtline((s-/usr/lib/python2.7/site-packages/pip/wheel.pytroot_is_purelibs!  cC@stjj|siifSt|N}t}x.|D]&}|j|j|jdq;W|jdWdQXtj }d|_ |j |i}i}|j drt |jd}n|j drt |jd}n||fS(Ns icS@s|S(N((toption((s-/usr/lib/python2.7/site-packages/pip/wheel.pytRetconsole_scriptst gui_scripts(R3R4texistsRWRRxtstriptseekRtRawConfigParsert optionxformtreadfpt has_sectiontdicttitems(tfilenametfptdataRtcptconsoletgui((s-/usr/lib/python2.7/site-packages/pip/wheel.pytget_entrypointss$      c ,@s+|s3t|d|d|d|d|d| }nt| rO|dn |dgg jtjjtjj} itg} |rt@} tj +tj dt j | d t d t Wd QXWd QXtj| jnd t fd  d d  fd}|| t sktd tjjdd}t|\fd}xD]}d }d }xtjtjj |D]e}d }|dkrt}|}ntjj ||} ||}|| |td|d|qWqWtd |dt _td0_t _ fd}|_d_jdd }|rdtjkrd|}| j j!|ntjj"dddkr:dt#j$d |f}| j j!|ndt#j$d |f}| j j!|gD]}t%j&d |rn|^qn}x|D] }|=qWnjd!d }|rjdtjkrd"|}| j j!|nd#t#j$d |f}| j j!|gD]}t%j&d$|r+|^q+}x|D] }|=qVWnt'dkr| j j(gj)D]}d%|^qnt'dkr| j j(gj)D]}d%|^qit d&6ntjjdd'}tjjdd(}t*|d)} | j+d*Wd QXt,j-||| j.|tjjdd+}!tjjdd,}"t/|!d-\}#t/|"d.D}$t0j1|#}%t0j2|$}&xj|%D]b}'j|'d|'d|'d<|'dkrHt3|'d\|'d<|'d/j|ndS(s6Map archive RECORD paths to installation RECORD paths.N(tadd(tsrcfiletdestfiletmodifiedtoldpathtnewpath(tchangedt installedtlib_dirRR(s-/usr/lib/python2.7/site-packages/pip/wheel.pytrecord_installeds  c@st|xztj|D]i\}}}|t|jtjj}tjj||} |r|jtjjddj drqnx|D]} tjj||| } |r|dkr| j drj | qq|r| j drt | j t j r sBtd| ddjj | qqWx*|D]"} |r{|| r{q]ntjj|| } tjj||| }t| tj| |tj| }ttdrtj||j|jfntj| tjrTtj| }|jtjBtjBtjB}tj||nt}|ro||}n| ||q]WqWdS( Niis.dataRes .dist-infos!Multiple .dist-info directories: s, tutime(RR3twalkRXtlstripR4RR.tsplittendswithR-RRrRitAssertionErrortshutiltcopyfiletstatthasattrRtst_atimetst_mtimetaccesstX_OKtst_modetS_IXUSRtS_IXGRPtS_IXOTHtchmodRs(tsourcetdesttis_basetfixertfiltertdirtsubdirstfilestbasedirtdestdirtst destsubdirRaRRtstt permissionsR(t data_dirstinfo_dirRtreq(s-/usr/lib/python2.7/site-packages/pip/wheel.pytclobbersJ + !      s!%s .dist-info directory not foundisentry_points.txtc@s|jjdr"|d }nJ|jjdrD|d }n(|jjdrf|d }n|}|kp|kS(Ns.exeis -script.pyis.pya(RR(Rit matchname(RR(s-/usr/lib/python2.7/site-packages/pip/wheel.pytis_entrypoint_wrapperas   tscriptsRRRec@s^|jdkr(td|fnji|jd6|jjddd6|jd6S(NsInvalid script entry point: %s for req: %s - A callable suffix is required. Cf https://packaging.python.org/en/latest/distributing.html#console-scripts for more information.tmodulet.it import_nametfunc(tsuffixRRtscript_templateRR(tentry(tmakerR(s-/usr/lib/python2.7/site-packages/pip/wheel.pyt_get_script_texts  s# -*- coding: utf-8 -*- import re import sys from %(module)s import %(import_name)s if __name__ == '__main__': sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0]) sys.exit(%(func)s()) R=tENSUREPIP_OPTIONSspip = t altinstalls pip%s = %siispip(\d(\.\d)?)?$t easy_installseasy_install = seasy_install-%s = %sseasy_install(-\d\.\d)?$s%s = %sRt INSTALLERs INSTALLER.pipRospip tRECORDs RECORD.piptrsw+i(Re(7R RR\R3R4RtsetRtwarningstcatch_warningstfilterwarningst compileallt compile_dirRytloggertdebugtgetvalueRsRRR.RR@R~RRtvariantstset_modeRRtpoptenvirontextendtmaketgetRgtversiontreRRXt make_multipleRRWRxRtmoveR-RmtcsvtreadertwriterRctwriterowRrR(,RiRRRRRLt pycompiletschemeRRtstrip_file_prefixRt generatedtstdoutRtep_fileRtdatadirRRtsubdirRRt pip_scripttspectktpip_epteasy_install_scriptteasy_install_eptkvt installerttemp_installertinstaller_filetrecordt temp_recordt record_int record_outRRtrowRaR_tlt final_path(( RRRRRRRRRRRRs-/usr/lib/python2.7/site-packages/pip/wheel.pytmove_wheel_filess       % ; %   $   # +  + 0   !  *c@s"tjfd}|S(Nc?@sHt}x8||D]'}||kr|j||VqqWdS(N(RR(targstkwtseenR(tfn(s-/usr/lib/python2.7/site-packages/pip/wheel.pytuniques    (t functoolstwraps(R%R&((R%s-/usr/lib/python2.7/site-packages/pip/wheel.pyt_uniquescc@sddlm}tj||jd}x|D]y}tjj|j|d}|V|j dr5tjj |\}}|d }tjj||d}|Vq5q5WdS(s Yield all the uninstallation paths for dist based on RECORD-without-.pyc Yield paths to all the files in RECORD. For each .py file in RECORD, add the .pyc in the same directory. UninstallPathSet.add() takes care of the __pycache__ .pyc. i(tFakeFileRs.pyis.pycN( t pip.utilsR*RRtget_metadata_linesR3R4R.tlocationRR(tdistR*RRR4tdnR%tbase((s-/usr/lib/python2.7/site-packages/pip/wheel.pytuninstallation_paths"s   cC@sygtjd|D] }|^qd}|jd}tj|}|dj}ttt |j d}|SWnt SXdS(s Return the Wheel-Version of an extracted wheel, if possible. Otherwise, return False if we couldn't parse / extract it. iRs Wheel-VersionRN( Rt find_on_pathRt get_metadataRtparsestrRttupletmaptintRRs(t source_dirtdR.t wheel_dataR((s-/usr/lib/python2.7/site-packages/pip/wheel.pyt wheel_version8s)cC@s|std|n|dtdkrXtd|djtt|fn1|tkrtjddjtt|ndS(s Raises errors or warns if called with an incompatible Wheel-Version. Pip should refuse to install a Wheel-Version that's a major series ahead of what it's compatible with (e.g 2.0 > 1.1); and warn when installing a version only minor version ahead (e.g 1.2 > 1.1). version: a 2-tuple representing a Wheel-Version (Major, Minor) name: name of wheel or package to raise exception about :raises UnsupportedWheel: when an incompatible Wheel-Version is given s(%s is in an unsupported or invalid wheelisB%s's Wheel-Version (%s) is not compatible with this version of pipRs*Installing from a newer Wheel-Version (%s)N(R tVERSION_COMPATIBLER.R6tstrRtwarning(RRi((s-/usr/lib/python2.7/site-packages/pip/wheel.pytcheck_compatibilityKs % REcB@sDeZdZejdejZdZddZ ddZ RS(s A wheel files^(?P(?P.+?)-(?P\d.*?)) ((-(?P\d.*?))?-(?P.+?)-(?P.+?)-(?P.+?) \.whl|\.dist-info)$c@sjj|}|s+td|n|_|jdjdd_|jdjdd_|jdjd_ |jdjd_ |jd jd_ t fd j D_ d S( sX :raises InvalidWheelFilename: when the filename is invalid for a wheel s!%s is not a valid wheel filename.RiRRtvertpyverRtabitplatc3@s>|]4}jD]$}jD]}|||fVqqqdS(N(tabistplats(t.0txtytz(R(s-/usr/lib/python2.7/site-packages/pip/wheel.pys sN(t wheel_file_reRRRRRRiRRt pyversionsRDRERt file_tags(RRt wheel_info((Rs-/usr/lib/python2.7/site-packages/pip/wheel.pyR ts cC@s]|dkrtj}ng|jD]!}||kr"|j|^q"}|rYt|SdS(s" Return the lowest index that one of the wheel's file_tag combinations achieves in the supported_tags list e.g. if there are 8 supported tags, and one of the file tags is first in the list, then return 0. Returns None is the wheel is not supported. N(RR tsupported_tagsRLR>tmin(Rttagstctindexes((s-/usr/lib/python2.7/site-packages/pip/wheel.pyRGs  1cC@s4|dkrtj}ntt|j|jS(s'Is this wheel supported on this system?N(RR RNtboolRt intersectionRL(RRP((s-/usr/lib/python2.7/site-packages/pip/wheel.pyRFs  N( R$R%R&RtcompiletVERBOSERJR RRGRF(((s-/usr/lib/python2.7/site-packages/pip/wheel.pyREhs   t WheelBuildercB@sSeZdZdddZddZdZddZdZe dZ RS(s#Build wheels from a RequirementSet.cC@sO||_||_|jj|_|j|_|p6g|_|pEg|_dS(N( trequirement_settfindert _wheel_cacheRt _cache_roottwheel_download_dirt _wheel_dirt build_optionstglobal_options(RRXRYR^R_((s-/usr/lib/python2.7/site-packages/pip/wheel.pyR s    cC@stjd}z|j||d|ry_tj|d}tjj||}tjtjj|||t j d||SWqqXn|j |dSWdt |XdS(siBuild one wheel. :return: The filename of the built wheel, or None if the build failed. s pip-wheel-t python_tagisStored in directory: %sN(ttempfiletmkdtempt_WheelBuilder__build_oneR3R@R4R.RRRtinfot _clean_oneRR(RRt output_dirR`ttempdRPt wheel_path((s-/usr/lib/python2.7/site-packages/pip/wheel.pyt _build_ones cC@s'tjddt|jgt|jS(Ns-us-c(RgRtRtsetup_pytlistR_(RR((s-/usr/lib/python2.7/site-packages/pip/wheel.pyt_base_setup_argss  c C@s|j|}d|jf}t|}tjd||dd|g|j}|dk rw|d|g7}ny't|d|jdt d|t SWn(|j d tj d |jt SXWdQXdS( Ns#Running setup.py bdist_wheel for %ssDestination directory: %st bdist_wheels-ds --python-tagtcwdt show_stdouttspinnerterrorsFailed building wheel for %s( RlRiRRRR^RR t setup_py_dirRsRytfinishRq(RRRgR`t base_argst spin_messageRpt wheel_args((s-/usr/lib/python2.7/site-packages/pip/wheel.pyt __build_ones   cC@su|j|}tjd|j|ddg}y!t|d|jdttSWntjd|jtSXdS(NsRunning setup.py clean for %stcleans--allRnRos Failed cleaning build dir for %s( RlRRdRiR R8RsRyRq(RRRtt clean_args((s-/usr/lib/python2.7/site-packages/pip/wheel.pyResc C@s|js|r|jst|jj|j|jjj}g}x!|D]}|jreqPn|j r|sit j d|j qiqP|r|j rqP|r|jr|jj rqP|r|j rqP|r\|j}|j\}}tjj|d |d krqPndtjj|jjt|j kr\t j d|j qPq\n|j|qPW|swtSt j ddjg|D]}|j ^qtgg}} x|D]{}d } |rAtj} t|j|j} yt | WqJt!k r=} t j"d|j | | j|qqJXn |j} |j#|| d| } | r2|j||r?|jrt$j%j&t$j%j|jt' rtdn|j(|j)|jj*|_tjj+t,| |_|jj stt-|j|jd t.d |jj/q?q| j|qWWd QX|rt j d d jg|D]}|j ^qen| rt j d d jg| D]}|j ^qnt0| dkS(sBuild wheels. :param unpack: If True, replace the sdist we built from with the newly built wheel, in preparation for installation. :return: True if all the wheels built correctly. s(Skipping %s, due to already being wheel.R:sCSkipping bdist_wheel for %s, due to binaries being disabled for it.s*Building wheels for collected packages: %ss, s Building wheel for %s failed: %sR`sbad source dir - missing markertsessionNsSuccessfully built %st sFailed to build %si(1R]R[RRXt prepare_filesRYt requirementstvaluest constraintR;RRdRiteditableR"R<R8tsplitextR=R>tegg_info_matchesRR?RRR-RyR.RR timplementation_tagR9RRAR>RiR3R4RR tremove_temporary_sourcetbuild_locationt build_dirRIRRRsRzRX(Rt autobuildingtreqsettbuildsetRR"R0textt build_successt build_failureR`RfRNt wheel_file((s-/usr/lib/python2.7/site-packages/pip/wheel.pytbuilds        &               ))N( R$R%R&RR RiRlRcReRsR(((s-/usr/lib/python2.7/site-packages/pip/wheel.pyRWs     (TR&t __future__RRRRBR'R/tloggingR3tos.pathRRRRgRaRtbase64Rt email.parserRtpip._vendor.sixRR=t pip.compatRt pip.downloadRRtpip.exceptionsRRR t pip.locationsR R R R+R RRRRt pip.utils.uiRtpip.utils.loggingRtpip.utils.setuptools_buildRtpip._vendor.distlib.scriptsRt pip._vendorRtpip._vendor.packaging.utilsRtpip._vendor.six.movesRt wheel_extR<t getLoggerR$RtobjectRR9R!RcRmR~RURVRRRRsRRyR!R)R1R;R?RERW(((s-/usr/lib/python2.7/site-packages/pip/wheel.pytsl               (  ) '    &   7usr/lib/python2.7/site-packages/pip/commands/wheel.pyc000064400000014336151031112140016621 0ustar00 abc@@sddlmZddlZddlZddlZddlmZddlmZm Z ddl m Z ddl m Z ddlmZddlmZdd lmZmZdd lmZejeZd efd YZdS( i(tabsolute_importN(tRequirementCommand(t CommandErrortPreviousBuildDirError(tRequirementSet(timport_or_raise(tBuildDirectory(tRemovedInPip10Warning(t WheelCachet WheelBuilder(t cmdoptionst WheelCommandcB@s;eZdZdZdZdZdZdZdZRS(s Build Wheel archives for your requirements and dependencies. Wheel is a built-package format, and offers the advantage of not recompiling your software during every install. For more details, see the wheel docs: https://wheel.readthedocs.io/en/latest/ Requirements: setuptools>=0.8, and wheel. 'pip wheel' uses the bdist_wheel setuptools extension from the wheel package to build individual wheels. twheels %prog [options] ... %prog [options] -r ... %prog [options] [-e] ... %prog [options] [-e] ... %prog [options] ...s$Build wheels from your requirements.c O@stt|j|||j}|jdddddddtjdd |jtj|jtj |jtj |jtj |jd dd dd d ddd|jtj |jtj |jtj|jtj|jtj|jtj|jtj|jdddd ddd dd|jdd ddtdd|jtj|jtjtjtj|j}|jjd||jjd|dS(Ns-ws --wheel-dirtdestt wheel_dirtmetavartdirtdefaultthelpsLBuild wheels into , where the default is the current working directory.s--build-optiont build_optionstoptionstactiontappends9Extra arguments to be supplied to 'setup.py bdist_wheel'.s--global-optiontglobal_optionssZExtra global options to be supplied to the setup.py call before the 'bdist_wheel' command.s--pret store_truesYInclude pre-release and development versions. By default, pip only finds stable versions.i(tsuperR t__init__tcmd_optst add_optiontostcurdirR t use_wheelt no_use_wheelt no_binaryt only_binaryt constraintsteditablet requirementstsrctignore_requires_pythontno_depst build_dirtFalsetno_cleantrequire_hashestmake_option_groupt index_grouptparsertinsert_option_group(tselftargstkwRt index_opts((s6/usr/lib/python2.7/site-packages/pip/commands/wheel.pyR.sV    cC@sDtdtdtdtd}t|ds@tdndS(Nswheel.bdist_wheelsM'pip wheel' requires the 'wheel' package. To fix this, run: pip install wheelt pkg_resourcessp'pip wheel' requires setuptools >= 0.8 for dist-info support. To fix this, run: pip install --upgrade setuptoolstDistInfoDistribution(RRthasattr(R1R5((s6/usr/lib/python2.7/site-packages/pip/commands/wheel.pytcheck_required_packageshs c C@s||jtj|tj||jr@tjdtn|jr\tjdtn|j rxtjdtn|j g|j }|j rt jddj|g}n|jrtjj|j|_ntjj|j|_|j|u}|j||}|jp%|j }t|j|j}t|jd|}td|d|jd dd |jd td |j d |j!d|d|d|j"d|j# } |j$| |||||j%|| j&sdSzpyLt'| |d|j(pgd|j)pg} | j*s0t+dnWnt,k rPt|_nXWd|jsk| j-nXWdQXWdQXdS(Ns--allow-external has been deprecated and will be removed in the future. Due to changes in the repository protocol, it no longer has any effect.s--allow-all-external has been deprecated and will be removed in the future. Due to changes in the repository protocol, it no longer has any effect.s--allow-unverified has been deprecated and will be removed in the future. Due to changes in the repository protocol, it no longer has any effect.sIgnoring indexes: %st,tdeleteR)tsrc_dirt download_dirtignore_dependenciestignore_installedR'tisolatedtsessiont wheel_cachetwheel_download_dirR,RRs"Failed to build one or more wheels(.R8R tresolve_wheel_no_use_binarytcheck_install_build_globaltallow_externaltwarningstwarnRtallow_all_externaltallow_unverifiedt index_urltextra_index_urlstno_indextloggertdebugtjoinR)RtpathtabspathR;t_build_sessiont_build_package_finderR+Rt cache_dirtformat_controlRRtNoneR=tTrueR't isolated_modeRR,tpopulate_requirement_settnamethas_requirementsR RRtbuildRRt cleanup_files( R1RR2t index_urlsR@tfindert build_deleteRAR)trequirement_settwb((s6/usr/lib/python2.7/site-packages/pip/commands/wheel.pytrun|sx                          ( t__name__t __module__t__doc__RZtusagetsummaryRR8Rc(((s6/usr/lib/python2.7/site-packages/pip/commands/wheel.pyR s  : (t __future__RtloggingRRFtpip.basecommandRtpip.exceptionsRRtpip.reqRt pip.utilsRtpip.utils.buildRtpip.utils.deprecationRt pip.wheelRR tpipR t getLoggerRdRMR (((s6/usr/lib/python2.7/site-packages/pip/commands/wheel.pyts   usr/lib/python2.7/site-packages/pip/_vendor/distlib/wheel.pyc000064400000074665151031566700020140 0ustar00 abc@sddlmZddlZddlZddlZddlZddlmZddl Z ddl Z ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlZddlZddlmZmZddlmZmZmZmZmZddlmZddlm Z m!Z!dd l"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+dd l,m-Z-m.Z.e j/e0Z1e2a3e4ed rd Z5n9ej6j7d rdZ5nej6dkrdZ5ndZ5ej8dZ9e9 rdej:d Z9nde9Z;e5e9Z<ej"j=j>ddj>ddZ?ej8dZ@e@oze@j7dre@j>ddZ@ndZAeAZ@[AejBdejCejDBZEejBdejCejDBZFejBdZGejBdZHd ZId!ZJe jKd"kr$d#ZLn d$ZLd%eMfd&YZNeNZOd'eMfd(YZPd)ZQeQZR[Qe2d*ZSdS(+i(tunicode_literalsN(tmessage_from_filei(t __version__tDistlibException(t sysconfigtZipFiletfsdecodet text_typetfilter(tInstalledDistribution(tMetadatatMETADATA_FILENAME( t FileOperatort convert_patht CSVReadert CSVWritertCachetcached_propertytget_cache_baset read_exportsttempdir(tNormalizedVersiontUnsupportedVersionErrorupypy_version_infouppujavaujyucliuipucpupy_version_nodotu%s%siupyu-u_u.uSOABIucpython-cCs|dtg}tjdr+|jdntjdrJ|jdntjddkro|jdnd j|S( NucpuPy_DEBUGudu WITH_PYMALLOCumuPy_UNICODE_SIZEiuuu(t VER_SUFFIXRtget_config_vartappendtjoin(tparts((s=/usr/lib/python2.7/site-packages/pip/_vendor/distlib/wheel.pyt _derive_abi;s uz (?P[^-]+) -(?P\d+[^-]*) (-(?P\d+[^-]*))? -(?P\w+\d+(\.\w+\d+)*) -(?P\w+) -(?P\w+(\.\w+)*) \.whl$ u7 (?P[^-]+) -(?P\d+[^-]*) (-(?P\d+[^-]*))?$ s \s*#![^\r\n]*s^(\s*#!("[^"]+"|\S+))\s+(.*)$s#!pythons #!pythonwu/cCs|S(N((to((s=/usr/lib/python2.7/site-packages/pip/_vendor/distlib/wheel.pyt]tcCs|jtjdS(Nu/(treplacetostsep(R((s=/usr/lib/python2.7/site-packages/pip/_vendor/distlib/wheel.pyR_RtMountercBs8eZdZdZdZddZdZRS(cCsi|_i|_dS(N(t impure_wheelstlibs(tself((s=/usr/lib/python2.7/site-packages/pip/_vendor/distlib/wheel.pyt__init__cs cCs!||j|<|jj|dS(N(R$R%tupdate(R&tpathnamet extensions((s=/usr/lib/python2.7/site-packages/pip/_vendor/distlib/wheel.pytaddgs cCsI|jj|}x0|D](\}}||jkr|j|=qqWdS(N(R$tpopR%(R&R)R*tktv((s=/usr/lib/python2.7/site-packages/pip/_vendor/distlib/wheel.pytremovekscCs"||jkr|}nd}|S(N(R%tNone(R&tfullnametpathtresult((s=/usr/lib/python2.7/site-packages/pip/_vendor/distlib/wheel.pyt find_moduleqs cCs|tjkrtj|}nx||jkrAtd|ntj||j|}||_|jdd}t|dkr|d|_ n|S(Nuunable to find extension for %su.ii( tsystmodulesR%t ImportErrortimpt load_dynamict __loader__trsplittlent __package__(R&R1R3R((s=/usr/lib/python2.7/site-packages/pip/_vendor/distlib/wheel.pyt load_modulexs N(t__name__t __module__R'R+R/R0R4R>(((s=/usr/lib/python2.7/site-packages/pip/_vendor/distlib/wheel.pyR#bs     tWheelcBseZdZdZdZdeedZedZ edZ edZ e dZ dZe d Zd Zdd Zd Zd ZdZdddZdZdZdZdZdZedZdZdZddZRS(u@ Class to build and install from Wheel files (PEP 427). iusha256cCs||_||_d|_tg|_dg|_dg|_tj|_ |dkr{d|_ d|_ |j |_nEtj|}|r|jd}|d|_ |djdd |_ |d |_|j |_ntjj|\}}tj|}|s!td |n|r?tjj||_ n||_|jd}|d|_ |d|_ |d |_|d jd |_|djd |_|djd |_dS(uB Initialise an instance using a (valid) filename. uunoneuanyudummyu0.1unmuvnu_u-ubnuInvalid name or filename: %rupyu.ubiuarN(tsignt should_verifytbuildvertPYVERtpyvertabitarchR!tgetcwdtdirnameR0tnametversiontfilenamet _filenametNAME_VERSION_REtmatcht groupdictR R2tsplitt FILENAME_RERtabspath(R&RMRBtverifytmtinfoRJ((s=/usr/lib/python2.7/site-packages/pip/_vendor/distlib/wheel.pyR'sB                cCs|jrd|j}nd}dj|j}dj|j}dj|j}|jjdd}d|j|||||fS(uJ Build and return a filename from the various components. u-uu.u_u%s-%s%s-%s-%s-%s.whl(RDRRFRGRHRLR RK(R&RDRFRGRHRL((s=/usr/lib/python2.7/site-packages/pip/_vendor/distlib/wheel.pyRMs cCs+tjj|j|j}tjj|S(N(R!R2RRJRMtisfile(R&R2((s=/usr/lib/python2.7/site-packages/pip/_vendor/distlib/wheel.pytexistssccsNxG|jD]<}x3|jD](}x|jD]}|||fVq*WqWq WdS(N(RFRGRH(R&RFRGRH((s=/usr/lib/python2.7/site-packages/pip/_vendor/distlib/wheel.pyttagssc Cs8tjj|j|j}d|j|jf}d|}tjd}t |d}|j |}|dj dd}t g|D]}t |^q} | d krd} nt} yItj|| } |j| "} || } td | }WdQXWn!tk r-td | nXWdQX|S( Nu%s-%su %s.dist-infouutf-8uru Wheel-Versionu.iuMETADATAtfileobju$Invalid wheel, because %s is missing(ii(R!R2RRJRMRKRLtcodecst getreaderRtget_wheel_metadataRRttupletintR t posixpathtopenR tKeyErrort ValueError(R&R)tname_vertinfo_dirtwrappertzftwheel_metadatatwvtit file_versiontfntmetadata_filenametbftwfR3((s=/usr/lib/python2.7/site-packages/pip/_vendor/distlib/wheel.pytmetadatas( %    cCsud|j|jf}d|}tj|d}|j|(}tjd|}t|}WdQXt|S(Nu%s-%su %s.dist-infouWHEELuutf-8( RKRLRaRRbR\R]Rtdict(R&RhReRfRnRoRptmessage((s=/usr/lib/python2.7/site-packages/pip/_vendor/distlib/wheel.pyR^s cCsFtjj|j|j}t|d}|j|}WdQX|S(Nur(R!R2RRJRMRR^(R&R)RhR3((s=/usr/lib/python2.7/site-packages/pip/_vendor/distlib/wheel.pyRWsc Cstj|}|r|j}|| ||}}d|jkrQt}nt}tj|}|rd|jd}nd}||}||}ns|jd}|jd} |dks|| krd} n&|||d!d krd } nd} t| |}|S( Ntpythonwt iRs s iis ( t SHEBANG_RERPtendtlowertSHEBANG_PYTHONWtSHEBANG_PYTHONtSHEBANG_DETAIL_REtgroupstfind( R&tdataRVRwtshebangtdata_after_shebangtshebang_pythontargstcrtlftterm((s=/usr/lib/python2.7/site-packages/pip/_vendor/distlib/wheel.pytprocess_shebangs,      cCs|dkr|j}nytt|}Wn!tk rNtd|nX||j}tj|j dj d}||fS(NuUnsupported hash algorithm: %rt=uascii( R0t hash_kindtgetattrthashlibtAttributeErrorRtdigesttbase64turlsafe_b64encodetrstriptdecode(R&R~RthasherR3((s=/usr/lib/python2.7/site-packages/pip/_vendor/distlib/wheel.pytget_hashs   !cCs~t|}ttjj||}|j|ddf|jt|%}x|D]}|j|q]WWdQXdS(Nu( tlisttto_posixR!R2trelpathRtsortRtwriterow(R&trecordst record_pathtbasetptwritertrow((s=/usr/lib/python2.7/site-packages/pip/_vendor/distlib/wheel.pyt write_record's   cCsg}|\}}tt|j}xs|D]k\}} t| d} | j} WdQXd|j| } tjj| } |j || | fq+Wtjj |d} |j || |t tjj |d}|j || fdS(Nurbu%s=%suRECORD( RRRRbtreadRR!R2tgetsizeRRRR(R&RWtlibdirt archive_pathsRtdistinfoRfRtapRtfR~Rtsize((s=/usr/lib/python2.7/site-packages/pip/_vendor/distlib/wheel.pyt write_records0s c Cs\t|dtjA}x7|D]/\}}tjd|||j||qWWdQXdS(NuwuWrote %s to %s in wheel(Rtzipfilet ZIP_DEFLATEDtloggertdebugtwrite(R&R)RRhRR((s=/usr/lib/python2.7/site-packages/pip/_vendor/distlib/wheel.pyt build_zip@sc! s|dkri}nttfdd$d}|dkrgd}tg}tg}tg}n!d}tg}dg}dg}|jd ||_|jd ||_ |jd ||_ |} d |j |j f} d | } d| } g} xKd%D]C}|kr qn|}t jj|rx t j|D]\}}}x|D]}tt jj||}t jj||}tt jj| ||}| j||f|dkrb|jd rbt|d}|j}WdQX|j|}t|d}|j|WdQXqbqbWqLWqqW| }d}xt j|D]\}}}||krxUt|D]G\}}t|}|jdrt jj||}||=PqqW|stdnxl|D]d}t|jd&rqnt jj||}tt jj||}| j||fqWqkWt j|}xf|D]^}|d'kr|tt jj||}tt jj| |}| j||fq|q|Wd|p|jdtd |g}x4|j D])\}}}|jd!|||fq Wt jj|d}t|d"}|jd#j|WdQXtt jj| d}| j||f|j!|| f| | t jj|j"|j#} |j$| | | S((u Build a wheel from files in specified paths, and use any specified tags when determining the name of the wheel. cs |kS(N((R(tpaths(s=/usr/lib/python2.7/site-packages/pip/_vendor/distlib/wheel.pyRNRupurelibuplatlibiufalseutrueunoneuanyupyveruabiuarchu%s-%su%s.datau %s.dist-infoudatauheadersuscriptsu.exeurbNuwbu .dist-infou(.dist-info directory expected, not foundu.pycu.pyouRECORDu INSTALLERuSHAREDuWHEELuWheel-Version: %d.%duGenerator: distlib %suRoot-Is-Purelib: %su Tag: %s-%s-%suwu (upurelibuplatlib(udatauheadersuscripts(u.pycu.pyo(uRECORDu INSTALLERuSHAREDuWHEEL(%R0RRtIMPVERtABItARCHREtgetRFRGRHRKRLR!R2tisdirtwalkRRRRRtendswithRbRRRt enumeratetAssertionErrortlistdirt wheel_versionRRZRRJRMR(!R&RRZRtlibkeytis_puret default_pyvert default_abit default_archRRetdata_dirRfRtkeyR2troottdirstfilesRmRtrpRRR~RRktdnRiRFRGRHR)((Rs=/usr/lib/python2.7/site-packages/pip/_vendor/distlib/wheel.pytbuildFs  "              %      cCKs |j}|jd}|jdt}tjj|j|j}d|j|j f}d|} d|} t j| t } t j| d} t j| d} t j d}t|d }|j| }||}t|}Wd QX|d jd d }tg|D]}t|^q}||jkrY|rY||j|n|ddkrv|d}n |d}i}|j| D}td|,}x"|D]}|d}||||jd.}6|6r|6jd/}6nWd QXWnt1k rt+j2d0nX|6r|6jd1i}>|6jd2i}?|>s|?r|jdd}@tjj?|@st@d3n|@|_xF|>jAD]8\}:}<d4|:|<f}A|j4|A}4|j5|4q(W|?ritd(6}BxL|?jAD];\}:}<d4|:|<f}A|j4|A|B}4|j5|4qWqqntjj|| }tB|}5tC|}|d=|d=||d5<|5jD||}|r9 |!j/|n|5jE|!|d6||5SWn+t1k r t+jFd7|jGnXWd tHjI|"XWd QXd S(9u Install a wheel to the specified paths. If kwarg ``warner`` is specified, it should be a callable, which will be called with two tuples indicating the wheel version of this software and the wheel version in the file, if there is a discrepancy in the versions. This can be used to issue any warnings to raise any exceptions. If kwarg ``lib_only`` is True, only the purelib/platlib files are installed, and the headers, scripts, data and dist-info metadata are not written. The return value is a :class:`InstalledDistribution` instance unless ``options.lib_only`` is True, in which case the return value is ``None``. uwarnerulib_onlyu%s-%su%s.datau %s.dist-infouWHEELuRECORDuutf-8urNu Wheel-Versionu.iuRoot-Is-Purelibutrueupurelibuplatlibtstreamiuuscriptstdry_runu /RECORD.jwsiusize mismatch for %su=udigest mismatch for %sulib_only: skipping %su.exeu/urbudigest mismatch on write for %su.pyuByte-compilation failedtexc_infoulib_only: returning Noneu1.0uentry_points.txtuconsoleuguiu %s_scriptsuwrap_%su%s:%su %suAUnable to read legacy script metadata, so cannot generate scriptsu extensionsupython.commandsu8Unable to read JSON metadata, so cannot generate scriptsu wrap_consoleuwrap_guiuValid script path not specifiedu%s = %sulibuprefixuinstallation failed.(uconsoleugui(JRRtFalseR!R2RRJRMRKRLRaR R\R]RRbRRRR_R`RRR tTruetrecordR5tdont_write_bytecodettempfiletmkdtempt source_dirR0t target_dirtinfolistt isinstanceRRRtstrt file_sizeRRRt startswithRRR t copy_streamRt byte_compilet Exceptiontwarningtbasenametmaketset_executable_modetextendRWRtvaluestprefixtsuffixtflagstjsontloadRRdtitemsR Rrtwrite_shared_locationstwrite_installed_filest exceptiontrollbacktshutiltrmtree(CR&RtmakertkwargsRtwarnertlib_onlyR)ReRRft metadata_nametwheel_metadata_namet record_nameRgRhtbwfRpRsRjRkRlRRRotreaderRRtdata_pfxtinfo_pfxt script_pfxtfileoptbctoutfilestworkdirtzinfotarcnamet u_arcnametkindtvalueR~t_Rt is_scripttwhereRtoutfilet newdigesttpycRmtworknameRt filenamestdisttcommandsteptepdataRR-tdR.tstconsole_scriptst gui_scriptst script_dirtscripttoptions((s=/usr/lib/python2.7/site-packages/pip/_vendor/distlib/wheel.pytinstallsD    %            #   "                            cCsGtdkrCtjjttdtjd }t |antS(Nu dylib-cachei( tcacheR0R!R2RRRR5RLR(R&R((s=/usr/lib/python2.7/site-packages/pip/_vendor/distlib/wheel.pyt_get_dylib_caches  c Cstjj|j|j}d|j|jf}d|}tj|d}tj d}g}t |dw}y\|j |G}||} t j | } |j} | j|} tjj| j| } tjj| stj| nx| jD]\}}tjj| t|}tjj|sHt}nQtj|j}tjj|}|j|}tj|j}||k}|r|j|| n|j||fqWWdQXWntk rnXWdQX|S(Nu%s-%su %s.dist-infou EXTENSIONSuutf-8ur( R!R2RRJRMRKRLRaR\R]RRbRRRt prefix_to_dirRRtmakedirsRR RYRtstattst_mtimetdatetimet fromtimestamptgetinfot date_timetextractRRc(R&R)ReRfRRgR3RhRoRpR*RRt cache_baseRKRtdestRt file_timeRWt wheel_time((s=/usr/lib/python2.7/site-packages/pip/_vendor/distlib/wheel.pyt_get_extensionss>     !  cCs t|S(uM Determine if a wheel is compatible with the running system. (t is_compatible(R&((s=/usr/lib/python2.7/site-packages/pip/_vendor/distlib/wheel.pyR%scCstS(uP Determine if a wheel is asserted as mountable by its metadata. (R(R&((s=/usr/lib/python2.7/site-packages/pip/_vendor/distlib/wheel.pyt is_mountablescCs tjjtjj|j|j}|jsLd|}t|n|jsqd|}t|n|t jkrt j d|ns|rt jj |nt jj d||j}|rtt jkrt jj tntj||ndS(Nu)Wheel %s not compatible with this Python.u$Wheel %s is marked as not mountable.u%s already in pathi(R!R2RTRRJRMR%RR&R5RRRtinsertR$t_hookt meta_pathR+(R&RR)tmsgR*((s=/usr/lib/python2.7/site-packages/pip/_vendor/distlib/wheel.pytmounts"'     cCstjjtjj|j|j}|tjkrItjd|n]tjj ||t j krxt j |nt j st tj krtj j t qndS(Nu%s not in path( R!R2RTRRJRMR5RRR/R(R$R)(R&R)((s=/usr/lib/python2.7/site-packages/pip/_vendor/distlib/wheel.pytunmounts' cCstjj|j|j}d|j|jf}d|}d|}tj|t}tj|d}tj|d}t j d}t |d } | j |} || } t | } WdQX| djd d } tg| D]}t|^q}i}| j |D}td |,}x"|D]}|d }|||Fsu0Cannot update non-compliant (PEP-440) version %rR2tlegacyuVersion updated from %r to %r(R0RR}RRR`RRRRR RLRR R( RLR2tupdatedR.RkRRtmdR0((s=/usr/lib/python2.7/site-packages/pip/_vendor/distlib/wheel.pytupdate_version;s(   0 !     u%s-%su %s.dist-infouRECORDuruutf-8u..uinvalid entry in wheel: %rNRu.whlRu wheel-update-tdiruNot a directory: %r(R!R2RRJRMRKRLRaRRRRRRRRR R0RtmkstemptcloseRRRRRRtcopyfile(R&tmodifiertdest_dirRR.R3R)ReRfRRRhR-RRRR2toriginal_versionRtmodifiedtcurrent_versiontfdtnewpathRRRW((s=/usr/lib/python2.7/site-packages/pip/_vendor/distlib/wheel.pyR( sX           (iiN(R?R@t__doc__RRR0RR'tpropertyRMRYRZRRqR^RWRRRRRRRRR$R%R&R+R,RUR((((s=/usr/lib/python2.7/site-packages/pip/_vendor/distlib/wheel.pyRAs2)    h "    6cCstg}td}xGttjddddD](}|jdj|t|gq1Wg}xLtjD]>\}}}|j drp|j|j dddqpqpW|j t dkr|j dt n|jdg}tg}tjd kr=tjd t}|r=|j\} }}} t|}| g} | dkrg| jd n| dkr| jdn| dkr| jdn| dkr| jdn| dkr| jdnx`|dkr6x@| D]8} d| ||| f} | tkr|j| qqW|d8}qWq=nxH|D]@}x7|D]/} |jdjt|df|| fqQWqDWxwt|D]i\}}|jdjt|fddf|dkr|jdjt|dfddfqqWxwt|D]i\}}|jdjd|fddf|dkr|jdjd|dfddfqqWt|S(uG Return (pyver, abi, arch) tuples compatible with this Python. iiiuu.abiu.iunoneudarwinu(\w+)_(\d+)_(\d+)_(\w+)$ui386uppcufatux86_64ufat3uppc64ufat64uintelu universalu %s_%s_%s_%suanyupy(ui386uppc(ui386uppcux86_64(uppc64ux86_64(ui386ux86_64(ui386ux86_64uinteluppcuppc64(RtrangeR5t version_infoRRRR8t get_suffixesRRRRRR'RtplatformtreRPR|R`t IMP_PREFIXRtset(tversionstmajortminortabisRRR3tarchesRVRKRHtmatchesRPRRGRkRL((s=/usr/lib/python2.7/site-packages/pip/_vendor/distlib/wheel.pytcompatible_tagss`  $&$               1% 0% 0cCst|tst|}nt}|dkr9t}nxN|D]F\}}}||jkr@||jkr@||jkr@t}Pq@q@W|S(N( RRARR0tCOMPATIBLE_TAGSRFRGRHR(twheelRZR3tverRGRH((s=/usr/lib/python2.7/site-packages/pip/_vendor/distlib/wheel.pyR%s  -(Tt __future__RRR\Rtdistutils.utilt distutilstemailRRR8RtloggingR!RaRERR5RRRRRtcompatRRRRRtdatabaseR RqR R tutilR R RRRRRRRRLRRt getLoggerR?RR0RthasattrRFRDRRRRBRERt get_platformR RRRtcompilet IGNORECASEtVERBOSERSRORvR{RzRyR"RtobjectR#R(RARNROR%(((s=/usr/lib/python2.7/site-packages/pip/_vendor/distlib/wheel.pyts               (@     '   #  >