qfc@sdZdZddlZddlZddlmZddlmZeedrcej dZ ndZ d efd YZ dS( skdistutils.command.install_lib Implements the Distutils 'install_lib' command (install all Python modules).s$Id$iN(tCommand(tDistutilsOptionErrortextseptpys.pyt install_libc BseZdZddd d!d#d$d%gZdd dgZid d 6ZdZdZdZ dZ dZ dZ dZ dZdZdZRS(&s7install all Python modules (extensions and pure Python)s install-dir=tdsdirectory to install tos build-dir=tbs'build directory (where to install from)tforcetfs-force installation (overwrite existing files)tcompiletcscompile .py to .pyc [default]s no-compilesdon't compile .py filess optimize=tOslalso compile with optimization: -O1 for "python -O", -O2 for "python -OO", and -O0 to disable [default: -O0]s skip-buildsskip the build stepscCs:d|_d|_d|_d|_d|_d|_dS(Ni(tNonet install_dirt build_dirRR toptimizet skip_build(tself((s5/usr/lib64/python2.7/distutils/command/install_lib.pytinitialize_options7s      c Cs|jddddddd|jdkr:d |_n|jdkrUd |_nt|jtsy.t|j|_|jdkrtnWqttfk rtd qXndS(Ntinstallt build_libRRR RR RRiiisoptimize must be 0, 1, or 2(Rs build_dir(s install_libs install_dir(sforcesforce(scompilescompile(soptimizesoptimize(s skip_builds skip_build(iii( tset_undefined_optionsR R Rt isinstancetinttAssertionErrort ValueErrorR(R((s5/usr/lib64/python2.7/distutils/command/install_lib.pytfinalize_options@s$    cCsE|j|j}|dk rA|jjrA|j|ndS(N(tbuildRR t distributionthas_pure_modulest byte_compile(Rtoutfiles((s5/usr/lib64/python2.7/distutils/command/install_lib.pytrunZs  cCsN|jsJ|jjr(|jdn|jjrJ|jdqJndS(Ntbuild_pyt build_ext(RRRt run_commandthas_ext_modules(R((s5/usr/lib64/python2.7/distutils/command/install_lib.pyRjs  cCsLtjj|jr0|j|j|j}n|jd|jdS|S(Ns3'%s' does not exist -- no Python modules to install(tostpathtisdirRt copy_treeR twarn(RR((s5/usr/lib64/python2.7/distutils/command/install_lib.pyRqs   c Cstjr|jddSddlm}|jdj}|jrp||ddd|jd|d |j n|j dkr||d|j d|jd|d |j d |j ndS( Ns%byte-compiling is disabled, skipping.i(RRRiRtprefixtdry_runtverbose( tsystdont_write_bytecodeR)tdistutils.utilRtget_finalized_commandtrootR RR+RR,(RtfilesRt install_root((s5/usr/lib64/python2.7/distutils/command/install_lib.pyRzs    c Cs|s gS|j|}|j}t||}t|ttj}g}x.|D]&} |jtjj|| |qZW|S(N( R0t get_outputstgetattrtlenR%tseptappendR&tjoin( Rthas_anyt build_cmdt cmd_optiont output_dirt build_filesRt prefix_lentoutputstfile((s5/usr/lib64/python2.7/distutils/command/install_lib.pyt_mutate_outputss  $cCsg}x|D]z}tjjtjj|d}|tkrGq n|jrd|j|dn|jdkr |j|dq q W|S(NiR ito(R%R&tsplitexttnormcasetPYTHON_SOURCE_EXTENSIONR R8R(Rt py_filenamestbytecode_filestpy_filetext((s5/usr/lib64/python2.7/distutils/command/install_lib.pyt_bytecode_filenamess "  cCsu|j|jjdd|j}|jr?|j|}ng}|j|jjdd|j}|||S(sReturn the list of files that would be installed if this command were actually run. Not affected by the "dry-run" flag or whether modules have actually been built yet. R!RR"(RBRRR R RKR$(Rt pure_outputstbytecode_outputst ext_outputs((s5/usr/lib64/python2.7/distutils/command/install_lib.pyR4s   cCsrg}|jjr:|jd}|j|jn|jjrn|jd}|j|jn|S(sGet the list of files that are input to this command, ie. the files that get installed as they are named in the build tree. The files in this list correspond one-to-one to the output filenames returned by 'get_outputs()'. R!R"(RRR0textendR4R$(RtinputsR!R"((s5/usr/lib64/python2.7/distutils/command/install_lib.pyt get_inputss(s install-dir=Rsdirectory to install to(s build-dir=Rs'build directory (where to install from)(sforceRs-force installation (overwrite existing files)(scompileR scompile .py to .pyc [default]N(s no-compileNsdon't compile .py files(s optimize=R slalso compile with optimization: -O1 for "python -O", -O2 for "python -OO", and -O0 to disable [default: -O0](s skip-buildNsskip the build steps(t__name__t __module__t descriptionR t user_optionstboolean_optionst negative_optRRR RRRRBRKR4RQ(((s5/usr/lib64/python2.7/distutils/command/install_lib.pyRs*         ( t__doc__t __revision__R%R-tdistutils.coreRtdistutils.errorsRthasattrRRFR(((s5/usr/lib64/python2.7/distutils/command/install_lib.pyts