Ë
    nûàgk7  ã                   ó´  — d dl Z d dlZd dlZd dlZd dlmZ d dlmZ d dlZ	d dl
Z
d dlmZ d dlmZ ddlmZ d„ Zd	„ Zd
„ Ze
j(                  j+                  dded¬«      d„ «       Z ed«      ddddddœdœ ed«      dœZd„ Ze
j(                  j5                  d«      d„ «       Z ed«      ddddddœddidœidddœ ed«      d œZd!„ Z G d"„ d#«      Zd&d$„Zd%„ Z y)'é    N)ÚPath)ÚMock)ÚSetuptoolsDeprecationWarning)ÚDistributioné   )ÚDALSc           	      ó¨   — t        t        ddgdgddgi¬«      «      }t        j                  d«       |j	                  «        |j                  «        y)z†
    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/skyplay_api_hub/venv/lib/python3.12/site-packages/setuptools/tests/test_build_py.pyÚ%test_directories_in_package_data_globr      sS   € ô ÜØ"Ø#˜Ø�TØ˜x˜jÐ)ô		
ó€Dô ‡K�K�ÔØ×ÑÔØ×ÑÕó    c           	      óN  — t        t        ddgdgddgi¬«      «      }t        j                  d«       t	        dd«      j                  «        |j                  «        |j                  «        t        j                  t        j                  d	«      j                  «      sJ d
«       ‚y)zt
    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ð ØóÑRr   c           	      óÊ  — t        t        ddgdgddgi¬«      «      }t        j                  d«       t	        dd«      j                  «        t	        dd«      j                  «        t        j                  dt        j                  «       t        j                  dt        j                  «       |j                  «        |j                  «        t        j                  d	«       y
)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           	      óª  — t        t        ddgdgddgi¬«      «      }t        j                  d«       t	        dd«      j                  «        t	        dd«      j                  «        t        j                  dd	«       |j                  «        |j                  «        t        j                  d
«      j                  t        j                  z  sJ d«       ‚y)zv
    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                 ó  — t         j                  j                  t        «       t	        ddi«      }|j                  «        |j                  d«      }d}t        j                  t        |¬«      5  t        j                  d«      dk(  rt        j                  dd	d
¬«       |j                  «        |j                  «        d d d «       t!        |j                  d«      j"                  «      }|dz  j%                  «       sJ ‚|dz  j%                  «       sJ ‚dD ]:  }t        j&                  t(        «      5  ||z  j%                  «       rJ ‚	 d d d «       Œ< t        j*                  d«       y # 1 sw Y   Œ¬xY w# 1 sw Y   ŒhxY w)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       s]  € Ü
‡K�K×ÑÔ+Ô,Ü˜¨Ð4Ó5€DØ×ÑÔà×#Ñ# JÓ/€Hà
F€CÜ	�‰Ô2¸#Ô	>ñ ô
 �9‰9Ð/Ó0°HÒ<ô ×#Ñ#ØØ3Ø,õð 	×!Ñ!Ô#Ø�‰Œ÷!ô$ �T×)Ñ)¨*Ó5×?Ñ?Ó@€IØÐ+Ñ+×3Ñ3Ô5Ð5Ð5ØÐ1Ñ1×9Ñ9Ô;Ð;Ð;ðò 	0ˆô �]‰]œ>Ó*ñ 	0ð " A™×-Ñ-Ô/Ð/Ð/Ð/÷	0ð 	0ð	0ô ‡L�L�Õ÷Gð ú÷<	0ð 	0ús   Á/AE+Ä4E7Å+E4Å7F 	z/ignore::setuptools.SetuptoolsDeprecationWarningc                 óh  — t         j                  j                  t        «       t	        ddi«      }|j                  «        |j                  sJ ‚|j                  d«      }|j                  d«       t        t        |j                  «      j                  d«      «      }|j                  «       sJ ‚|j                  d«      }|j                  «        |j                  d«      }t        |j                   ¬«      }|j#                  |d|«       |j$                  j'                  dd	«       |j)                  |«       d	|_        |j!                  «        |j-                  «        |j/                  «        |j$                  j'                  dd	«       |j)                  |«       ||_        |j!                  «        |j1                  «        |j2                  sJ ‚t5        d
„ |j7                  «       «      }|sJ ‚t9        t        |j:                  d«      «      j=                  t>        j@                  d«      }||v sJ ‚y	)zwWhen 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   — | j                  t        j                  d«      S ©Nú/)Úreplacer   Úsep)Úxs    r   ú<lambda>z(test_existing_egg_info.<locals>.<lambda>ÿ   s   € ˜AŸI™I¤b§f¡f¨cÓ2€ r   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_inforv   Î   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€HÔ"Ø‡L�L„NØ×"Ñ"Ô$Ø×ÒÐÐô Ñ2°H×4HÑ4HÓ4JÓK€GÙ€Nˆ7Ü”$�x×)Ñ)Ð+>Ó?Ó@×HÑHÌÏÉÐQTÓU€GØ�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                 ó(  — t         j                  j                  t        «       t	        ddi«      }|j                  «        |j                  d«      }d|_        |j                  «        |j                  j                  t        j                  d«      }|j                  «       D �ch c]"  }|j                  t        j                  d«      ’Œ$ }}||› d�|› d�|› d�|› d	�|› d
�|› d�|› d�hk(  sJ ‚|j                  «       j                  «       D ��ci c]D  \  }}|j                  t        j                  d«      |j                  t        j                  d«      “ŒF }}}||› d�d|› d�d|› d�d|› d	�d|› d
�d|› d�d|› d�dik(  sJ ‚y c c}w c c}}w )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]   ro   Úget_output_mappingÚitems)	r   r   r   rM   r^   rt   Ú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¨!ˆq�y‰yœŸ™ Õ%ÐF€GÐFØØˆ+Ð'Ð(Øˆ+Ð-Ð.Øˆ+Ð,Ð-Øˆ+Ð(Ð)Øˆ+Ð(Ð)Øˆ+Ð3Ð4Øˆ+Ð/Ð0ðò ð ð ð ×/Ñ/Ó1×7Ñ7Ó9÷áˆAˆqð 	
�	‰	”"—&‘&˜#Ó §	¡	¬"¯&©&°#Ó 6Ñ6ð€Gñ ð Øˆ+Ð'Ð(Ð*AØˆ+Ð-Ð.Ð0MØˆ+Ð,Ð-Ð/KØˆ+Ð(Ð)Ð+CØˆ+Ð(Ð)Ð+DØˆ+Ð3Ð4Ð6IØˆ+Ð/Ð0°/ðò ð ñ ùò Gùós   Â%'F	ÄA	Fc            
       ó0  — e Zd Z ed«       ed«       ed«      dœZdddddœidd	hd
œdddddœiiddhd
œdddidddœih d£d
œdœZej                  j                  dd ej                  dej                  j                  d¬«      ¬«      g«      ej                  j                  dej                  «       «      d„ «       «       Zej                  j                  ddg«      ej                  j                  dej                  «       «      d„ «       «       Zd„ Zy)Ú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.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�   >   úfoo/__init__.pyiúfoo/namespace/foo.pyirŽ   )Úsimple_namespaceÚnested_inside_namespaceÚnamespace_nested_inside_regularÚ	pyprojectrˆ   r‰   zpypa/setuptools#4350)r.   )Úmarksru   c                 óè   — i | j                   |   d   ¥d| j                  |   i¥}| j                   |   d   }t        j                  j	                  |«       t        «       }t        |«      }||k  sJ ‚y ©Nr�   ry   r�   )ÚEXAMPLESÚ
PYPROJECTSrA   rB   r(   Úget_finalized_build_pyro   ©Úselfr   r™   ru   Ú	structurer�   r   rt   s           r   Ú#test_type_files_included_by_defaultz5TestTypeInfoFiles.test_type_files_included_by_default›  s|   € ð
Ø�m‰m˜GÑ$Ð%:Ñ;ð
à˜dŸo™o¨iÑ8ñ
ˆ	ð #Ÿm™m¨GÑ4Ð5JÑKÐÜ�‰×Ñ˜)Ô$ä)Ó+ˆÜ˜hÓ'ˆØ" gÒ-Ð-Ñ-r   rŠ   c                 ó   — i | j                   |   d   ¥d| j                  |   i¥}| j                   |   d   }t        j                  j	                  |«       t        «       }t        |«      }|j                  |«      sJ ‚y rœ   )r�   rž   rA   rB   r(   rŸ   ro   Ú
isdisjointr    s           r   Útest_type_files_can_be_excludedz1TestTypeInfoFiles.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Ñ6r   c                 ó¤   — t        d«      dddœdœ}ddh}t        j                  j                  |«       t	        «       }t        |«      }||k  sJ ‚y )Nzl
                [project]
                name = "foo-stubs"
                version = "1"
                r   )r“   rŒ   )ry   z	foo-stubszfoo-stubs/__init__.pyizfoo-stubs/bar.pyi)r   rA   rB   r(   rŸ   ro   )r¡   r   r¢   r�   r   rt   s         r   Útest_stub_only_packagez(TestTypeInfoFiles.test_stub_only_packageÀ  s`   € ä"ðóð +-¸Ñ<ñ	
ˆ	ð  8Ð9LÐMÐÜ�‰×Ñ˜)Ô$ä)Ó+ˆÜ˜hÓ'ˆØ" gÒ-Ð-Ñ-r   N)Ú__name__Ú
__module__Ú__qualname__r   rž   r�   rF   ÚmarkÚparametrizeÚparamrP   Úkeysr£   r¦   r¨   © r   r   r‡   r‡   Q  s€  „ á!ðó
ñ &*ðó	&
ñ "ð
ó
ñ%€JðH Ø!Ø "Ø#%ñð$ð %2°>Ð#Bñ	
ð ØØ$&Ø#%ñðð$ð %6Ð7IÐ#Jñ
$
ð à! 2ð"ð %'Ø "ñð$ò$ñ,
ñ-&€HðP ‡[�[×ÑØàØˆF�L‰LØ+Ø—k‘k×'Ñ'Ð/EÐ'ÓFôð	
ó	ð ‡[�[×Ñ˜Y¨¯©«Ó8ñ
.ó 9ó	ð
.ð ‡[�[×Ñ˜[Ð+>Ð*?Ó@Ø‡[�[×Ñ˜Y¨¯©«Ó8ñ
7ó 9ó Að
7ó.r   r‡   c                 ó‚   — t        d| i«      }|j                  «        |j                  d«      }|j                  «        |S )Nr   r   )r   rD   rE   rK   )r   r   r   s      r   rŸ   rŸ   Ó  s>   € Ü˜¨Ð4Ó5€DØ×ÑÔØ×#Ñ# JÓ/€HØ×ÑÔØ€Or   c                 óê   — t        | j                  «      }| j                  «       D �ch c]@  }t        j                  j                  ||«      j                  t        j                  d«      ’ŒB c}S c c}w rZ   )r   rM   ro   r   rB   Úrelpathr\   r]   )r   rR   r^   s      r   ro   ro   Û  s]   € Ü�X×'Ñ'Ó(€Ið ×%Ñ%Ó'öàô 	�‰�‰˜˜9Ó%×-Ñ-¬b¯f©f°cÕ:òð ùò s   ¨AA0)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   rv   r}   r…   r‡   rŸ   ro   r°   r   r   ú<module>rº      sU  ðÛ 	Û Û Û Ý Ý ã Û å 3Ý (å òò(ò4ð6 ‡�×ÑØ$Ø:ØØð	 ó ñóðñ: ð	óð ØàØØñ
ññ ð	óñ1!Ð òH+ð\ ‡�×ÑÐMÓNñ3ó Oð3ñn ð	óð  	ØØ!#à!Øñð
 ˜2ðñ

ðð Øññ ð	óñC'Ð òT÷D.ñ .óDór   