ó p®¸Qc@sƒdZdZddlZddlZddlmZddlmZeedƒrcej dZ ndZ d efd „ƒYZ dS( skdistutils.command.install_lib Implements the Distutils 'install_lib' command (install all Python modules).s$Id$iÿÿÿÿN(tCommand(tDistutilsOptionErrortextseptpys.pyt install_libc BsŸeZdZddd d!d#d$d%gZdd dgZid d 6Zd„Zd„Zd„Z d„Z d„Z d„Z d„Z d„Zd„Zd„ZRS(&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((s3/sys/lib/python2.7/distutils/command/install_lib.pytinitialize_options7s      c Cs¿|jdddddddƒ|jdkr:d |_n|jdkrUd |_nt|jtƒs»y.t|jƒ|_|jdkr”t‚nWq»ttfk r·td ‚q»XndS(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((s3/sys/lib/python2.7/distutils/command/install_lib.pytfinalize_options@s$    cCsE|jƒ|jƒ}|dk rA|jjƒrA|j|ƒndS(N(tbuildRR t distributionthas_pure_modulest byte_compile(Rtoutfiles((s3/sys/lib/python2.7/distutils/command/install_lib.pytrunZs  cCsN|jsJ|jjƒr(|jdƒn|jjƒrJ|jdƒqJndS(Ntbuild_pyt build_ext(RRRt run_commandthas_ext_modules(R((s3/sys/lib/python2.7/distutils/command/install_lib.pyRjs  cCsLtjj|jƒr0|j|j|jƒ}n|jd|jƒdS|S(Ns3'%s' does not exist -- no Python modules to install(tostpathtisdirRt copy_treeR twarn(RR((s3/sys/lib/python2.7/distutils/command/install_lib.pyRqs   c Csºtjr|jdƒdSddlm}|jdƒj}|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((s3/sys/lib/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((s3/sys/lib/python2.7/distutils/command/install_lib.pyt_mutate_outputs“s  $cCsg}x‚|D]z}tjjtjj|ƒƒd}|tkrGq n|jrd|j|dƒn|jdkr |j|dƒq q W|S(NiR ito(R%R&tsplitexttnormcasetPYTHON_SOURCE_EXTENSIONR R8R(Rt py_filenamestbytecode_filestpy_filetext((s3/sys/lib/python2.7/distutils/command/install_lib.pyt_bytecode_filenames¢s "  cCsu|j|jjƒdd|jƒ}|jr?|j|ƒ}ng}|j|jjƒdd|jƒ}|||S(sÁReturn 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((s3/sys/lib/python2.7/distutils/command/install_lib.pyR4¶s   cCsrg}|jjƒr:|jdƒ}|j|jƒƒn|jjƒrn|jdƒ}|j|jƒƒn|S(sþGet 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"((s3/sys/lib/python2.7/distutils/command/install_lib.pyt get_inputsËs(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(((s3/sys/lib/python2.7/distutils/command/install_lib.pyRs*         ( t__doc__t __revision__R%R-tdistutils.coreRtdistutils.errorsRthasattrRRFR(((s3/sys/lib/python2.7/distutils/command/install_lib.pyts