§ w<ˆjy7ãóÜ—ddlZddlZddlZddlZddlmZddlmZddlZ ddl Z ddl m Z ddl mZddlmZd„Zd „Zd „Ze j d d ed ¬¦«d„¦«Zed¦«ddddddœdœed¦«dœZd„Ze j d¦«d„¦«Zed¦«ddddddœddidœidddœed¦«d œZd!„ZGd"„d#¦«Zd'd%„Zd&„Z dS)(éN)ÚPath)ÚMock)ÚSetuptoolsDeprecationWarning)Ú Distributioné)ÚDALSc óÈ—ttddgdgddgi¬¦«¦«}tjd¦«| ¦«| ¦«dS)z† Directories matching the glob in package_data should not be included in the package data. Regression test for #261. úsetup.pyÚbuild_pyÚzpath/*©Ú script_nameÚ script_argsÚpackagesÚ package_dataz path/subpathN)rÚdictÚosÚmakedirsÚparse_command_lineÚ run_commands©Ú tmpdir_cwdÚdists úp/builddir/build/BUILD/cloudlinux-venv-1.0.12/venv/lib/python3.11/site-packages/setuptools/tests/test_build_py.pyÚ%test_directories_in_package_data_globrsx€õ Ý Ø"Ø#˜ Ø�Tؘx˜jÐ)ð  ñ ô ñ ô €Dõ„K�ÑÔÐØ×ÒÑÔÐØ×ÒÑÔÐÐÐóc óv—ttddgdgddgi¬¦«¦«}tjd¦«t dd¦« ¦«| ¦«| ¦«tj tjd ¦«j ¦«s Jd ¦«‚d S) zt Files matching recursive globs (**) in package_data should be included in the package data. #1806 r r r z path/**/datar zpath/subpath/subsubpathzpath/subpath/subsubpath/dataÚwbz&build/lib/path/subpath/subsubpath/datazFile is not includedN) rrrrÚopenÚcloserrÚstatÚS_ISREGÚst_moders rÚ#test_recursive_in_package_data_globr$%sЀõ Ý Ø"Ø#˜ Ø�Tؘ~Ð.Ð/ð  ñ ô ñ ô €Dõ„KÐ)Ñ*Ô*Ð*ÝÐ '¨Ñ.Ô.×4Ò4Ñ6Ô6Ð6à×ÒÑÔÐØ×ÒÑÔÐå Œ<�œÐ HÑIÔIÔQÑ RÔ RððØñôÐ Rððrc óô—ttddgdgddgi¬¦«¦«}tjd¦«t dd¦« ¦«t dd¦« ¦«tjdtj¦«tjdtj¦«|  ¦«|  ¦«tj d ¦«d S) z· Ensure read-only flag is not preserved in copy for package modules and package data, as that causes problems with deleting read-only files on Windows. #1451 r r Úpkgzdata.datr úpkg/__init__.pyrz pkg/data.datÚbuildN) rrrrrr Úchmodr!ÚS_IREADrrÚshutilÚrmtreers rÚtest_read_onlyr-?sê€õ Ý Ø"Ø#˜ Ø�WØ * Ð.ð  ñ ô ñ ô €Dõ„K�ÑÔÐÝÐ ˜DÑ!Ô!×'Ò'Ñ)Ô)Ð)݈˜ÑÔ×$Ò$Ñ&Ô&Ð&Ý„HÐ ¥¤ Ñ-Ô-Ð-Ý„Hˆ^�Tœ\Ñ*Ô*Ð*Ø×ÒÑÔÐØ×ÒÑÔÐÝ „M�'ÑÔÐÐÐrzplatform.system() == "Windows"z-On Windows, files do not have executable bitsT)ÚreasonÚraisesÚstrictc óÚ—ttddgdgddgi¬¦«¦«}tjd¦«t dd¦« ¦«t dd¦« ¦«tjdd ¦«| ¦«| ¦«tj d ¦«j tj zs Jd ¦«‚d S) zv Ensure executable bit is preserved in copy for package data, as users rely on it for scripts. #2041 r r r&zrun-mer r'rz pkg/run-meiÀzbuild/lib/pkg/run-mezScript is not executableN) rrrrrr r)rrr!r#ÚS_IEXECrs rÚtest_executable_datar3Zsù€õ Ý Ø"Ø#˜ Ø�WØ ( Ð,ð  ñ ô ñ ô €Dõ„K�ÑÔÐÝÐ ˜DÑ!Ô!×'Ò'Ñ)Ô)Ð)݈�tÑÔ×"Ò"Ñ$Ô$Ð$Ý„Hˆ\˜5Ñ!Ô!Ð!à×ÒÑÔÐØ×ÒÑÔÐå Œ7Ð)Ñ *Ô *Ô 2µT´\Ñ AððØ"ñôÐ AððrzÒ [metadata] name = mypkg version = 42 [options] include_package_data = True packages = find: [options.packages.find] exclude = *.tests* r )ú __init__.pyz test_mypkg.pyz test_file.txt)r4úresource_file.txtÚtestszŒ global-include *.py *.txt global-exclude *.py[cod] prune dist prune build prune *.egg-info )z setup.cfgÚmypkgú MANIFEST.incóT—tj t¦«t ddi¦«}| ¦«| d¦«}d}tjt|¬¦«5tj d¦«dkrtj dd d ¬ ¦«| ¦«| ¦«ddd¦«n #1swxYwYt!| d¦«j¦«}|d z  ¦«sJ‚|d z  ¦«sJ‚dD]M}tjt(¦«5||z  ¦«rJ‚ ddd¦«n #1swxYwYŒNtjd¦«dS)Nrú %PEP 517%r z9Python recognizes 'mypkg\.tests' as an importable package)ÚmatchÚSETUPTOOLS_USE_DISTUTILSÚstdlibÚignorez!'encoding' argument not specifiedzdistutils.text_file)Úmoduleúmypkg/__init__.pyzmypkg/resource_file.txt)zmypkg/tests/__init__.pyzmypkg/tests/test_mypkg.pyzmypkg/tests/test_file.txtz mypkg/testsz#3260)ÚjaracoÚpathr(ÚEXAMPLE_WITH_MANIFESTrÚparse_config_filesÚget_command_objÚpytestÚwarnsrrÚgetenvÚwarningsÚfilterwarningsÚfinalize_optionsÚrunrÚ build_libÚexistsr/ÚAssertionErrorÚxfail)rrr ÚmsgÚ build_dirÚfs rÚtest_excluded_subpackagesrT s,€Ý „K×ÒÕ+Ñ,Ô,Ð,Ý ˜¨ Ð4Ñ 5Ô 5€DØ×ÒÑÔÐà×#Ò# JÑ/Ô/€Hà F€CÝ ŒÕ2¸#Ð >Ñ >Ô >ððõ Œ9Ð/Ñ 0Ô 0°HÒ <Ð <õ Ô #ØØ3Ø,ð ñ ô ð ð ×!Ò!Ñ#Ô#Ð#Ø� Š ‰Œˆð!ððñôððððððøøøððððõ$�T×)Ò)¨*Ñ5Ô5Ô?Ñ@Ô@€IØ Ð+Ñ +× 3Ò 3Ñ 5Ô 5Ð5Ð5Ð 5Ø Ð1Ñ 1× 9Ò 9Ñ ;Ô ;Ð;Ð;Ð ;ðð 0ð 0ˆõ Œ]�>Ñ *Ô *ð 0ð 0ð" A™ ×-Ò-Ñ/Ô/Ð /Ð /Ð/Ð /ð 0ð 0ð 0ñ 0ô 0ð 0ð 0ð 0ð 0ð 0ð 0øøøð 0ð 0ð 0ð 0øõ  „L�ÑÔÐÐÐs%Áj d ¦«}||vsJ‚d S) zwWhen provided with the ``existing_egg_info_dir`` attribute, build_py should not attempt to run egg_info again. rr:Úegg_infoz *.egg-infor )Ú side_effectrLÚ data_filesNcóB—| tjd¦«S)Nú/©ÚreplacerÚsep)Úxs rúz(test_existing_egg_info..ÿs€˜AŸIšI¥b¤f¨cÑ2Ô2€rr@rZ)!rArBr(rCrrDÚinclude_package_datarEÚ run_commandÚnextrÚegg_baseÚglobÚis_dirrKrrLÚsetattrÚ__dict__ÚpopÚreinitialize_commandÚexisting_egg_info_dirÚ assert_calledÚ reset_mockÚassert_not_calledrXÚmapÚ get_outputsÚstrrMr\rr]) rÚ monkeypatchrrVÚ egg_info_dirr Ú egg_info_runÚoutputsÚexamples rÚtest_existing_egg_inforvÎsW€õ „K×ÒÕ+Ñ,Ô,Ð,Ý ˜¨ Ð4Ñ 5Ô 5€DØ×ÒÑÔÐØ Ô $Ð$Ð$Ð $à×#Ò# JÑ/Ô/€HØ×Ò�ZÑ Ô Ð Ý�˜XÔ.Ñ/Ô/×4Ò4°\ÑBÔBÑCÔC€LØ × Ò Ñ Ô Ð Ð Ð ð×#Ò# JÑ/Ô/€HØ ×ÒÑÔÐØ×#Ò# JÑ/Ô/€HÝ H¤LÐ1Ñ1Ô1€LØ×Ò˜ %¨Ñ6Ô6Ð6ð  Ô×Ò˜,¨Ñ-Ô-Ð-Ø×Ò˜hÑ'Ô'Ð'ð&*€HÔ"Ø ‡L‚L�N„N€NØ×ÒÑ Ô Ð ð×ÒÑÔÐØ Ô×Ò˜,¨Ñ-Ô-Ð-Ø×Ò˜hÑ'Ô'Ð'ð&2€HÔ"Ø ‡L‚L�N„N€NØ×"Ò"Ñ$Ô$Ð$Ø Ô ÐÐÐ õÐ2Ð2°H×4HÒ4HÑ4JÔ4JÑKÔK€GØ €N€Nˆ7Ý•$�xÔ)Ð+>Ñ?Ô?Ñ@Ô@×HÒHÍÌÐQTÑUÔU€GØ �gÐ Ð Ð Ð Ð Ð ra; [project] name = "mypkg" version = "42" [tool.setuptools] packages = ["mypkg", "mypkg.sub1", "mypkg.sub2", "mypkg.sub2.nested"] [tool.setuptools.package-dir] "" = "src" "mypkg.sub2" = "src/mypkg/_sub2" "mypkg.sub2.nested" = "other" r7)r4zmod1.pyzmod2.py)r4r5Úsub1Ú_sub2)r4zmod3.pyzL global-include *.py *.txt global-exclude *.py[cod] )úpyproject.tomlÚsrcÚotherr8có|—tj t¦«t ddi¦«}| ¦«| d¦«}d|_| ¦«|j   tj d¦«}d„|  ¦«D¦«}||›d�|›d�|›d �|›d �|›d �|›d �|›d �hksJ‚d„| ¦« ¦«D¦«}||›d�d|›d�d|›d �d|›d �d|›d �d|›d �d|›d �diksJ‚dS)Nrz%test%r TrZcóN—h|]"}| tjd¦«’Œ#S©rZr[)Ú.0r^s rú z#test_get_outputs..8s(€ÐFÐFÐF¨!ˆq�yŠy�œ Ñ%Ô%ÐFÐFÐFrz/mypkg/__init__.pyz/mypkg/resource_file.txtz/mypkg/sub1/__init__.pyz/mypkg/sub1/mod1.pyz/mypkg/sub2/mod2.pyz/mypkg/sub2/nested/__init__.pyz/mypkg/sub2/nested/mod3.pycó’—i|]D\}}| tjd¦«| tjd¦«“ŒESr~r[)rÚkÚvs rú z$test_get_outputs..BsN€ðððá ˆAˆqð � Š •"”&˜#ÑÔ § ¢ ­"¬&°#Ñ 6Ô 6ðððrzsrc/mypkg/__init__.pyzsrc/mypkg/resource_file.txtzsrc/mypkg/sub1/__init__.pyzsrc/mypkg/sub1/mod1.pyzsrc/mypkg/_sub2/mod2.pyzother/__init__.pyz other/mod3.py)rArBr(ÚEXAMPLE_ARBITRARY_MAPPINGrrDrEÚ editable_modeÚensure_finalizedrMr\rr]roÚget_output_mappingÚitems)rrr rMrtÚmappings rÚtest_get_outputsr‹/sÙ€Ý „K×ÒÕ/Ñ0Ô0Ð0Ý ˜¨Ð1Ñ 2Ô 2€DØ×ÒÑÔÐà×#Ò# JÑ/Ô/€HØ!€HÔØ ×ÒÑÔÐØÔ"×*Ò*­2¬6°3Ñ7Ô7€IØFÐF¨x×/CÒ/CÑ/EÔ/EÐFÑFÔF€GØ Ø Ð(Ð(Ð(Ø Ð.Ð.Ð.Ø Ð-Ð-Ð-Ø Ð)Ð)Ð)Ø Ð)Ð)Ð)Ø Ð4Ð4Ð4Ø Ð0Ð0Ð0ðò ð ð ð ððà×/Ò/Ñ1Ô1×7Ò7Ñ9Ô9ðñô€Gð Ø Ð(Ð(Ð(Ð*AØ Ð.Ð.Ð.Ð0MØ Ð-Ð-Ð-Ð/KØ Ð)Ð)Ð)Ð+CØ Ð)Ð)Ð)Ð+DØ Ð4Ð4Ð4Ð6IØ Ð0Ð0Ð0°/ðò ð ð ð ð ð rc ó^—eZdZed¦«ed¦«ed¦«dœZdddddœidd hd œdd ddd œiid dhd œdddidddœihd£d œdœZej ddej dej  d¬¦«¬¦«g¦«ej de  ¦«¦«d„¦«¦«Z ej ddg¦«ej de  ¦«¦«d„¦«¦«Z d„ZdS)ÚTestTypeInfoFileszV [project] name = "foo" version = "1" zž [project] name = "foo" version = "1" [tool.setuptools] include-package-data = false zú [project] name = "foo" version = "1" [tool.setuptools] include-package-data = false [tool.setuptools.exclude-package-data] "*" = ["py.typed", "*.pyi"] )Údefault_pyprojectÚdont_include_package_dataÚexclude_type_infoÚfoor )úbar.pyiúpy.typedr4z foo/bar.pyiú foo/py.typed)Údirectory_structureÚexpected_type_filesÚbar)r“zmod.pyizfoo/bar/mod.pyizfoo/bar/py.typedzfoo.pyi)Ú namespaceú __init__.pyir“>úfoo/__init__.pyiúfoo/namespace/foo.pyir”)Úsimple_namespaceÚnested_inside_namespaceÚnamespace_nested_inside_regularÚ pyprojectrŽr�zpypa/setuptools#4350)r.)Úmarksrucóü—i|j|d¥d|j|i¥}|j|d}tj |¦«t ¦«}t |¦«}||ksJ‚dS©Nr•ryr–)ÚEXAMPLESÚ PYPROJECTSrArBr(Úget_finalized_build_pyro©ÚselfrrŸruÚ structurer–r rts rÚ#test_type_files_included_by_defaultz5TestTypeInfoFiles.test_type_files_included_by_default›sŽ€ð ØŒm˜GÔ$Ð%:Ô;ð à ˜dœo¨iÔ8ð ð ˆ ð#œm¨GÔ4Ð5JÔKÐÝŒ ×Ò˜)Ñ$Ô$Ð$å)Ñ+Ô+ˆÝ˜hÑ'Ô'ˆØ" gÒ-Ð-Ð-Ð-Ð-Ð-rr�có—i|j|d¥d|j|i¥}|j|d}tj |¦«t ¦«}t |¦«}| |¦«sJ‚dSr¢)r£r¤rArBr(r¥roÚ isdisjointr¦s rÚtest_type_files_can_be_excludedz1TestTypeInfoFiles.test_type_files_can_be_excluded²s—€ð ØŒm˜GÔ$Ð%:Ô;ð à ˜dœo¨iÔ8ð ð ˆ ð#œm¨GÔ4Ð5JÔKÐÝŒ ×Ò˜)Ñ$Ô$Ð$å)Ñ+Ô+ˆÝ˜hÑ'Ô'ˆØ"×-Ò-¨gÑ6Ô6Ð6Ð6Ð6Ð6Ð6rcóÀ—td¦«dddœdœ}ddh}tj |¦«t ¦«}t |¦«}||ksJ‚dS)Nzl [project] name = "foo-stubs" version = "1" r )r™r’)ryz foo-stubszfoo-stubs/__init__.pyizfoo-stubs/bar.pyi)rrArBr(r¥ro)r§rr¨r–r rts rÚtest_stub_only_packagez(TestTypeInfoFiles.test_stub_only_packageÀs€€å"ðñôð+-¸Ð<Ð<ð  ð  ˆ ð 8Ð9LÐMÐÝŒ ×Ò˜)Ñ$Ô$Ð$å)Ñ+Ô+ˆÝ˜hÑ'Ô'ˆØ" gÒ-Ð-Ð-Ð-Ð-Ð-rN)Ú__name__Ú __module__Ú __qualname__rr¤r£rFÚmarkÚ parametrizeÚparamrPÚkeysr©r¬r®©rrr�r�Qs€€€€€à!˜Tð ñ ô ð&* Tð ñ & ô & ð"˜Tð ñ  ô  ð%ð€JðHØ!Ø "Ø#%ððð$ð%2°>Ð#Bð  ð  ðØØ$&Ø#%ðððð$ð%6Ð7IÐ#Jð $ ð $ ðà! 2ð"ð%'Ø "ð ðð$ð$ð$ð$ð, ð, ð-&ð&€HðP „[×ÒØà Ø ˆFŒLØ+Ø”k×'Ò'Ð/EÐ'ÑFÔFð ñ ô ð ñ ô ð „[×Ò˜Y¨¯ ª ©¬Ñ8Ô8ð .ð .ñ9Ô8ñ ô ð .ð „[×Ò˜[Ð+>Ð*?Ñ@Ô@Ø „[×Ò˜Y¨¯ ª ©¬Ñ8Ô8ð 7ð 7ñ9Ô8ñAÔ@ð 7ð.ð.ð.ð.ð.rr�ú%build_py-test%có¢—td|i¦«}| ¦«| d¦«}| ¦«|S)Nrr )rrDrErK)rrr s rr¥r¥ÓsP€Ý ˜¨ Ð4Ñ 5Ô 5€DØ×ÒÑÔÐØ×#Ò# JÑ/Ô/€HØ ×ÒÑÔÐØ €Orcól‡—t|j¦«Šˆfd„| ¦«D¦«S)Nc󌕗h|]@}tj |‰¦« tjd¦«’ŒASr~)rrBÚrelpathr\r])rr^rRs €rr€zget_outputs..ÝsKø€ð ð ð à õ Œ�Š˜˜9Ñ%Ô%×-Ò-­b¬f°cÑ:Ô:ð ð ð r)rrMro)r rRs @rroroÛsJø€Ý�XÔ'Ñ(Ô(€Ið ð ð ð à×%Ò%Ñ'Ô'ð ñ ô ðr)r·)!rr+r!rIÚpathlibrÚ unittest.mockrÚ jaraco.pathrArFÚ setuptoolsrÚsetuptools.distrÚtextwraprrr$r-r²rPrOr3rCrTrJrvr…r‹r�r¥ror¶rrúrÂs•ðØ € € € Ø € € € Ø € € € Ø€€€ØÐÐÐÐÐØÐÐÐÐÐàÐÐÐØ € € € à3Ð3Ð3Ð3Ð3Ð3Ø(Ð(Ð(Ð(Ð(Ð(àÐÐÐÐÐðððð(ððð4ððð6„×ÒØ$Ø :Ø Ø ð ñôð ðñ ôð ð:�ð ñ ô ðØàØØð ð ððð�4ð ñôð1!ð!ÐðH+ð+ð+ð\„×ÒÐMÑNÔNð3ð3ñOÔNð3ðn�dð ñôð ØØ!#à!Øððð ˜2ðð  ð  ð ðØððð�4ð ñôðC'ð'ÐðTðððD.ð.ð.ð.ð.ñ.ô.ð.ðDððððððððr