+
    êhj7  ã                   óÔ  € ^ RI t ^ RIt^ RIt^ RIt^ RIHt ^ RIHt ^ RIt	^ RI
t
^ RIHt ^ RIHt ^RIHt R tR tR	 t]
P(                  P+                  R
R]RR7      R 4       tR]! R4      RRRRRRRRRRRR//R]! R4      /tR t]
P(                  P5                  R4      R 4       tR]! R4      RRRRRRR RRR!R/R"R#R///R$RRR%R/R]! R&4      /tR' t ! R( R)4      tR,R* ltR+ t R# )-é    N)ÚPath)ÚMock)ÚSetuptoolsDeprecationWarning)ÚDistribution)ÚDALSc           	     ó¬   € \        \        RR.R.RR./R7      4      p\        P                  ! R4       VP	                  4        VP                  4        R# )zv
Directories matching the glob in package_data should
not be included in the package data.

Regression test for #261.
úsetup.pyÚbuild_pyÚ zpath/*©Úscript_nameÚscript_argsÚpackagesÚpackage_datazpath/subpathN)r   ÚdictÚosÚmakedirsÚparse_command_lineÚrun_commands©Ú
tmpdir_cwdÚdists   & Ú@/usr/lib/python3/dist-packages/setuptools/tests/test_build_py.pyÚ%test_directories_in_package_data_globr      sS   € ô ÜØ"Ø#˜Ø�TØ˜x˜jÐ)ô		
ó€Dô ‡K‚K�ÔØ×ÑÔØ×ÑÖó    c           	     ób  € \        \        RR.R.RR./R7      4      p\        P                  ! R4       \	        RR4      P                  4        VP                  4        VP                  4        \        P                  ! \        P                  ! R	4      P                  4      '       g   Q R
4       hR# )zd
Files matching recursive globs (**) in package_data should
be included in the package data.

#1806
r	   r
   r   zpath/**/datar   zpath/subpath/subsubpathzpath/subpath/subsubpath/dataÚwbz&build/lib/path/subpath/subsubpath/datazFile is not includedN)r   r   r   r   ÚopenÚcloser   r   ÚstatÚS_ISREGÚst_moder   s   & r   Ú#test_recursive_in_package_data_globr#   %   s˜   € ô ÜØ"Ø#˜Ø�TØ˜~Ð.Ð/ô		
ó€Dô ‡K‚KÐ)Ô*ÜÐ	'¨Ó.×4Ñ4Ô6à×ÑÔØ×ÑÔä�<Š<œŸšÐ HÓI×QÑQ×RÒRð ØóÒRr   c           	     óÔ  € \        \        RR.R.RR./R7      4      p\        P                  ! R4       \	        RR4      P                  4        \	        RR4      P                  4        \        P                  ! R\        P                  4       \        P                  ! R\        P                  4       VP                  4        VP                  4        \        P                  ! R	4       R
# )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
   Úpkgzdata.datr   úpkg/__init__.pyr   zpkg/data.datÚbuildN)r   r   r   r   r   r   Úchmodr    ÚS_IREADr   r   ÚshutilÚrmtreer   s   & r   Útest_read_onlyr,   ?   s«   € ô ÜØ"Ø#˜Ø�WØ * Ð.ô		
ó€Dô ‡K‚K�ÔÜÐ	˜DÓ!×'Ñ'Ô)Üˆ˜Ó×$Ñ$Ô&Ü‡H‚HÐ¤§¡Ô-Ü‡H‚Hˆ^œTŸ\™\Ô*Ø×ÑÔØ×ÑÔÜ
‡M‚M�'Ör   zplatform.system() == "Windows"z-On Windows, files do not have executable bitsT)ÚreasonÚraisesÚstrictc           	     óÆ  € \        \        RR.R.RR./R7      4      p\        P                  ! R4       \	        RR4      P                  4        \	        RR4      P                  4        \        P                  ! RR	4       VP                  4        VP                  4        \        P                  ! R
4      P                  \        P                  ,          '       g   Q R4       hR# )zf
Ensure executable bit is preserved in copy for
package data, as users rely on it for scripts.

#2041
r	   r
   r%   zrun-mer   r&   r   z
pkg/run-meiÀ  zbuild/lib/pkg/run-mezScript is not executableN)r   r   r   r   r   r   r(   r   r   r    r"   ÚS_IEXECr   s   & r   Útest_executable_datar2   Z   s·   € ô ÜØ"Ø#˜Ø�WØ ( Ð,ô		
ó€Dô ‡K‚K�ÔÜÐ	˜DÓ!×'Ñ'Ô)Üˆ�tÓ×"Ñ"Ô$Ü‡H‚Hˆ\˜5Ô!à×ÑÔØ×ÑÔä�7Š7Ð)Ó*×2Ñ2´T·\±\×AÔAð Ø"óÒAr   z	setup.cfgzÒ
        [metadata]
        name = mypkg
        version = 42

        [options]
        include_package_data = True
        packages = find:

        [options.packages.find]
        exclude = *.tests*
        Úmypkgú__init__.pyr   zresource_file.txtÚtestsztest_mypkg.pyztest_file.txtzMANIFEST.inzŒ
        global-include *.py *.txt
        global-exclude *.py[cod]
        prune dist
        prune build
        prune *.egg-info
        c                 ó’  € \         P                  P                  \        4       \	        R R/4      pVP                  4        VP                  R4      pRp\        P                  ! \        VR7      ;_uu_ 4        \        P                  ! R4      R8X  d   \        P                  ! RRR	R
7       VP                  4        VP                  4        RRR4       \!        VP                  R4      P"                  4      pVR,          P%                  4       '       g   Q hVR,          P%                  4       '       g   Q hR FM  p\        P&                  ! \(        4      ;_uu_ 4        WE,          P%                  4       '       d   Q h RRR4       KO  	  \        P*                  ! R4       R#   + '       g   i     LÝ; i  + '       g   i     K�  ; i)r   ú	%PEP 517%r
   z9Python recognizes 'mypkg\.tests' as an importable package)ÚmatchÚSETUPTOOLS_USE_DISTUTILSÚstdlibÚignorez!'encoding' argument not specifiedzdistutils.text_file)ÚmoduleNúmypkg/__init__.pyzmypkg/resource_file.txtz#3260)zmypkg/tests/__init__.pyzmypkg/tests/test_mypkg.pyzmypkg/tests/test_file.txtzmypkg/tests)ÚjaracoÚpathr'   ÚEXAMPLE_WITH_MANIFESTr   Úparse_config_filesÚget_command_objÚpytestÚwarnsr   r   ÚgetenvÚwarningsÚfilterwarningsÚfinalize_optionsÚrunr   Ú	build_libÚexistsr.   ÚAssertionErrorÚxfail)r   r   r
   ÚmsgÚ	build_dirÚfs   &     r   Útest_excluded_subpackagesrQ       sX  € Ü
‡K�K×ÑÔ+Ô,Ü˜¨Ð4Ó5€DØ×ÑÔà×#Ñ# JÓ/€Hà
F€CÜ	�ŠÔ2¸#×	>Ö	>ô
 �9Š9Ð/Ó0°HÔ<ô ×#Ò#ØØ3Ø,õð 	×!Ñ!Ô#Ø�‰Œ÷! 
?ô$ �T×)Ñ)¨*Ó5×?Ñ?Ó@€IØÐ+Õ+×3Ñ3×5Ò5Ð5Ð5ØÐ1Õ1×9Ñ9×;Ò;Ð;Ð;óˆô �]Š]œ>×*Õ*ð "�×-Ñ-×/Ò/Ð/Ð/Ð/÷ +Ñ*ñô ‡L‚L�Ö÷G 
?×	>ú÷< +×*Ð*ús   Á8AF"ÅF5Æ"F2	Æ5Gz/ignore::setuptools.SetuptoolsDeprecationWarningc                óœ  € \         P                  P                  \        4       \	        RR/4      pVP                  4        VP                  '       g   Q hVP                  R4      pVP                  R4       \        \        VP                  4      P                  R4      4      pVP                  4       '       g   Q hVP                  R4      pVP                  4        VP                  R4      p\        VP                   R7      pVP#                  VRV4       VP$                  P'                  RR	4       VP)                  V4       R	Vn        VP!                  4        VP-                  4        VP/                  4        VP$                  P'                  RR	4       VP)                  V4       WEn        VP!                  4        VP1                  4        VP2                  '       g   Q h\5        R
 VP7                  4       4      pV'       g   Q h\9        \        VP:                  R4      4      P=                  \>        P@                  R4      pW‡9   g   Q hR	# )zoWhen provided with the ``existing_egg_info_dir`` attribute, build_py should not
attempt to run egg_info again.
r   r7   Úegg_infoz
*.egg-infor
   )Úside_effectrI   Ú
data_filesNc                 óB   € V P                  \        P                  R 4      # ©Ú/)Úreplacer   Úsep)Úxs   &r   Ú<lambda>Ú(test_existing_egg_info.<locals>.<lambda>ÿ   s   € ˜AŸI™I¤b§f¡f¨cÔ2r   r=   rX   )!r>   r?   r'   r@   r   rA   Úinclude_package_datarB   Úrun_commandÚnextr   Úegg_baseÚglobÚis_dirrH   r   rI   ÚsetattrÚ__dict__ÚpopÚreinitialize_commandÚexisting_egg_info_dirÚassert_calledÚ
reset_mockÚassert_not_calledrU   ÚmapÚget_outputsÚstrrJ   rY   r   rZ   )	r   Úmonkeypatchr   rS   Úegg_info_dirr
   Úegg_info_runÚoutputsÚexamples	   &&       r   Útest_existing_egg_infort   Î   sà  € ô ‡K�K×ÑÔ+Ô,Ü˜¨Ð4Ó5€DØ×ÑÔØ×$×$Ð$Ð$Ð$à×#Ñ# JÓ/€HØ×Ñ�ZÔ Üœ˜X×.Ñ.Ó/×4Ñ4°\ÓBÓC€LØ×Ñ× Ò Ð Ð ð ×#Ñ# JÓ/€HØ×ÑÔØ×#Ñ# JÓ/€HÜ H§L¡LÔ1€LØ×Ñ˜ %¨Ô6ð
 ×Ñ×Ñ˜,¨Ô-Ø×Ñ˜hÔ'ð &*€HÔ"Ø‡L�L„NØ×ÑÔ ð ×ÑÔØ×Ñ×Ñ˜,¨Ô-Ø×Ñ˜hÔ'ð &2Ô"Ø‡L�L„NØ×"Ñ"Ô$Ø××ÐÐÐô Ñ2°H×4HÑ4HÓ4JÓK€Gß€Nˆ7Ü”$�x×)Ñ)Ð+>Ó?Ó@×HÑHÌÏÉÐQTÓU€GØÔÐÒr   úpyproject.tomla;  
        [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"
        ÚsrcÚsub1zmod1.pyÚ_sub2zmod2.pyÚotherzmod3.pyzL
        global-include *.py *.txt
        global-exclude *.py[cod]
        c                 ó6  € \         P                  P                  \        4       \	        R R/4      pVP                  4        VP                  R4      pRVn        VP                  4        VP                  P                  \        P                  R4      pVP                  4        Uu0 uF"  qDP                  \        P                  R4      kK$  	  ppVV R2V R2V R2V R2V R	2V R
2V R208X  g   Q hVP                  4       P                  4        UUu/ uFD  w  rgVP                  \        P                  R4      VP                  \        P                  R4      bKF  	  pppVV R2RV R2RV R2RV R2RV R	2RV R
2RV R2R/8X  g   Q hR# u upi u uppi )r   z%test%r
   TrX   z/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.pyzsrc/mypkg/__init__.pyzsrc/mypkg/resource_file.txtzsrc/mypkg/sub1/__init__.pyzsrc/mypkg/sub1/mod1.pyzsrc/mypkg/_sub2/mod2.pyzother/__init__.pyzother/mod3.pyN)r>   r?   r'   ÚEXAMPLE_ARBITRARY_MAPPINGr   rA   rB   Úeditable_modeÚensure_finalizedrJ   rY   r   rZ   rm   Úget_output_mappingÚitems)	r   r   r
   rJ   r[   rr   ÚkÚvÚmappings	   &        r   Útest_get_outputsrƒ   /  sÞ  € Ü
‡K�K×ÑÔ/Ô0Ü˜¨Ð1Ó2€DØ×ÑÔà×#Ñ# JÓ/€HØ!€HÔØ×ÑÔØ×"Ñ"×*Ñ*¬2¯6©6°3Ó7€IØ/7×/CÑ/CÔ/EÓFÑ/E¨!�y‰yœŸ™ Ö%Ñ/E€GÐFØØˆ+Ð'Ð(Øˆ+Ð-Ð.Øˆ+Ð,Ð-Øˆ+Ð(Ð)Øˆ+Ð(Ð)Øˆ+Ð3Ð4Øˆ+Ð/Ð0ðô ð ð ð ×/Ñ/Ó1×7Ñ7Ô9ôá9‰DˆAð 	
�	‰	”"—&‘&˜#Ó §	¡	¬"¯&©&°#Ó 6Ò6Ù9ð ñ ð Øˆ+Ð'Ð(Ð*AØˆ+Ð-Ð.Ð0MØˆ+Ð,Ð-Ð/KØˆ+Ð(Ð)Ð+CØˆ+Ð(Ð)Ð+DØˆ+Ð3Ð4Ð6IØˆ+Ð/Ð0°/ðô ð ò ùò Gùós   Â%(FÄA
Fc                   ó\  a € ] tR tRt o R]! R4      R]! R4      R]! R4      /tRR	R
RRRRRR//RRR0/RR	R
RRRRR///RRR0/RR	R
RRR/RRRR//R0 R%m//t]P                  P                  RR]P                  ! R]P                  P                  RR7      R7      .4      ]P                  P                  R]P                  4       4      R  4       4       t]P                  P                  RR.4      ]P                  P                  R]P                  4       4      R! 4       4       tR" tR#tV tR$# )&ÚTestTypeInfoFilesiQ  Údefault_pyprojectzV
            [project]
            name = "foo"
            version = "1"
            Údont_include_package_datazž
            [project]
            name = "foo"
            version = "1"

            [tool.setuptools]
            include-package-data = false
            Úexclude_type_infozú
            [project]
            name = "foo"
            version = "1"

            [tool.setuptools]
            include-package-data = false

            [tool.setuptools.exclude-package-data]
            "*" = ["py.typed", "*.pyi"]
            Úsimple_namespaceÚdirectory_structureÚfooúbar.pyir   zpy.typedr4   Úexpected_type_fileszfoo/bar.pyiúfoo/py.typedÚnested_inside_namespaceÚbarzmod.pyizfoo/bar/mod.pyizfoo/bar/py.typedÚnamespace_nested_inside_regularÚ	namespacezfoo.pyiú__init__.pyiÚ	pyprojectzpypa/setuptools#4350)r-   )Úmarksrs   c                ó  € / V P                   V,          R ,          CRV P                  V,          /CpV P                   V,          R,          p\        P                  P	                  V4       \        4       p\        V4      pWW8:  g   Q hR# ©rŠ   ru   r�   N)ÚEXAMPLESÚ
PYPROJECTSr>   r?   r'   Úget_finalized_build_pyrm   ©Úselfr   r”   rs   Ú	structurer�   r
   rr   s   &&&&    r   Ú#test_type_files_included_by_defaultÚ5TestTypeInfoFiles.test_type_files_included_by_default›  sz   € ð
Ø�m‰m˜GÕ$Ð%:Õ;ð
à˜dŸo™o¨iÕ8ñ
ˆ	ð #Ÿm™m¨GÕ4Ð5JÕKÐÜ�‰×Ñ˜)Ô$ä)Ó+ˆÜ˜hÓ'ˆØ"Ô-Ð-Ò-r   c                ó6  € / V P                   V,          R ,          CRV P                  V,          /CpV P                   V,          R,          p\        P                  P	                  V4       \        4       p\        V4      pVP                  V4      '       g   Q hR# r—   )r˜   r™   r>   r?   r'   rš   rm   Ú
isdisjointr›   s   &&&&    r   Útest_type_files_can_be_excludedÚ1TestTypeInfoFiles.test_type_files_can_be_excluded²  s…   € ð
Ø�m‰m˜GÕ$Ð%:Õ;ð
à˜dŸo™o¨iÕ8ñ
ˆ	ð #Ÿm™m¨GÕ4Ð5JÕKÐÜ�‰×Ñ˜)Ô$ä)Ó+ˆÜ˜hÓ'ˆØ"×-Ñ-¨g×6Ò6Ð6Ò6r   c                ó¬   € R \        R4      RRRRR//pRR0p\        P                  P                  V4       \	        4       p\        V4      pW58:  g   Q hR# )	ru   zl
                [project]
                name = "foo-stubs"
                version = "1"
                z	foo-stubsr“   r   rŒ   zfoo-stubs/__init__.pyizfoo-stubs/bar.pyiN)r   r>   r?   r'   rš   rm   )rœ   r   r�   r�   r
   rr   s   &&    r   Útest_stub_only_packageÚ(TestTypeInfoFiles.test_stub_only_packageÀ  sf   € àœdðóð ˜.¨"¨i¸Ð<ð	
ˆ	ð  8Ð9LÐMÐÜ�‰×Ñ˜)Ô$ä)Ó+ˆÜ˜hÓ'ˆØ"Ô-Ð-Ò-r   © N>   rŽ   úfoo/__init__.pyiúfoo/namespace/foo.pyi)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r™   r˜   rC   ÚmarkÚparametrizeÚparamrM   Úkeysrž   r¢   r¥   Ú__static_attributes__Ú__classdictcell__)Ú__classdict__s   @r   r…   r…   Q  s¹  ø‡ € à™Tðó
ð 	$¡Tðó	&
ð 	™Tð
ó
ð%€JðD 	Ø!ØØ˜rØ Ø! 2ðð$ð " M°>Ð#Bð	
ð 	"Ø!ØØØ" BØ! 2ððð$ð "Ð$5Ð7IÐ#Jð
$
ð 	*Ø!ØØØ! 2ð"ð # BØ ðð$ð "ò $ð,
ð-&€HðP ‡[�[×ÑØàØ�LŠLØ+Ø—k‘k×'Ñ'Ð/EÐ'ÓFôð	
ó	ð ‡[�[×Ñ˜Y¨¯©«Ó8ñ
.ó 9ó	ð
.ð ‡[�[×Ñ˜[Ð+>Ð*?Ó@Ø‡[�[×Ñ˜Y¨¯©«Ó8ñ
7ó 9ó Að
7÷.ð .r   r…   c                 ó‚   € \        R V /4      pVP                  4        VP                  R4      pVP                  4        V# )r   r
   )r   rA   rB   rH   )r   r   r
   s   &  r   rš   rš   Ó  s>   € Ü˜¨Ð4Ó5€DØ×ÑÔØ×#Ñ# JÓ/€HØ×ÑÔØ€Or   c                 óì   € \        V P                  4      pV P                  4        Uu0 uF@  p\        P                  P                  W!4      P                  \        P                  R 4      kKB  	  up# u upi rW   )r   rJ   rm   r   r?   ÚrelpathrY   rZ   )r
   rO   r[   s   &  r   rm   rm   Û  s`   € Ü�X×'Ñ'Ó(€Ið ×%Ñ%Ô'óá'ˆAô 	�‰�‰˜Ó%×-Ñ-¬b¯f©f°cÖ:Ù'ñð ùò s   ¨AA1)z%build_py-test%)!r   r*   r    rF   Úpathlibr   Úunittest.mockr   Újaraco.pathr>   rC   Ú
setuptoolsr   Úsetuptools.distr   Útextwrapr   r   r#   r,   r®   rM   rL   r2   r@   rQ   rG   rt   r{   rƒ   r…   rš   rm   r§   r   r   Ú<module>r¾      s…  ðÛ 	Û Û Û Ý Ý ã Û å 3Ý (å òò(ò4ð6 ‡�×ÑØ$Ø:ØØð	 ó ñóðð: ‘ð	óð Ø�rØ˜RØØ˜2Ø˜RØ˜Rð
ðð ‘4ð	óð1!Ð òH+ð\ ‡�×ÑÐMÓNñ3ó Oð3ðn ‘dð	óð 
ØØ˜2Ø ØØ˜rØ˜2ðð Ø˜2ðð

ðð Ø�rØ�2ðð ‘4ð	óðC'Ð òT÷D.ñ .ôDôr   