a ˆåÏh#ã@sHddlZddlZddlmZmZddlmmZGdd„dejƒZdS)éN)ÚproductÚstarmapc@sZeZdZdZdd„Zdd„Zdd„Zedd „ƒZd d „Z ed d „ƒZ ddd„Z dd„Z dS)Ú install_libz9Don't add compiled flags to filenames of non-Python filescCs&| ¡| ¡}|dur"| |¡dS©N)ZbuildÚinstallZ byte_compile)ÚselfÚoutfiles©r úB/usr/lib/python3.9/site-packages/setuptools/command/install_lib.pyÚrun szinstall_lib.runcs4‡fdd„ˆ ¡Dƒ}t|ˆ ¡ƒ}ttˆj|ƒƒS)z— Return a collections.Sized collections.Container of paths to be excluded for single_version_externally_managed installations. c3s"|]}ˆ |¡D] }|VqqdSr)Ú _all_packages)Ú.0Zns_pkgÚpkg©rr r Ú sþz-install_lib.get_exclusions..)Ú_get_SVEM_NSPsrÚ_gen_exclusion_pathsÚsetrÚ_exclude_pkg_path)rZ all_packagesZ excl_specsr rr Úget_exclusionss  þzinstall_lib.get_exclusionscCs&| d¡|g}tjj|jg|¢RŽS)zw Given a package name and exclusion path within that package, compute the full exclusion path. Ú.)ÚsplitÚosÚpathÚjoinZ install_dir)rrZexclusion_pathÚpartsr r r rszinstall_lib._exclude_pkg_pathccs |r|V| d¡\}}}qdS)zn >>> list(install_lib._all_packages('foo.bar.baz')) ['foo.bar.baz', 'foo.bar', 'foo'] rN)Ú rpartition)Úpkg_nameÚsepÚchildr r r r 'szinstall_lib._all_packagescCs,|jjs gS| d¡}|j}|r(|jjSgS)z‰ Get namespace packages (list) but only for single_version_externally_managed installations and empty otherwise. r)Z distributionZnamespace_packagesZget_finalized_commandZ!single_version_externally_managed)rZ install_cmdZsvemr r r r1s  zinstall_lib._get_SVEM_NSPsccsbdVdVdVttdƒs dStj ddtjj¡}|dV|d V|d V|d VdS) zk Generate file paths to be excluded for namespace packages (bytecode cache files). z __init__.pyz __init__.pycz __init__.pyoÚimplementationNÚ __pycache__z __init__.z.pycz.pyoz .opt-1.pycz .opt-2.pyc)ÚhasattrÚsysrrrr Ú cache_tag)Úbaser r r rAs  ÿ   z install_lib._gen_exclusion_pathsérc sX| ¡‰ˆstj |||¡Sddlm}ddlm‰g‰‡‡‡fdd„}||||ƒˆS)Nr)Úunpack_directory)Úlogcs<|ˆvrˆ d|¡dSˆ d|tj |¡¡ˆ |¡|S)Nz/Skipping installation of %s (namespace package)Fzcopying %s -> %s)ÚwarnÚinforrÚdirnameÚappend)ÚsrcÚdst©Úexcluder(rr r Úpfhsÿ z!install_lib.copy_tree..pf)rÚorigrÚ copy_treeZsetuptools.archive_utilr'Z distutilsr() rZinfileZoutfileZ preserve_modeZpreserve_timesZpreserve_symlinksÚlevelr'r1r r/r r3Ws   zinstall_lib.copy_treecs.tj |¡}| ¡‰ˆr*‡fdd„|DƒS|S)Ncsg|]}|ˆvr|‘qSr r )r Úf©r0r r Ú yóz+install_lib.get_outputs..)r2rÚ get_outputsr)rZoutputsr r6r r9us  zinstall_lib.get_outputsN)r&r&rr&) Ú__name__Ú __module__Ú __qualname__Ú__doc__r rrÚ staticmethodr rrr3r9r r r r rs  þ r) rr#Ú itertoolsrrZdistutils.command.install_libZcommandrr2r r r r Ús