G_Tc@sdZddlmZddlmZddlmZmZddlmZmZm Z m Z ddl m Z m Z ddlmZmZddlmZdd lZdd lZdd lZdd lZdd lZdd lZdd lZdd lZdd lZdd lZdd lZdd lZdd lZdd l Z dd l!m"Z"m#Z#dd l$m%Z%dd l&m'Z'm(Z(dd l)m*Z*ddl+m,Z,ddl-m.Z.ddl-m/Z/ddl)m0Z0m1Z1ddl2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9ddl:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZIdd l:Z:ejJjKdejLjMejNZOddddddgZPdZQdZRe8rdZSdZTndZSd ZTde"fd!YZUd"ZVd#ZWd$ZXd%ZYd&ZZdeAfd'YZ[d(Z\eOe]d)Z^d*Z_d+Z`d,Zaebd-Zcd.Zdd/Zed0ejfkreeZgn d1Zgd2d3Zhd4Zid5Zjd6Zkydd7lmlZmWnenk rd8ZmnXd9Zld:Zod;epfd<YZqd=eqfd>YZrd?erfd@YZseqjtZtdAZudBZve]e_dCZwdDZxdEZyebdFZzd S(Gs Easy Install ------------ A tool for doing automatic download/extract/build of distutils-based Python packages. For detailed documentation, see the accompanying EasyInstall.txt file, or visit the `EasyInstall home page`__. __ https://pythonhosted.org/setuptools/easy_install.html i(tglob(t get_platform(t convert_patht subst_vars(tDistutilsArgErrortDistutilsOptionErrortDistutilsErrortDistutilsPlatformError(tINSTALL_SCHEMESt SCHEME_KEYS(tlogtdir_util(t first_line_reN(tCommandt_dont_write_bytecode(t run_setup(tget_pathtget_config_vars(tsetopt(tunpack_archive(t PackageIndex(t URL_SCHEME(t bdist_eggtegg_info(t iteritemstmaxsizet basestringtunicodetreraisetPY2tPY3(t yield_linestnormalize_pathtresource_stringtensure_directorytget_distributiontfind_distributionst Environmentt Requirementt Distributiont PathMetadatat EggMetadatat WorkingSettDistributionNotFoundtVersionConflictt DEVELOP_DISTt__PYVENV_LAUNCHER__tsamefilet easy_installtPthDistributionstextract_wininst_cfgtmaintget_exe_prefixescCstjddkS(NtPi(tstructtcalcsize(((sI/usr/local/lib/python2.7/site-packages/setuptools/command/easy_install.pytis_64bitBscCstjj|o!tjj|}ttjdo9|}|rUtjj||Stjjtjj|}tjjtjj|}||kS(NR/(tostpathtexiststhasattrR/tnormpathtnormcase(tp1tp2t both_existt use_samefiletnorm_p1tnorm_p2((sI/usr/local/lib/python2.7/site-packages/setuptools/command/easy_install.pyR/Fs$cCs|S(N((ts((sI/usr/local/lib/python2.7/site-packages/setuptools/command/easy_install.pyt _to_asciiQscCs.yt|dtSWntk r)tSXdS(Ntascii(RtTruet UnicodeErrortFalse(RE((sI/usr/local/lib/python2.7/site-packages/setuptools/command/easy_install.pytisasciiTs   cCs |jdS(NRG(tencode(RE((sI/usr/local/lib/python2.7/site-packages/setuptools/command/easy_install.pyRF[scCs.y|jdtSWntk r)tSXdS(NRG(RLRHRIRJ(RE((sI/usr/local/lib/python2.7/site-packages/setuptools/command/easy_install.pyRK^s   cBseZdZdZeZdudvdwdxdydzd{d|d}d~dddddddddddgZdddd dd-d0d6d9g Ze j rd=e j Z ej d>dte fej d>nidd'6ZeZd?Zd@ZdAZdBZdCZdDZdEZdFZdGZdHZdIZdJZdKZdLZdMZdNZ e!dOZ"e!dPZ#dQZ$edRZ%dSZ&dTZ'dUZ(dtdVZ)e*dWZ+dXddYZ,dZZ-d[Z.d\Z/d]Z0d^Z1d_d`Z2daZ3dbZ4dcZ5ddZ6deZ7dfZ8dgZ9dhZ:diZ;djZ<dkZ=e>dle>dmdndodpZ?e>dmdqdodrZ@dsZARS(s'Manage a download/build/install processs Find/get/install Python packagessprefix=sinstallation prefixszip-oktzsinstall package as a zipfiles multi-versiontms%make apps have to require() a versiontupgradetUs1force upgrade (searches PyPI for latest versions)s install-dir=tdsinstall package to DIRs script-dir=REsinstall scripts to DIRsexclude-scriptstxsDon't install scriptss always-copytas'Copy all needed packages to install dirs index-url=tis base URL of Python Package Indexs find-links=tfs(additional URL(s) to search for packagessbuild-directory=tbs/download/extract/build in DIR; keep the resultss optimize=tOslalso compile with optimization: -O1 for "python -O", -O2 for "python -OO", and -O0 to disable [default: -O0]srecord=s3filename in which to record list of installed filess always-unziptZs*don't install as a zipfile, no matter whats site-dirs=tSs)list of directories where .pth files workteditabletes+Install specified packages in editable formsno-depstNsdon't install dependenciess allow-hosts=tHs$pattern(s) that hostnames must matchslocal-snapshots-oktls(allow building eggs from local checkoutstversions"print version information and exits no-find-linkss9Don't load find-links defined in packages being installeds!install in user site-package '%s'tusercCstjr3tjjt}|jtj|_n d|_d|_ |_ d|_ |_ |_d|_d|_d|_d|_d|_|_d|_|_|_d|_|_|_d|_|_|_d|_d|_d|_ d|_!d|_"d|_#d|_$d|_%d|_&tjrQtj'|_(tj|_)nd|_(d|_)d|_*d|_+d|_,|_-d|_.i|_/t0|_1d|_2|j3j4|_4|j3j5||j3j6ddS(NiR0(7tsitetENABLE_USER_SITER9R:tabspatht__file__t startswitht USER_SITER`tNonetzip_oktlocal_snapshots_okt install_dirt script_dirtexclude_scriptst index_urlt find_linkstbuild_directorytargstoptimizetrecordROt always_copyt multi_versionRZtno_depst allow_hoststroottprefixt no_reportR_tinstall_purelibtinstall_platlibtinstall_headerst install_libtinstall_scriptst install_datat install_basetinstall_platbaset USER_BASEtinstall_userbasetinstall_usersitet no_find_linkst package_indextpth_filetalways_copy_fromt site_dirstinstalled_projectsRJtsitepy_installedt_dry_runt distributiontverboset_set_command_optionstget_option_dict(tselftwhereami((sI/usr/local/lib/python2.7/site-packages/setuptools/command/easy_install.pytinitialize_optionssL                          cCsx|D]}tjj|s1tjj|rtjd||jstjj|r|tjj| r|t|qtj |qqqWdS(Ns Deleting %s( R9R:R;tislinkR tinfotdry_runtisdirtrmtreetunlink(Rtblockerstfilename((sI/usr/local/lib/python2.7/site-packages/setuptools/command/easy_install.pytdelete_blockerss $  c Cs|jr(dtdjGHtjntjjd}tdd\}}i |jjd6|jjd6|jj d6|d 6|dd !d 6|d|d d 6|d6|d6|d6|d6t tddd6|_ t j r |j|j d<|j|j d|j3tj%n|js|j6j?|j:n|j dd.t;|j@tAsCy>tA|j@|_@d|j@kod knstBnWqCtBk r?t.d(qCXn|j0re|jC retDd)n|jEs}tDd*ng|_FdS(/Ns setuptools %st setuptoolsiRxt exec_prefixt dist_namet dist_versiont dist_fullnamet py_versionitpy_version_shortitpy_version_nodott sys_prefixtsys_exec_prefixtabiflagsttuserbasetusersites$User base directory is not specifiedtposixt unix_usert_userRjRkRoRR}R~tinstallRrt,s"%s (in --site-dirs) does not exists$ (in --site-dirs) is not on sys.pathshttps://pypi.python.org/simplet*t search_paththostsRqs--optimize must be 0, 1, or 2s9Must specify a build directory (-b) when using --editables:No urls, filenames, or requirements specified (see --help)(s install_dirs install_dir(s install_dirs script_dir(srecordsrecord(soptimizesoptimize(GR_R#tsystexittsplitRRtget_namet get_versiont get_fullnametgetattrt config_varsRaRbRRR`tcreate_home_pathRgRRRR9tnamet select_schemetexpand_basedirst expand_dirst_expandRkRjRRJtset_undefined_optionsRzR~tmapR R:t get_site_dirst all_site_dirsRt expandusertstripRR twarnRtappendRZtcheck_site_dirRmt shadow_pathtinsertRvRt create_indexR%t local_indexRnt isinstanceRRitscan_egg_linkstadd_find_linksRqtintt ValueErrorRoRRptoutputs( RRRxRR=RERRQt path_itemR((sI/usr/local/lib/python2.7/site-packages/setuptools/command/easy_install.pytfinalize_optionss            4    . !        cCsx|D]y}t||}|dk rtjdksFtjdkr[tjj|}nt||j}t|||qqWdS(NRtnt( RRgR9RR:RRRtsetattr(Rtattrstattrtval((sI/usr/local/lib/python2.7/site-packages/setuptools/command/easy_install.pyt _expand_attrsYs  cCs|jdddgdS(sNCalls `os.path.expanduser` on install_base, install_platbase and root.RRRwN(R(R((sI/usr/local/lib/python2.7/site-packages/setuptools/command/easy_install.pyRbscCs#|jddddddgdS(s+Calls `os.path.expanduser` on install dirs.RzR{R}R|R~RN(R(R((sI/usr/local/lib/python2.7/site-packages/setuptools/command/easy_install.pyRgs cCs|j|jjkr(tj|jnzx%|jD]}|j||j q5W|jr|j}|j rt |j }x/t t |D]}|||||=%(version)s") # this version or higher s Note also that the installation directory must be on sys.path at runtime for this to work. (e.g. by being the application's script directory, by being on PYTHONPATH, or by being added to sys.path by your code.) R( RtRyRjRR RR:R)R-R_RQ( RtreqRtwhatRtegglocRR_R=((sI/usr/local/lib/python2.7/site-packages/setuptools/command/easy_install.pyR8s     cCs&tjj|}tj}dtS(Ns" Extracted editable version of %(spec)s to %(dirname)s If it uses setuptools in its setup script, you can activate it in "development" mode by going to that directory and running:: %(python)s setup.py develop See the setuptools documentation for the "develop" command for more info. (R9R:RRRRQ(RRRdRtpython((sI/usr/local/lib/python2.7/site-packages/setuptools/command/easy_install.pyRbs cCs$tjjdttjjdtt|}|jdkrid|jd}|jdd|n"|jdkr|jddn|jr|jdd nt j d |t |dd j |yt ||Wn;tk rtjd}td |jdfnXdS( Nsdistutils.command.bdist_eggsdistutils.command.egg_infoiRiiRzs-qs-ns Running %s %st sSetup script exited with %s(Rtmodulest setdefaultRRtlistRRRR RRRRt SystemExitRRRp(RRdRGRpR((sI/usr/local/lib/python2.7/site-packages/setuptools/command/easy_install.pyRs"  $ c Csddg}tjdddtjj|}z|jtjj||j||j|||t|g}g}x?|D]7}x.||D]"}|j|j |j |qWqW| r|j rt j d|n|SWdt|t j|jXdS(NRs --dist-dirRxs egg-dist-tmp-tdirs+No eggs found in %s (setup script problem?)(R R!R9R:Rt_set_fetcher_optionsRRR%R^R)RR RRRR( RRdRGRptdist_dirtall_eggsteggsRR((sI/usr/local/lib/python2.7/site-packages/setuptools/command/easy_install.pyRcs$    $   c Cs|jjdj}d }i}xF|jD]8\}}||krOq1n|d||jdd    $   c Csdddddg}tj|}znxg|jD]Y}|j}|jd}t|d kr|d d kr|d jd r|jddj|d dfPqnt|d ks4|jd rq4n|jdrq4n|dj dkr4|j |}t r(|j }nxbt |D]Q}|jjdd}|jds5|jd|d|fdfq5q5Wq4q4WWd|jXg|D]\}} |j| f^q}|j|j|S(s4Get exe->egg path translations for a given .exe filesPURELIB/RsPLATLIB/pywin32_system32sPLATLIB/sSCRIPTS/sEGG-INFO/scripts/sDATA/lib/site-packagesRiisPKG-INFOis .egg-infois EGG-INFO/s.pths -nspkg.pthtPURELIBtPLATLIBs\Rs%s/%s/N(sPURELIB/R(sPLATLIB/pywin32_system32R(sPLATLIB/R(sSCRIPTS/sEGG-INFO/scripts/(sDATA/lib/site-packagesR(RR(RtZipFiletinfolistRRRR,RRtupperRRRVRRRUReRRRtsorttreverse( t exe_filenameRRMRRRRItpthRRty((sI/usr/local/lib/python2.7/site-packages/setuptools/command/easy_install.pyR4s<  "#"3 +  cCs<ytj|SWn$tk r7td|fnXdS(Ns1Not a URL, existing file, or requirement spec: %r(R&tparseRR(R((sI/usr/local/lib/python2.7/site-packages/setuptools/command/easy_install.pyR%s  cBsMeZdZeZddZdZdZdZdZ dZ RS(s)A .pth file with Distribution paths in itcCs||_ttt||_ttjj|j|_|j t j |gddx6t |jD]%}tt|jt|tqoWdS(N(RRRR RR9R:Rtbasedirt_loadR%t__init__RgRRR6R$RH(RRRR:((sI/usr/local/lib/python2.7/site-packages/setuptools/command/easy_install.pyRs  cCsg|_t}tj|j}tjj|jr3t |jd}x|D]}|j drpt }qOn|j }|jj ||j sO|jj drqOnttjj|j|}|jd((sI/usr/local/lib/python2.7/site-packages/setuptools/command/easy_install.pyt2clear_and_remove_cached_zip_archive_directory_datasR=(R@Rgt_zip_directory_cache(R6RB((sI/usr/local/lib/python2.7/site-packages/setuptools/command/easy_install.pyR4s  t__pypy__cCs#d}t|tjd|dS(NcSs/|jtj||jtj||S(N(RARgRhtupdateRC(R:R>((sI/usr/local/lib/python2.7/site-packages/setuptools/command/easy_install.pyt)replace_cached_zip_archive_directory_datas  R=(R@RgRC(R6RF((sI/usr/local/lib/python2.7/site-packages/setuptools/command/easy_install.pyR3s  scCs7yt||dWnttfk r.tSXtSdS(s%Is this string a valid Python script?texecN(Rt SyntaxErrort TypeErrorRJRH(ttextR((sI/usr/local/lib/python2.7/site-packages/setuptools/command/easy_install.pyt is_python s cCsNy)t|}|jd}|jWnttfk rC|SX|dkS(sCDetermine if the specified executable is a .sh (contains a #! line)is#!(RRRRR(Rtfptmagic((sI/usr/local/lib/python2.7/site-packages/setuptools/command/easy_install.pytis_shs cCsg}t}d}d|kp'd|k}|r@|jdnx|D]z}|dkrf|d7}qG|dkr|jd|ddd}qG|r|jd|d}n|j|qGW|r|jd|n|r|jd||jdnd j|S( s@Quote a command line argument according to Windows parsing rulesiRs t"s\iis\"R(RJRR(R,R8t needquotetnbtc((sI/usr/local/lib/python2.7/site-packages/setuptools/command/easy_install.pyR$s,      cCsb|jds|jdr"tSt||r5tS|jdr^d|jdjkStS(sMIs this text, as a whole, a Python script? (as opposed to shell/bat/etc. s.pys.pyws#!Ri(R,RHRKReR!RRJ(RRR((sI/usr/local/lib/python2.7/site-packages/setuptools/command/easy_install.pyRN@s(RZcGsdS(N((Rp((sI/usr/local/lib/python2.7/site-packages/setuptools/command/easy_install.pyt_chmodRscCs_tjd||yt||Wn4tjk rZtjd}tjd|nXdS(Nschanging mode of %s to %oischmod failed: %s(R RRSR9terrorRR(R:R[R[((sI/usr/local/lib/python2.7/site-packages/setuptools/command/easy_install.pyRZVs cCsntjjdrjt|rjddl}|jjjddkrI|S|r_tj dqjd|Sn|S(Ntjavaisos.nametLinuxsWARNING: Unable to adapt shebang line for Jython, the following script is NOT executable see http://bugs.jython.org/issue1112 for more information.s/usr/bin/env %s( RRwReRNRUtlangtSystemt getPropertyR R(RR(RU((sI/usr/local/lib/python2.7/site-packages/setuptools/command/easy_install.pyR%_s   t ScriptWritercBsVeZdZejdjZeee dZ edZ edZ RS(s` Encapsulates behavior around writing entry point scripts for console and gui apps. s6 # EASY-INSTALL-ENTRY-SCRIPT: %(spec)r,%(group)r,%(name)r __requires__ = %(spec)r import sys from pkg_resources import load_entry_point if __name__ == '__main__': sys.exit( load_entry_point(%(spec)r, %(group)r, %(name)r)() ) c cs|j|}t|j}td||}xvdD]n}|d}x[|j|jD]D\} } |jt} x%|j|| || D] } | VqWq`Wq:WdS(sW Yield write_script() argument tuples for a distribution's entrypoints Rtconsoletguit_scriptsN(sconsolesgui( t get_writerRMR;ROt get_entry_mapR~RRQt_get_script_args( tclsRRR&t gen_classRtheaderttype_R#RtepRRR((sI/usr/local/lib/python2.7/site-packages/setuptools/command/easy_install.pyRKs  " cCs#|stjdkrtjS|S(Ntwin32(RRwtWindowsScriptWriterR^(Rat force_windows((sI/usr/local/lib/python2.7/site-packages/setuptools/command/easy_install.pyR^s ccs|||fVdS(N((RaRdRRcRR((sI/usr/local/lib/python2.7/site-packages/setuptools/command/easy_install.pyR`s( RRRttextwraptdedenttlstripRt classmethodtsys_executableRJRKR^R`(((sI/usr/local/lib/python2.7/site-packages/setuptools/command/easy_install.pyRZus RgcBs5eZedZedZedZRS(cCs2tdtd|}tjjdd}||S(s: Get a script writer suitable for Windows RtnaturaltSETUPTOOLS_LAUNCHER(RtWindowsExecutableLauncherWriterR9RR(Rat writer_lookuptlauncher((sI/usr/local/lib/python2.7/site-packages/setuptools/command/easy_install.pyR^s  c cstdddd|}|tjdjjdkrRtjd|tnddd d d dd g}|j||j ||}g|D]}||^q}||||d |fVdS(s For Windows, add a .py extensionR[s.pyaR\s.pywtPATHEXTt;sH%s not listed in PATHEXT; scripts will not be recognized as executables.s.pys -script.pys.pycs.pyos.exeRXN( RR9RRRtwarningsRt UserWarningR7t_adjust_header( RaRdRRcRRtextRRRR((sI/usr/local/lib/python2.7/site-packages/setuptools/command/easy_install.pyR`s"  cCsd}d}|dkr(||}}ntjtj|tj}|jd|d|}|dd!jd}tjd krtj j | r|S|S( s Make sure 'pythonw' is used for gui and and 'python' is used for console (regardless of what sys.executable is). s pythonw.exes python.exeR\tstringtrepliiRORf( RRtescapet IGNORECASEtsubRRRwR9R:R;(Rdt orig_headerRRzt pattern_obt new_headert clean_header((sI/usr/local/lib/python2.7/site-packages/setuptools/command/easy_install.pyRws "(RRRlR^R`RRw(((sI/usr/local/lib/python2.7/site-packages/setuptools/command/easy_install.pyRgs  RpcBseZedZRS(c cs|dkr$d}d}dg}nd}d}dddg}|j||}g|D]} || ^qX} ||||d | fV|d t|d fVts|d } | t|d fVnd S(sG For Windows, add a .py extension and an .exe launcher R\s -script.pyws.pywtclis -script.pys.pys.pycs.pyoRXs.exeRVs .exe.manifestN(Rwtget_win_launcherR8tload_launcher_manifest( RaRdRRcRRt launcher_typeRxRR)RRRtm_name((sI/usr/local/lib/python2.7/site-packages/setuptools/command/easy_install.pyR`s    (RRRlR`(((sI/usr/local/lib/python2.7/site-packages/setuptools/command/easy_install.pyRpscCstd|}tjjdkr7|jdd}ntrU|jdd}n|jdd}td|S(s Load the Windows launcher (executable) suitable for launching a script. `type` should be either 'cli' or 'gui' Returns the executable as a byte string. s%s.exetarmt.s-arm.s-64.s-32.R(RwtmachineRRUR8R!(ttypet launcher_fn((sI/usr/local/lib/python2.7/site-packages/setuptools/command/easy_install.pyRs  cCs;tjtd}tr#|tS|jdtSdS(Nslauncher manifest.xmlsutf-8(t pkg_resourcesR!RRtvarsRV(Rtmanifest((sI/usr/local/lib/python2.7/site-packages/setuptools/command/easy_install.pyRs cCst|rd}n|dkr*d}ng}ytj|}Wn-tjk rr|tj|tjnXx|D]}tjj||}ytj|j }Wntjk rd}nXt j |rt |||qzytj |Wqztjk r*|tj |tjqzXqzWytj|Wn-tjk ro|tj|tjnXdS(sRecursively delete a directory tree. This code is taken from the Python 2.4 version of 'shutil', because the 2.3 version doesn't really work right. cWsdS(N((Rp((sI/usr/local/lib/python2.7/site-packages/setuptools/command/easy_install.pytonerrorscWsdS(N((Rp((sI/usr/local/lib/python2.7/site-packages/setuptools/command/easy_install.pyRsiN(RgR9RCRTRRR:Rtlstattst_modeRtS_ISDIRRR7trmdir(R:t ignore_errorsRtnamesRtfullnameR[((sI/usr/local/lib/python2.7/site-packages/setuptools/command/easy_install.pyRs2     !cCs tjd}tj||S(Ni(R9tumask(ttmp((sI/usr/local/lib/python2.7/site-packages/setuptools/command/easy_install.pyRY2s cCsMddl}tjj|jd}|tjd]s((RRpR(R'R(RpRRsI/usr/local/lib/python2.7/site-packages/setuptools/command/easy_install.pyR\s(RRt common_usageR((R'R(sI/usr/local/lib/python2.7/site-packages/setuptools/command/easy_install.pyRYsics6ddddgdtjdp)ddS(Nt script_argss-qR0s-vRit distclass(RR((RRRR(sI/usr/local/lib/python2.7/site-packages/setuptools/command/easy_install.pyRcs(RRtsetuptools.distR'tdistutils.coreRgRR(RR(( R'RRRRRRRRsI/usr/local/lib/python2.7/site-packages/setuptools/command/easy_install.pyR3Bs  ({RRRRRRtdistutils.errorsRRRRtdistutils.command.installRR RR R tdistutils.command.build_scriptsR RR9RgRDR RRRRRwRiRuRaR6RR Rtsetuptools.sandboxRtsetuptools.py31compatRRtsetuptools.commandRtsetuptools.archive_utilRtsetuptools.package_indexRRRRRRRRRRRRRRR R!R"R#R$R%R&R'R(R)R*R+R,R-RRR:R=RRmt__all__R8R/RFRKR0RRR2R4R%R1R RJROR0RtR<RgR@R1R4tbuiltin_module_namesR3RKRNR$RNRZRSt ImportErrorR%tobjectRZRgRpRKRRRRYRR3(((sI/usr/local/lib/python2.7/site-packages/setuptools/command/easy_install.pyt s"              4d           / ) 1 & k   R      "    ..   $