ó
    ¶'Ôiy7  ã                   ó°  • S SK r S SKrS SKrS SKrS SKJr  S SKJr  S SKr	S SK
r
S SKJr  S SKJr  SSKJr  S rS	 rS
 r\
R(                  R+                  SS\SS9S 5       r\" S5      SSSSSS.S.\" S5      S.rS r\
R(                  R5                  S5      S 5       r\" S5      SSSSSS.SS0S.0SSS.\" S5      S .rS! r " S" S#5      rS&S$ jrS% r g)'é    N)ÚPath)ÚMock)ÚSetuptoolsDeprecationWarning)ÚDistributioné   )ÚDALSc           	      ó¤   • [        [        SS/S/SS/0S95      n[        R                  " S5        UR	                  5         UR                  5         g)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     Ú]/var/www/surfInsights/venv3-11/lib/python3.13/site-packages/setuptools/tests/test_build_py.pyÚ%test_directories_in_package_data_globr      sS   € ô ÜØ"Ø#˜Ø�TØ˜x˜jÐ)ñ		
ó€Dô ‡K‚K�ÔØ×ÑÔØ×ÑÕó    c           	      óX  • [        [        SS/S/SS/0S95      n[        R                  " S5        [	        SS5      R                  5         UR                  5         UR                  5         [        R                  " [        R                  " S	5      R                  5      (       d   S
5       eg)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           	      óÌ  • [        [        SS/S/SS/0S95      n[        R                  " S5        [	        SS5      R                  5         [	        SS5      R                  5         [        R                  " S[        R                  5        [        R                  " S[        R                  5        UR                  5         UR                  5         [        R                  " S	5        g
)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           	      ó´  • [        [        SS/S/SS/0S95      n[        R                  " S5        [	        SS5      R                  5         [	        SS5      R                  5         [        R                  " SS	5        UR                  5         UR                  5         [        R                  " S
5      R                  [        R                  -  (       d   S5       eg)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_datar3   Z   s´   € ô ÜØ"Ø#˜Ø�WØ ( Ð,ñ		
ó€Dô ‡K‚K�ÔÜÐ	˜DÓ!×'Ñ'Ô)Üˆ�tÓ×"Ñ"Ô$Ü‡H‚Hˆ\˜5Ô!à×ÑÔØ×ÑÔä�7Š7Ð)Ó*×2Ñ2´T·\±\×Að Ø"óÑAr   zÒ
        [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                 ó<  • [         R                  R                  [        5        [	        SS05      nUR                  5         UR                  S5      nSn[        R                  " [        US9   [        R                  " S5      S:X  a  [        R                  " SS	S
S9  UR                  5         UR                  5         S S S 5        [!        UR                  S5      R"                  5      nUS-  R%                  5       (       d   eUS-  R%                  5       (       d   eS H@  n[        R&                  " [(        5         XE-  R%                  5       (       a   e S S S 5        MB     [        R*                  " S5        g ! , (       d  f       NÃ= f! , (       d  f       M{  = f)Nr   ú	%PEP 517%r   z9Python recognizes 'mypkg\.tests' as an importable package)ÚmatchÚSETUPTOOLS_USE_DISTUTILSÚstdlibÚignorez!'encoding' argument not specifiedzdistutils.text_file)Úmoduleúmypkg/__init__.pyzmypkg/resource_file.txt)zmypkg/tests/__init__.pyzmypkg/tests/test_mypkg.pyzmypkg/tests/test_file.txtzmypkg/testsz#3260)Ú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_subpackagesrT       sO  € Ü
‡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   Á-AE;Ä=FÅ;
F	Æ
F	z/ignore::setuptools.SetuptoolsDeprecationWarningc                 óŠ  • [         R                  R                  [        5        [	        SS05      nUR                  5         UR                  (       d   eUR                  S5      nUR                  S5        [        [        UR                  5      R                  S5      5      nUR                  5       (       d   eUR                  S5      nUR                  5         UR                  S5      n[        UR                   S9nUR#                  USU5        UR$                  R'                  SS	5        UR)                  U5        S	Ul        UR!                  5         UR-                  5         UR/                  5         UR$                  R'                  SS	5        UR)                  U5        XEl        UR!                  5         UR1                  5         UR2                  (       d   e[5        S
 UR7                  5       5      nU(       d   e[9        [        UR:                  S5      5      R=                  [>        R@                  S5      nX‡;   d   eg	)zoWhen provided with the ``existing_egg_info_dir`` attribute, build_py should not
attempt to run egg_info again.
r   r:   Úegg_infoz
*.egg-infor   )Úside_effectrL   Ú
data_filesNc                 óB   • U R                  [        R                  S5      $ ©NÚ/)Úreplacer   Úsep)Úxs    r   Ú<lambda>Ú(test_existing_egg_info.<locals>.<lambda>ÿ   s   € ˜AŸI™I¤b§f¡f¨cÔ2r   r@   r[   )!rA   rB   r(   rC   r   rD   Úinclude_package_datarE   Úrun_commandÚnextr   Úegg_baseÚglobÚis_dirrK   r   rL   ÚsetattrÚ__dict__ÚpopÚreinitialize_commandÚexisting_egg_info_dirÚassert_calledÚ
reset_mockÚassert_not_calledrX   ÚmapÚget_outputsÚstrrM   r\   r   r]   )	r   Úmonkeypatchr   rV   Úegg_info_dirr   Úegg_info_runÚoutputsÚexamples	            r   Útest_existing_egg_inforw   Î   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   a;  
        [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   )r4   zmod1.pyzmod2.py)r4   r5   Úsub1Ú_sub2)r4   zmod3.pyzL
        global-include *.py *.txt
        global-exclude *.py[cod]
        )úpyproject.tomlÚsrcÚotherr8   c                 ó4  • [         R                  R                  [        5        [	        SS05      nUR                  5         UR                  S5      nSUl        UR                  5         UR                  R                  [        R                  S5      nUR                  5        Vs1 s H"  oDR                  [        R                  S5      iM$     nnUU S3U S3U S3U S	3U S
3U S3U S31:X  d   eUR                  5       R                  5        VVs0 s HD  u  pgUR                  [        R                  S5      UR                  [        R                  S5      _MF     nnnUU S3SU S3SU S3SU S	3SU S
3SU S3SU S3S0:X  d   eg s  snf s  snnf )Nr   z%test%r   Tr[   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.py)rA   rB   r(   ÚEXAMPLE_ARBITRARY_MAPPINGr   rD   rE   Úeditable_modeÚensure_finalizedrM   r\   r   r]   rp   Úget_output_mappingÚitems)	r   r   r   rM   r^   ru   Ú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                   ó,  • \ rS rSr\" S5      \" S5      \" S5      S.rSSSSS.0S	S
1S.SSSSS.00SS1S.SSS0SSS.01 SkS.S.r\R                  R                  SS\R                  " S\R                  R                  SS9S9/5      \R                  R                  S\R                  5       5      S 5       5       r\R                  R                  SS/5      \R                  R                  S\R                  5       5      S 5       5       rS rSrg )!ÚTestTypeInfoFilesiQ  zV
            [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.typedr4   zfoo/bar.pyiúfoo/py.typed)Údirectory_structureÚexpected_type_filesÚbar)rŽ   zmod.pyizfoo/bar/mod.pyizfoo/bar/py.typedzfoo.pyi)Ú	namespaceú__init__.pyirŽ   >   r�   úfoo/__init__.pyiúfoo/namespace/foo.pyi)Úsimple_namespaceÚnested_inside_namespaceÚnamespace_nested_inside_regularÚ	pyprojectr‰   rŠ   zpypa/setuptools#4350)r.   )Úmarksrv   c                 óè   • 0 U R                   U   S   ESU R                  U   0EnU R                   U   S   n[        R                  R	                  U5        [        5       n[        U5      nXW::  d   eg ©Nr�   rz   r‘   )ÚEXAMPLESÚ
PYPROJECTSrA   rB   r(   Úget_finalized_build_pyrp   ©Úselfr   rš   rv   Ú	structurer‘   r   ru   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   r‹   c                 ó
  • 0 U R                   U   S   ESU R                  U   0EnU R                   U   S   n[        R                  R	                  U5        [        5       n[        U5      nUR                  U5      (       d   eg r�   )rž   rŸ   rA   rB   r(   r    rp   Ú
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                 ó¤   • [        S5      SSS.S.nSS1n[        R                  R                  U5        [	        5       n[        U5      nX5::  d   eg )Nzl
                [project]
                name = "foo-stubs"
                version = "1"
                r   )r”   r�   )rz   z	foo-stubszfoo-stubs/__init__.pyizfoo-stubs/bar.pyi)r   rA   rB   r(   r    rp   )r¢   r   r£   r‘   r   ru   s         r   Útest_stub_only_packageÚ(TestTypeInfoFiles.test_stub_only_packageÀ  s^   € ä"ðóð +-¸Ñ<ñ	
ˆ	ð  8Ð9LÐMÐÜ�‰×Ñ˜)Ô$ä)Ó+ˆÜ˜hÓ'ˆØ"Ó-Ð-Ñ-r   © N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   rŸ   rž   rF   ÚmarkÚparametrizeÚparamrP   Úkeysr¤   r¨   r«   Ú__static_attributes__r­   r   r   rˆ   rˆ   Q  s~  † á!ðó
ñ &*ðó	&
ñ "ð
ó
ñ%€JðH Ø!Ø "Ø#%ñð$ð %2°>Ð#Bñ	
ð ØØ$&Ø#%ñðð$ð %6Ð7IÐ#Jñ
$
ð à! 2ð"ð %'Ø "ñð$ò$ñ,
ñ-&€HðP ‡[�[×ÑØàØ�LŠLØ+Ø—k‘k×'Ñ'Ð/EÐ'ÐFñð	
ó	ð ‡[�[×Ñ˜Y¨¯©«Ó8ñ
.ó 9ó	ð
.ð ‡[�[×Ñ˜[Ð+>Ð*?Ó@Ø‡[�[×Ñ˜Y¨¯©«Ó8ñ
7ó 9ó Að
7õ.r   rˆ   c                 ó‚   • [        SU 05      nUR                  5         UR                  S5      nUR                  5         U$ )Nr   r   )r   rD   rE   rK   )r   r   r   s      r   r    r    Ó  s>   € Ü˜¨Ð4Ó5€DØ×ÑÔØ×#Ñ# JÓ/€HØ×ÑÔØ€Or   c                 óî   • [        U R                  5      nU R                  5        Vs1 s H@  n[        R                  R                  X!5      R                  [        R                  S5      iMB     sn$ s  snf rZ   )r   rM   rp   r   rB   Úrelpathr\   r]   )r   rR   r^   s      r   rp   rp   Û  s`   € Ü�X×'Ñ'Ó(€Ið ×%Ñ%Ô'óâ'ˆAô 	�‰�‰˜Ó%×-Ñ-¬b¯f©f°cÖ:Ù'ñð ùò s   ¨AA2)z%build_py-test%)!r   r+   r!   rI   Úpathlibr   Úunittest.mockr   Újaraco.pathrA   rF   Ú
setuptoolsr   Úsetuptools.distr   Útextwrapr   r   r$   r-   r²   rP   rO   r3   rC   rT   rJ   rw   r~   r†   rˆ   r    rp   r­   r   r   Ú<module>rÀ      sU  ðÛ 	Û Û Û Ý Ý ã Û å 3Ý (å òò(ò4ð6 ‡�×ÑØ$Ø:ØØð	 ð ñóðñ: ð	óð ØàØØñ
ññ ð	óñ1!Ð òH+ð\ ‡�×ÑÐMÓNñ3ó Oð3ñn ð	óð  	ØØ!#à!Øñð
 ˜2ðñ

ðð Øññ ð	óñC'Ð òT÷D.ñ .ôDór   