ReC@sdZddlmZddlmZmZddlmZddlm Z ddl Z ddl Z ddl Z ddl Z ddlmZddlmZmZmZdd lmZdd lmZdd lmZy&dd lmZmZd dZWn4ek r4ddlmZmZddZYnXddZ ddZ!GdddeZ"e#j$dj%Z&ddZ'ddZ(ddZ)ddd d!iZ*d"d#Z+d$d%Z,d&d'Z-d(d)d*d+gZ.dddd,d-d.Z/dS)/z6setuptools.command.bdist_egg Build .egg distributions)DistutilsSetupError) remove_treemkpath)log)CodeTypeN)six)get_build_platform Distributionensure_directory) EntryPoint)Library)Command)get_pathget_python_versioncCs tdS)Npurelib)rrr/builddir/build/BUILDROOT/alt-python35-setuptools-36.3.0-4.el8.x86_64/opt/alt/python35/lib/python3.5/site-packages/setuptools/command/bdist_egg.py _get_purelibsr)get_python_librcCs tdS)NF)rrrrrrscCsEd|kr"tjj|d}|jdrA|dd}|S)N.rmodulei)ospathsplitextendswith)filenamerrr strip_module"s  rc CsCtjdj}t|d}|j||WdQRXdS)NaR def __bootstrap__(): global __bootstrap__, __loader__, __file__ import sys, pkg_resources, imp __file__ = pkg_resources.resource_filename(__name__, %r) __loader__ = None; del __bootstrap__, __loader__ imp.load_dynamic(__name__,__file__) __bootstrap__() w)textwrapdedentlstripopenwrite)resourcepyfileZ_stub_templatefrrr write_stub*sr'c@seZdZdZd*dddefd+d d d dfd,d-gZd ddgZddZddZddZ ddZ ddZ ddZ d d!Z d"d#Zd$d%Zd&d'Zd(d)Zd S). bdist_eggzcreate an "egg" distribution bdist-dir=b1temporary directory for creating the distributionz plat-name=pz;platform name to embed in generated filenames (default: %s)exclude-source-filesN+remove all .py files from the generated eggz keep-tempkz/keep the pseudo-installation tree around after z!creating the distribution archive dist-dir=d-directory to put final built distributions in skip-build2skip rebuilding everything (for testing/debugging)cCsCd|_d|_d|_d|_d|_d|_d|_dS)Nr) bdist_dir plat_name keep_tempdist_dir skip_build egg_outputexclude_source_files)selfrrrinitialize_optionsOs      zbdist_egg.initialize_optionscCs|jd}|_|j|_|jdkr[|jdj}tjj|d|_|jdkrvt |_|j dd|j dkrt dd|j |jt|jjo|jj }tjj|j|d|_ dS)Negg_infobdistZeggr8z.egg)r8r8)get_finalized_commandei_cmdr>r5 bdist_baserrjoinr6rset_undefined_optionsr:r egg_nameZ egg_versionr distributionhas_ext_modulesr8)r<rArBbasenamerrrfinalize_optionsXs  !zbdist_egg.finalize_optionsc Cs\|j|jd_tjjtjjt}|jj g}|j_ x|D]}t |t rt |dkrtjj |drtjj|d}tjj|}||ks|j|tjr|t |dd|df}|jj j|qVWz0tjd|j|jdddddWd||j_ XdS) Ninstallrzinstalling package data to %s install_dataforceroot)r5r@ install_librrnormcaserealpathrrF data_files isinstancetuplelenisabs startswithsepappendrinfo call_command)r< site_packagesolditemrR normalizedrrrdo_install_dataps ! !$zbdist_egg.do_install_datacCs |jgS)N)r:)r<rrr get_outputsszbdist_egg.get_outputscKsmx!tD]}|j||jqW|jd|j|jd|j|j||}|j||S)z8Invoke reinitialized command `cmdname` with keyword argsr9dry_run)INSTALL_DIRECTORY_ATTRS setdefaultr5r9rcreinitialize_command run_command)r<Zcmdnamekwdirnamecmdrrrr\s  zbdist_egg.call_commandc Cs|jdtjd|j|jd}|j}d|_|jjrg|j rg|jd|j ddd}||_|j \}}g|_ g}xt |D]\}}t jj|\} } t jj|jt| d} |j j| tjd ||js;tt jj|| |j| |jt jd ||zinstalling library code to %srJ build_clibrPwarn_dirrz.pyzcreating stub loader for %s/zEGG-INFOscriptszinstalling scripts to %sinstall_scripts install_dirZno_eprLznative_libs.txtz writing %swt z removing %sz depends.txtzxWARNING: 'depends.txt' will not be used by setuptools 0.6! Use the install_requires/extras_require setup() args instead.verbosercmode dist_filesr()3rgrr[r5r@rOrFhas_c_librariesr9r\get_ext_outputsstubs enumeraterrrrCrrZrcr'rHreplacerY byte_compilerSrarrncopy_metadata_tor r"r#closeisfileunlinkwrite_safety_flagzip_safeexistsr>warnr; zap_pyfiles make_zipfiler:rs gen_headerr7rgetattrr)r<ZinstcmdZold_rootrj all_outputs ext_outputsZ to_compiler,Zext_namerextr%Z archive_rootr>Z script_dirZ native_libsZ libs_filerrrrunsz                      $   z bdist_egg.runcCstjdxrt|jD]a\}}}xO|D]G}|jdr3tjj||}tjd|tj |q3WqWdS)Nz+Removing .py files from temporary directoryz.pyz Deleting %s) rr[walk_eggr5rrrrCdebugr)r<basedirsfilesnamerrrrrs  zbdist_egg.zap_pyfilescCsEt|jdd}|dk r%|Stjdt|j|jS)Nrz4zip_safe flag not set; analyzing archive contents...)rrFrr analyze_eggr5rx)r<saferrrrs   zbdist_egg.zip_safec Cs!tj|jjpd}|jdijd}|dkrFdS|j sY|jrltd|ftj dd}|j }dj |j}|jd}t j j|j}d t}|jstt j j|jd |jt|jd} | j|| jd S) Nzsetuptools.installationZ eggsecutablerzGeggsecutable entry point (%r) cannot have 'extras' or refer to a modulerraH#!/bin/sh if [ `basename $0` = "%(basename)s" ] then exec python%(pyver)s -c "import sys, os; sys.path.insert(0, os.path.abspath('$0')); from %(pkg)s import %(base)s; sys.exit(%(full)s())" "$@" else echo $0 is not the correct name for this egg file. echo Please rename it back to %(basename)s and try again. exec false fi rca)r parse_maprFZ entry_pointsgetattrsextrasrsysversion module_namerCrrrHr:localsrcrrir"r#r}) r<ZepmeppyverpkgfullrrHheaderr&rrrrs*      "  zbdist_egg.gen_headercCstjj|j}tjj|d}xe|jjjD]T}|j|r:tjj||t |d}t ||j ||q:WdS)z*Copy metadata (egg info) to the target_dirrN) rrnormpathr>rCrAfilelistrrXrVr copy_file)r< target_dirZ norm_egg_infoprefixrtargetrrrr|s% zbdist_egg.copy_metadata_toc Cszg}g}|jdi}xtj|jD]\}}}xE|D]=}tjj|djtkrD|j|||qDWx3|D]+}|||d|tjj||.visit compression) zipfilerrrrirr[ ZIP_DEFLATED ZIP_STOREDZipFilerr}) zip_filenamerrsrccompressrtrrrrrirrr)rrcrrs   r)0__doc__distutils.errorsrdistutils.dir_utilrr distutilsrtypesrrrrrZsetuptools.externr pkg_resourcesrr r r Zsetuptools.extensionr setuptoolsr sysconfigrrr ImportErrordistutils.sysconfigrrr'r(rrsplitrrrrrrrrrdrrrrrsF           "