ž «ÿf)Cc@s­dZddlZddlZddlZddlmZddlmZddlTddlm Z m Z ddl m Z Gdd „d eƒZ Gd d „d e e ƒZdS( uHdistutils.command.build_py Implements the Distutils 'build_py' command.iN(uglob(uCommand(u*(u convert_pathu Mixin2to3(ulogcBs/|EeZdZdZd8d9d:d;d<gZdd gZidd6Zdd„Zdd„Z dd„Z dd„Z dd„Z dd„Z dd„Zdd„Zd d!„Zd"d#„Zd$d%„Zd&d'„Zd(d)„Zd*d+„Zd,d-d.„Zd/d0„Zd1d2„Zd3d4„Zd5d6„Zd7S(=ubuild_pyu5"build" pure Python modules (copy to build directory)u build-lib=ududirectory to "build" (copy) toucompileucucompile .py to .pycu no-compileu!don't compile .py files [default]u optimize=uOulalso compile with optimization: -O1 for "python -O", -O2 for "python -OO", and -O0 to disable [default: -O0]uforceufu2forcibly build everything (ignore file timestamps)cCsLd|_d|_d|_d|_d|_d|_d|_d|_dS(Ni( uNoneu build_libu py_modulesupackageu package_datau package_dirucompileuoptimizeuforce(uself((u?/opt/alt/python33/lib64/python3.3/distutils/command/build_py.pyuinitialize_options s       ubuild_py.initialize_optionsc Csó|jdddƒ|jj|_|jj|_|jj|_i|_|jjrŽx6|jjjƒD]\}}t|ƒ|j|ts u+build_py.get_data_files..( upackagesuget_package_diruosupathujoinu build_libusplitulenufind_data_filesuappend(uselfudataupackageusrc_diru build_diru filenames((uplenu?/opt/alt/python33/lib64/python3.3/distutils/command/build_py.pyuget_data_filesas %%ubuild_py.get_data_filescs„|jjdgƒ|jj|gƒ}g‰xO|D]G}ttjj|t|ƒƒƒ}ˆj‡fdd†|Dƒƒq5WˆS(u6Return filenames for package's data files in 'src_dir'ucs4g|]*}|ˆkrtjj|ƒr|‘qS((uosupathuisfile(u.0ufn(ufiles(u?/opt/alt/python33/lib64/python3.3/distutils/command/build_py.pyu ‚s u,build_py.find_data_files..(u package_dataugetuglobuosupathujoinu convert_pathuextend(uselfupackageusrc_diruglobsupatternufilelist((ufilesu?/opt/alt/python33/lib64/python3.3/distutils/command/build_py.pyufind_data_filesys !$ubuild_py.find_data_filescCsŽd}x|jD]v\}}}}xa|D]Y}tjj||ƒ}|jtjj|ƒƒ|jtjj||ƒ|ddƒq)WqWdS(u$Copy data files into build directoryu preserve_modeNF( uNoneu data_filesuosupathujoinumkpathudirnameu copy_fileuFalse(uselfulastdirupackageusrc_diru build_diru filenamesufilenameutarget((u?/opt/alt/python33/lib64/python3.3/distutils/command/build_py.pyubuild_package_data†s ubuild_py.build_package_datac Cs|jdƒ}|js5|r.tjj|ŒSdSnÈg}x¿|r±y|jdj|ƒ}Wn-tk r|jd|dƒ|d=Yq>X|jd|ƒtjj|ŒSq>W|jjdƒ}|dk rã|jd|ƒn|rùtjj|ŒSdSdS(u½Return the directory, relative to the top of the source distribution, where package 'package' should be found (at least according to the 'package_dir' option, if any).u.uiiNiÿÿÿÿiÿÿÿÿ( usplitu package_diruosupathujoinuKeyErroruinsertugetuNone(uselfupackageupathutailupdir((u?/opt/alt/python33/lib64/python3.3/distutils/command/build_py.pyuget_package_dirs(      ubuild_py.get_package_dircCs¥|dkrYtjj|ƒs1td|ƒ‚ntjj|ƒsYtd|ƒ‚qYn|r¡tjj|dƒ}tjj|ƒrŠ|Stjdd|ƒndS(Nuu%package directory '%s' does not existu>supposed package directory '%s' exists, but is not a directoryu __init__.pyu!package init file '%s' not found u(or not a regular file)( uosupathuexistsuDistutilsFileErroruisdirujoinuisfileuloguwarnuNone(uselfupackageu package_diruinit_py((u?/opt/alt/python33/lib64/python3.3/distutils/command/build_py.pyu check_package·s  ubuild_py.check_packagecCs1tjj|ƒs)tjd||ƒdSdSdS(Nu!file %s (for module %s) not foundFT(uosupathuisfileuloguwarnuFalseuTrue(uselfumoduleu module_file((u?/opt/alt/python33/lib64/python3.3/distutils/command/build_py.pyu check_moduleÒsubuild_py.check_modulec CsÈ|j||ƒttjj|dƒƒ}g}tjj|jjƒ}xx|D]p}tjj|ƒ}||kr¯tjjtjj |ƒƒd}|j |||fƒqP|j d|ƒqPW|S(Nu*.pyiu excluding %s( u check_packageuglobuosupathujoinuabspathu distributionu script_nameusplitextubasenameuappendu debug_print( uselfupackageu package_diru module_filesumodulesu setup_scriptufuabs_fumodule((u?/opt/alt/python33/lib64/python3.3/distutils/command/build_py.pyufind_package_modulesÙs  "ubuild_py.find_package_modulesc Cs%i}g}x|jD]}|jdƒ}dj|dd…ƒ}|d}y||\}}Wn'tk r‹|j|ƒ}d}YnX|sÖ|j||ƒ} |df||<| rÖ|j|d| fƒqÖntjj||dƒ} |j || ƒsqn|j||| fƒqW|S(uÈFinds individually-specified Python modules, ie. those listed by module name in 'self.py_modules'. Returns a list of tuples (package, module_base, filename): 'package' is a tuple of the path through package-space to the module; 'module_base' is the bare (no packages, no dots) module name, and 'filename' is the path to the ".py" file (relative to the distribution root) that implements the module. u.iiu__init__u.pyiÿÿÿÿiÿÿÿÿ( u py_modulesusplitujoinuKeyErroruget_package_diru check_packageuappenduosupathu check_module( uselfupackagesumodulesumoduleupathupackageu module_baseu package_dirucheckeduinit_pyu module_file((u?/opt/alt/python33/lib64/python3.3/distutils/command/build_py.pyu find_modulesès*   ubuild_py.find_modulescCswg}|jr%|j|jƒƒn|jrsxB|jD]4}|j|ƒ}|j||ƒ}|j|ƒq8Wn|S(u4Compute the list of all modules that will be built, whether they are specified one-module-at-a-time ('self.py_modules') or by whole packages ('self.packages'). Return a list of tuples (package, module, module_file), just like 'find_modules()' and 'find_package_modules()' do.(u py_modulesuextendu find_modulesupackagesuget_package_dirufind_package_modules(uselfumodulesupackageu package_dirum((u?/opt/alt/python33/lib64/python3.3/distutils/command/build_py.pyufind_all_moduless  ubuild_py.find_all_modulescCsdd„|jƒDƒS(NcSsg|]}|d‘qS(iiÿÿÿÿ((u.0umodule((u?/opt/alt/python33/lib64/python3.3/distutils/command/build_py.pyu -s u-build_py.get_source_files..(ufind_all_modules(uself((u?/opt/alt/python33/lib64/python3.3/distutils/command/build_py.pyuget_source_files,subuild_py.get_source_filescCs.|gt|ƒ|dg}tjj|ŒS(Nu.py(ulistuosupathujoin(uselfu build_dirupackageumoduleu outfile_path((u?/opt/alt/python33/lib64/python3.3/distutils/command/build_py.pyuget_module_outfile/subuild_py.get_module_outfileicCsÝ|jƒ}g}xª|D]¢\}}}|jdƒ}|j|j||ƒ}|j|ƒ|r|jrŠ|jtj|ddƒƒn|j dkr»|jtj|ddƒƒq»qqW|dd„|j Dƒ7}|S(Nu.udebug_overrideicSs>g|]4\}}}}|D]}tjj||ƒ‘qqS((uosupathujoin(u.0upackageusrc_diru build_diru filenamesufilename((u?/opt/alt/python33/lib64/python3.3/distutils/command/build_py.pyu Cs u(build_py.get_outputs..TF( ufind_all_modulesusplituget_module_outfileu build_libuappenducompileuimpucache_from_sourceuTrueuoptimizeuFalseu data_files(uselfuinclude_bytecodeumodulesuoutputsupackageumoduleu module_fileufilename((u?/opt/alt/python33/lib64/python3.3/distutils/command/build_py.pyu get_outputs3s"     ubuild_py.get_outputscCs’t|tƒr!|jdƒ}n$t|ttfƒsEtdƒ‚n|j|j||ƒ}tj j |ƒ}|j |ƒ|j ||ddƒS(Nu.u:'package' must be a string (dot-separated), list, or tupleu preserve_modei( u isinstanceustrusplitulistutupleu TypeErroruget_module_outfileu build_libuosupathudirnameumkpathu copy_file(uselfumoduleu module_fileupackageuoutfileudir((u?/opt/alt/python33/lib64/python3.3/distutils/command/build_py.pyu build_moduleJs  ubuild_py.build_modulecCs=|jƒ}x*|D]"\}}}|j|||ƒqWdS(N(u find_modulesu build_module(uselfumodulesupackageumoduleu module_file((u?/opt/alt/python33/lib64/python3.3/distutils/command/build_py.pyu build_modulesYs ubuild_py.build_modulescCsfx_|jD]T}|j|ƒ}|j||ƒ}x*|D]"\}}}|j|||ƒq8Wq WdS(N(upackagesuget_package_dirufind_package_modulesu build_module(uselfupackageu package_dirumodulesupackage_umoduleu module_file((u?/opt/alt/python33/lib64/python3.3/distutils/command/build_py.pyubuild_packagesbs  ubuild_py.build_packagesc CsËtjr|jdƒdSddlm}|j}|d tjkrV|tj}n|jrŠ||ddd|j d|d|j ƒn|j dkrÇ||d|j d|j d|d|j ƒndS( Nu%byte-compiling is disabled, skipping.i(u byte_compileiuoptimizeuforceuprefixudry_runiÿÿÿÿ( usysudont_write_bytecodeuwarnudistutils.utilu byte_compileu build_libuosusepucompileuforceudry_runuoptimize(uselfufilesu byte_compileuprefix((u?/opt/alt/python33/lib64/python3.3/distutils/command/build_py.pyu byte_compilevs    ubuild_py.byte_compileN(u build-lib=ududirectory to "build" (copy) to(ucompileucucompile .py to .pyc(u no-compileNu!don't compile .py files [default](u optimize=uOulalso compile with optimization: -O1 for "python -O", -O2 for "python -OO", and -O0 to disable [default: -O0](uforceufu2forcibly build everything (ignore file timestamps)(u__name__u __module__u __qualname__u descriptionuNoneu user_optionsuboolean_optionsu negative_optuinitialize_optionsufinalize_optionsurunuget_data_filesufind_data_filesubuild_package_datauget_package_diru check_packageu check_moduleufind_package_modulesu find_modulesufind_all_modulesuget_source_filesuget_module_outfileu get_outputsu build_moduleu build_modulesubuild_packagesu byte_compile(u __locals__((u?/opt/alt/python33/lib64/python3.3/distutils/command/build_py.pyubuild_pys8       '    4     ubuild_pycBs,|EeZdZdd„Zdd„ZdS(u build_py_2to3cCslg|_|jr|jƒn|jr?|jƒ|jƒn|j|jƒ|j|jddƒƒdS(Nuinclude_bytecodei( u updated_filesu py_modulesu build_modulesupackagesubuild_packagesubuild_package_dataurun_2to3u byte_compileu get_outputs(uself((u?/opt/alt/python33/lib64/python3.3/distutils/command/build_py.pyurun‹s      ubuild_py_2to3.runcCs=tj||||ƒ}|dr9|jj|dƒn|S(Nii(ubuild_pyu build_moduleu updated_filesuappend(uselfumoduleu module_fileupackageures((u?/opt/alt/python33/lib64/python3.3/distutils/command/build_py.pyu build_module›s ubuild_py_2to3.build_moduleN(u__name__u __module__u __qualname__urunu build_module(u __locals__((u?/opt/alt/python33/lib64/python3.3/distutils/command/build_py.pyu build_py_2to3Šs u build_py_2to3(u__doc__uosuimpusysuglobudistutils.coreuCommandudistutils.errorsudistutils.utilu convert_pathu Mixin2to3u distutilsulogubuild_pyu build_py_2to3(((u?/opt/alt/python33/lib64/python3.3/distutils/command/build_py.pyus    ÿ|