ž Ÿ/{Yψ c @sΕddlZddlZddlZddlZddlmZddlmZddl m Z yddl m Z Wn%e k r›Gdd„dƒZ YnXGdd „d ee ƒZd d „Z dS( iN(ubuild_py(u convert_path(uglob(u Mixin2to3cBs#|EeZdZddd„ZdS(u Mixin2to3cCsdS(u do nothingN((uselfufilesudoctests((u4/tmp/pip-jy811g-build/setuptools/command/build_py.pyurun_2to3 suMixin2to3.run_2to3NT(u__name__u __module__u __qualname__uTrueurun_2to3(u __locals__((u4/tmp/pip-jy811g-build/setuptools/command/build_py.pyu Mixin2to3 su Mixin2to3cBsΧ|EeZdZdZdd„Zdd„Zdd„Zdd „Zd d „Zd d „Z dd„Z dd„Z dd„Z e jdkr£ddd„Zndd„Zdd„Zdd„Zdd„Zd S(!ubuild_pyuXEnhanced 'build_py' command that includes data files with packages The data files are specified via a 'package_data' argument to 'setup()'. See 'setuptools.dist.Distribution' for more details. Also, this version of the 'build_py' command allows you to specify both 'py_modules' and 'packages' in the same setup operation. cCsctj|ƒ|jj|_|jjp+i|_d|jkrM|jd=ng|_g|_dS(Nu data_files(u _build_pyufinalize_optionsu distributionu package_datauexclude_package_datau__dict__u_build_py__updated_filesu_build_py__doctests_2to3(uself((u4/tmp/pip-jy811g-build/setuptools/command/build_py.pyufinalize_optionss   ubuild_py.finalize_optionscCs§|j r|j rdS|jr.|jƒn|jrN|jƒ|jƒn|j|jdƒ|j|jdƒ|j|j dƒ|j t j |ddƒƒdS(u?Build modules, packages, and copy data files to build directoryNuinclude_bytecodeiFT( u py_modulesupackagesu build_modulesubuild_packagesubuild_package_dataurun_2to3u_build_py__updated_filesuFalseuTrueu_build_py__doctests_2to3u byte_compileu _build_pyu get_outputs(uself((u4/tmp/pip-jy811g-build/setuptools/command/build_py.pyurun!s     u build_py.runcCs3|dkr#|jƒ|_}|Stj||ƒS(Nu data_files(u_get_data_filesu data_filesu _build_pyu __getattr__(uselfuattrufiles((u4/tmp/pip-jy811g-build/setuptools/command/build_py.pyu __getattr__5s ubuild_py.__getattr__cCsAtj||||ƒ\}}|r7|jj|ƒn||fS(N(u _build_pyu build_moduleu_build_py__updated_filesuappend(uselfumoduleu module_fileupackageuoutfileucopied((u4/tmp/pip-jy811g-build/setuptools/command/build_py.pyu build_module;subuild_py.build_modulecs°|jƒg}x™|jpfD]ˆ}|j|ƒ}tjj|jg|jdƒŒ}t|ƒd‰‡fdd†|j ||ƒDƒ}|j ||||fƒq W|S(u?Generate list of '(package,src_dir,build_dir,filenames)' tuplesu.ics g|]}|ˆd…‘qS(N((u.0ufile(uplen(u4/tmp/pip-jy811g-build/setuptools/command/build_py.pyu Qs u,build_py._get_data_files..( uanalyze_manifestupackagesuget_package_diruosupathujoinu build_libusplitulenufind_data_filesuappend(uselfudataupackageusrc_diru build_diru filenames((uplenu4/tmp/pip-jy811g-build/setuptools/command/build_py.pyu_get_data_filesAs %%ubuild_py._get_data_filescCs“|jjdgƒ|jj|gƒ}|jj|gƒdd…}x6|D].}|jttjj|t|ƒƒƒƒqNW|j |||ƒS(u6Return filenames for package's data files in 'src_dir'uN( u package_dataugetumanifest_filesuextenduglobuosupathujoinu convert_pathuexclude_data_files(uselfupackageusrc_diruglobsufilesupattern((u4/tmp/pip-jy811g-build/setuptools/command/build_py.pyufind_data_filesVs  ,ubuild_py.find_data_filesc CsΝxΖ|jD]»\}}}}x¦|D]ž}tjj||ƒ}|jtjj|ƒƒtjj||ƒ}|j||ƒ\}} tjj|ƒ}| r#||jj kr#|j j |ƒq#q#Wq WdS(u$Copy data files into build directoryN( u data_filesuosupathujoinumkpathudirnameu copy_fileuabspathu distributionuconvert_2to3_doctestsu_build_py__doctests_2to3uappend( uselfupackageusrc_diru build_diru filenamesufilenameutargetusrcfileuoutfucopied((u4/tmp/pip-jy811g-build/setuptools/command/build_py.pyubuild_package_data`s ubuild_py.build_package_datac Cs\i|_}|jjsdSi}x0|jp2fD]}||t|j|ƒƒg|]4\}}}}|D]}tjj||ƒ‘qqS((uosupathujoin(u.0upackageusrc_diru build_diru filenamesufilename((u4/tmp/pip-jy811g-build/setuptools/command/build_py.pyu s u(build_py.get_outputs..(u _build_pyu get_outputsu data_files(uselfuinclude_bytecode((u4/tmp/pip-jy811g-build/setuptools/command/build_py.pyu get_outputs‡s ubuild_py.get_outputscCsτy|j|SWntk r#YnXtj|||ƒ}||j|<| sZ|jj r^|Sx;|jjD])}||ks|j|dƒrkPqkqkW|St|dƒ}djƒ|j ƒkrζddl m }|j d|ƒn|j ƒ|S(u8Check namespace packages' __init__ for declare_namespaceu.urbUudeclare_namespacei(uloguΌWARNING: %s is a namespace package, but its __init__.py does not declare_namespace(); setuptools 0.7 will REQUIRE this! (See the setuptools manual under "Namespace Packages" for details.) (upackages_checkeduKeyErroru _build_pyu check_packageu distributionunamespace_packagesu startswithuopenuencodeureadu distutilsuloguwarnuclose(uselfupackageu package_diruinit_pyupkgufulog((u4/tmp/pip-jy811g-build/setuptools/command/build_py.pyu check_package•s(    ubuild_py.check_packagecCsi|_tj|ƒdS(N(upackages_checkedu _build_pyuinitialize_options(uself((u4/tmp/pip-jy811g-build/setuptools/command/build_py.pyuinitialize_options΄s ubuild_py.initialize_optionscCsAtj||ƒ}|jjdk r=tjj|jj|ƒS|S(N(u _build_pyuget_package_diru distributionusrc_rootuNoneuosupathujoin(uselfupackageures((u4/tmp/pip-jy811g-build/setuptools/command/build_py.pyuget_package_dirΈsubuild_py.get_package_dircsœ|jjdgƒ|jj|gƒ}g‰x<|D]4}ˆjtj|tjj|t|ƒƒƒƒq5Wt j ˆƒ‰i‰‡‡fdd†|DƒS(u6Filter filenames for package's data files in 'src_dir'ucs@g|]6}|ˆkr|ˆkrˆj|dƒr|‘qS(i(u setdefault(u.0uf(ubaduseen(u4/tmp/pip-jy811g-build/setuptools/command/build_py.pyu Μs u/build_py.exclude_data_files..( uexclude_package_dataugetuextendufnmatchufilteruosupathujoinu convert_pathudictufromkeys(uselfupackageusrc_dirufilesuglobsupattern((ubaduseenu4/tmp/pip-jy811g-build/setuptools/command/build_py.pyuexclude_data_filesΎs &ubuild_py.exclude_data_filesN(u__name__u __module__u __qualname__u__doc__ufinalize_optionsurunu __getattr__u build_moduleu_get_data_filesufind_data_filesubuild_package_datauanalyze_manifestuget_data_filesusysuversionu get_outputsu check_packageuinitialize_optionsuget_package_diruexclude_data_files(u __locals__((u4/tmp/pip-jy811g-build/setuptools/command/build_py.pyubuild_pys           ubuild_pycCsOtjj|ƒs|Sddlm}tjdƒjƒ|}||ƒ‚dS(Ni(uDistutilsSetupErroruΣ Error: setup script specifies an absolute path: %s setup() arguments must *always* be /-separated paths relative to the setup.py directory, *never* absolute paths. (uosupathuisabsudistutils.errorsuDistutilsSetupErrorutextwrapudedentulstrip(upathuDistutilsSetupErrorumsg((u4/tmp/pip-jy811g-build/setuptools/command/build_py.pyuassert_relativeΡs uassert_relative(uosusysufnmatchutextwrapudistutils.command.build_pyubuild_pyu _build_pyudistutils.utilu convert_pathuglobusetuptools.lib2to3_exu Mixin2to3u ImportErroruassert_relative(((u4/tmp/pip-jy811g-build/setuptools/command/build_py.pyus     Α