U âQabã@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&| ¡| ¡}|dk r"| |¡dS©N)ZbuildÚinstallZ byte_compile)ÚselfÚoutfiles©r úB/usr/lib/python3.8/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|jf|žŽ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)Zpkg_nameÚsepZchildr 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 sh|r |r |rt‚| ¡‰ˆs,tj |||¡Sddlm}ddlm‰g‰‡‡‡fdd„}||||ƒˆS)Nr)Úunpack_directory)Úlogcs<|ˆkrˆ d|¡dSˆ d|tj |¡¡ˆ |¡|S)Nz/Skipping installation of %s (namespace package)Fzcopying %s -> %s)ÚwarnÚinforrÚdirnameÚappend)ÚsrcZdst©Úexcluder&rr r Úpfgsÿ z!install_lib.copy_tree..pf) ÚAssertionErrorrÚorigrÚ copy_treeZsetuptools.archive_utilr%Z distutilsr&) rZinfileZoutfileZ preserve_modeZpreserve_timesZpreserve_symlinksÚlevelr%r.r r,r r1Vs   zinstall_lib.copy_treecs.tj |¡}| ¡‰ˆr*‡fdd„|DƒS|S)Ncsg|]}|ˆkr|‘qSr r )r Úf©r-r r Ú xsz+install_lib.get_outputs..)r0rÚ get_outputsr)rZoutputsr r4r r6ts  zinstall_lib.get_outputsN)r$r$rr$) Ú__name__Ú __module__Ú __qualname__Ú__doc__r rrÚ staticmethodr rrr1r6r r r r rs  þ r) rr!Ú itertoolsrrZdistutils.command.install_libZcommandrr0r r r r Ús