ó
    ¶'Ôi4X  ã                   ól  • S SK r S SKrS SKJ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rS SKJr  S SKJrJr  S SKJr  S S	KJr  S
SKJr  S
SKJrJrJr  S
SKJr  S SKr  " S S5      r! " S S5      r" " S S5      r# " S S5      r$ " S S5      r% " S S5      r&S r'S r(S r)S r*S r+S r,S  r-S! r.g)"é    N)ÚConfigParser)Úproduct)Úcast)ÚPath)Úsdist)Úfind_package_pathÚfind_parent_package)ÚDistribution)ÚPackageDiscoveryErroré   )Úquiet)Úget_sdist_membersÚget_wheel_membersÚrun)ÚDALSc                   ó    • \ rS rSrS rS rSrg)ÚTestFindParentPackageé   c                 ó¨   • US-  R                  SSS9  US-  R                  5         US-  R                  5         / SQn[        USS0U5      S	:X  d   eg )
Nzsrc/namespace/pkg/nestedT©Úexist_okÚparentsz$src/namespace/pkg/nested/__init__.pyzsrc/namespace/pkg/__init__.py)Ú	namespaceúnamespace.pkgznamespace.pkg.nestedÚ Úsrcr   ©ÚmkdirÚtouchr	   )ÚselfÚtmp_pathÚpackagess      Úe/var/www/surfInsights/venv3-11/lib/python3.13/site-packages/setuptools/tests/test_config_discovery.pyÚtest_single_packageÚ)TestFindParentPackage.test_single_package   s_   € à	Ð.Ñ	.×5Ñ5¸tÈTÐ5ÑRØ	Ð:Ñ	:×AÑAÔCØ	Ð3Ñ	3×:Ñ:Ô<ÚIˆÜ" 8¨b°%¨[¸(ÓCÀÓVÐVÑVó    c                 óœ   • / SQnU H0  nUSU 3-  R                  SSS9  USU S3-  R                  5         M2     [        USS0U5      b   eg )N)ÚpkgÚpkg1Úpkg2úsrc/Tr   z/__init__.pyr   r   r   )r    r!   ÚmultipleÚnames       r#   Útest_multiple_toplevelÚ,TestFindParentPackage.test_multiple_toplevel!   sf   € ò +ˆÛˆDØ˜$˜t˜f˜Ñ%×,Ñ,°dÀDÐ,ÑIØ˜$˜t˜f LÐ1Ñ1×8Ñ8Ö:ñ ô # 8¨b°%¨[¸(ÓCÑKÐKÑKr&   © N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r$   r.   Ú__static_attributes__r0   r&   r#   r   r      s   † òWõLr&   r   c                   óä  • \ rS rSrSrSS0S/S.SSS00S	S/0S
S/0S	SS/00 0 0 0 S.	rSS/SS/SS/S/S/S.rS r\R                  R                  S\R                  5       5      S 5       r\R                  R                  S\R                  5       5      S 5       r\" S5      \" S5      \" S5      \" S5      S.r\R                  R                  S \" / S!QS	S
/\R                  5       5      5      S" 5       r\R                  R                  S#S$/S14S%/SS&14S'/SS(14S)/1 S*k4S+/SS,14S-/S14S./S14/5      S/ 5       r\R                  R                  S0S1/S2//5      S3 5       rS4 rS5 rS6 rS7rg8)9Ú TestDiscoverPackagesAndPyModulesé+   zƒMake sure discovered values for ``packages`` and ``py_modules`` work
similarly to explicit configuration for the simple scenarios.
r   r   r(   )Úpackage_dirr"   r9   Úlibr"   Ú
py_modulesÚnszns.pkg)	zexplicit-srczvariation-libzexplicit-flatzexplicit-single_modulezexplicit-namespacezautomatic-srczautomatic-flatzautomatic-single_modulezautomatic-namespaceúsrc/pkg/__init__.pyzsrc/pkg/main.pyzlib/pkg/__init__.pyzlib/pkg/main.pyzpkg/__init__.pyzpkg/main.pyúpkg.pyzns/pkg/__init__.py)r   r:   ÚflatÚsingle_moduler   c                 ól   • UR                  S5      u    p#U R                  U   nU R                  U   nXE4$ )NÚ-)Ú	partitionÚFILESÚOPTIONS)r    ÚcircumstanceÚ_ÚlayoutÚfilesÚoptionss         r#   Ú	_get_infoÚ*TestDiscoverPackagesAndPyModules._get_infoF   s:   € Ø#×-Ñ-¨cÓ2‰ˆˆ1Ø—
‘
˜6Ñ"ˆØ—,‘,˜|Ñ,ˆØˆ~Ðr&   rF   c                 ó8  ^	• U R                  U5      u  p4[        XU5        [        X5      u  pVUR                  R                   Vs/ s H"  owR                  [        R                  S5      PM$     nnU H  m	[        U	4S jU 5       5      (       a  M   e   g s  snf )NÚ/c              3   óD   >#   • U  H  oR                  T5      v •  M     g 7f©N)Úendswith)Ú.0ÚfÚfiles     €r#   Ú	<genexpr>ÚGTestDiscoverPackagesAndPyModules.test_sdist_filelist.<locals>.<genexpr>U   s   øé € Ð:²¨A—z‘z $×'Ð'²ùs   ƒ )	rK   Ú_populate_project_dirÚ_run_sdist_programaticallyÚfilelistrI   ÚreplaceÚosÚsepÚany)
r    r!   rF   rI   rJ   rG   ÚcmdrS   ÚmanifestrT   s
            @r#   Útest_sdist_filelistÚ4TestDiscoverPackagesAndPyModules.test_sdist_filelistL   s}   ø€ àŸ™¨Ó5‰ˆÜ˜h¨wÔ7ä+¨HÓ>‰ˆà47·L±L×4FÒ4FÓGÒ4F¨q—I‘IœbŸf™f cÖ*Ñ4FˆÐGÛˆDÜÔ:±Ó:×:Ó:Ð:Ð:ò ùò Hs   Á)Bc                 óv  • U R                  U5      u  p4[        XU5        US-  R                  5         US-  R                  5         US-  R                  5         US-  R                  5         US-  R                  5         US-  R                  5         US-  R                  5         US-  R                  5         [	        U5        [        [        UR                  S	5      5      5      n[        S
5        [        SR                  U5      5        U[        U5      :¼  d   e[        [        UR                  S5      5      5      n[        S5        [        SR                  U5      5        U Vs1 s H$  owR                  SS5      R                  SS5      iM&     nnXh:¼  d   eU H  n	SU;  d   eSU;  a  M   e   g s  snf )NÚbuildz	build/libzbuild/bdist.linux-x86_64z build/bdist.linux-x86_64/file.pyzbuild/lib/__init__.pyzbuild/lib/file.pyÚdistzdist/file.pyúdist/*.tar.gzú~~~~~ sdist_members ~~~~~Ú
ú
dist/*.whlú~~~~~ wheel_members ~~~~~r+   r   úlib/)rK   rW   r   r   Ú
_run_buildr   ÚnextÚglobÚprintÚjoinÚsetr   rZ   )
r    r!   rF   rI   rJ   Úsdist_filesÚwheel_filesrS   Ú
orig_filesrT   s
             r#   Útest_projectÚ-TestDiscoverPackagesAndPyModules.test_projectW   sŒ  € àŸ™¨Ó5‰ˆÜ˜h¨wÔ7ð 
�GÑ	×"Ñ"Ô$Ø	�KÑ	×&Ñ&Ô(Ø	Ð.Ñ	.×5Ñ5Ô7Ø	Ð6Ñ	6×=Ñ=Ô?Ø	Ð+Ñ	+×2Ñ2Ô4Ø	Ð'Ñ	'×.Ñ.Ô0Ø	�FÑ	×!Ñ!Ô#Ø	�NÑ	"×)Ñ)Ô+ä�8Ôä'¬¨X¯]©]¸?Ó-KÓ(LÓMˆÜÐ)Ô*Üˆd�i‰i˜Ó$Ô%Øœc %›jÓ(Ð(Ð(ä'¬¨X¯]©]¸<Ó-HÓ(IÓJˆÜÐ)Ô*Üˆd�i‰i˜Ó$Ô%ÙINÓOÊÀA—i‘i ¨Ó+×3Ñ3°F¸BÖ?Éˆ
ÐOØÓ(Ð(Ð(ó  ˆDØ %Ó'Ð'Ð'Ø Õ&Ð&Ð&ò  ùò	 Ps   Å(+F6z‡
            [metadata]
            name = myproj
            version = 0.0.0

            [options]
            {param} =
            z¢
            __import__('setuptools').setup(
                name="myproj",
                version="0.0.0",
                {param}=[]
            )
            zÿ
            [build-system]
            requires = []
            build-backend = 'setuptools.build_meta'

            [project]
            name = "myproj"
            version = "0.0.0"

            [tool.setuptools]
            {param} = []
            zv
            [build-system]
            requires = []
            build-backend = 'setuptools.build_meta'
            )ú	setup.cfgúsetup.pyúpyproject.tomlútemplate-pyproject.toml)Úconfig_fileÚparamrF   )rv   rw   rx   c                 ó€  • U R                   U   / SQ-   n[        X0 5        US:X  a  UR                  SS5      nO$U R                  S   nUS-  R	                  USS9  UnU R                  U   R                  US9nX-  R	                  USS9  [        U0 5      n	[        X“5      / :X  d   eS	S
S.U   n
[        Xš5      b   eg )N)zmod.pyzother.pyr=   rx   rG   rB   ry   úutf-8©Úencoding)r{   r"   r;   )r;   r"   )rD   rW   rZ   ÚPURPOSEFULLY_EMPYÚ
write_textÚformatÚ	_get_distÚgetattr)r    r!   rz   r{   rF   rI   Útemplate_paramÚ	pyprojectÚconfigrd   Úothers              r#   Útest_purposefully_emptyÚ8TestDiscoverPackagesAndPyModules.test_purposefully_empty£   sá   € ð —
‘
˜<Ñ(Ò+XÑXˆÜ˜h¨rÔ2àÐ*Ó*Ø"Ÿ]™]¨3°Ó4‰Nð ×.Ñ.Ð/HÑIˆIØÐ(Ñ(×4Ñ4°YÈÐ4ÑQØ"ˆNà×'Ñ'¨Ñ4×;Ñ;À.Ð;ÐQˆØ	Ñ	×+Ñ+¨F¸WÐ+ÑEä˜ 2Ó&ˆô �tÓ# rÓ)Ð)Ð)Ø)°|ÑDÀUÑKˆÜ�tÓ#Ñ+Ð+Ñ+r&   )Úextra_filesÚpkgszvenv/bin/simulate_venvzpkg-stubs/__init__.pyiz	pkg-stubszother-stubs/__init__.pyizother-stubsz namespace-stubs/pkg/__init__.pyi>   r(   únamespace-stubsúnamespace-stubs.pkgz&namespace-stubs/pkg-stubs/__init__.pyir�   z_hidden/file.pyznews/finalize.pyc                 óŽ   • U R                   S   U-   n[        X0 5        [        U0 5      n[        UR                  5      U:X  d   eg )Nr?   )rD   rW   rƒ   rp   r"   )r    r!   r‹   rŒ   rI   rd   s         r#   Ú!test_flat_layout_with_extra_filesÚBTestDiscoverPackagesAndPyModules.test_flat_layout_with_extra_filesÁ   sD   € ð* —
‘
˜6Ñ" [Ñ0ˆÜ˜h¨rÔ2Ü˜ 2Ó&ˆÜ�4—=‘=Ó! TÓ)Ð)Ñ)r&   r‹   zother/__init__.pyzother/finalize.pyc                 ó¾   • U R                   S   U-   n[        X0 5        [        R                  " [        SS9   [        U0 5        S S S 5        g ! , (       d  f       g = f)Nr?   úmultiple (packages|modules)©Úmatch©rD   rW   ÚpytestÚraisesr   rƒ   )r    r!   r‹   rI   s       r#   Ú+test_flat_layout_with_dangerous_extra_filesÚLTestDiscoverPackagesAndPyModules.test_flat_layout_with_dangerous_extra_filesÛ   sH   € ð —
‘
˜6Ñ" [Ñ0ˆÜ˜h¨rÔ2Ü�]Š]Ô0Ð8UÓVÜ�h Ô#÷ W×VÖVús   ¸AÁ
Ac                 ó’   • U R                   S   S/-   n[        X0 5        [        U0 5      n[        UR                  5      S1:X  d   eg )Nr@   zinvalid-module-name.pyr(   )rD   rW   rƒ   rp   r;   )r    r!   rI   rd   s       r#   Ú#test_flat_layout_with_single_moduleÚDTestDiscoverPackagesAndPyModules.test_flat_layout_with_single_moduleè   sH   € Ø—
‘
˜?Ñ+Ð/GÐ.HÑHˆÜ˜h¨rÔ2Ü˜ 2Ó&ˆÜ�4—?‘?Ó#¨ wÓ.Ð.Ñ.r&   c                 óÀ   • U R                   S   S/-   n[        X0 5        [        R                  " [        SS9   [        U0 5        S S S 5        g ! , (       d  f       g = f)Nr@   zvalid_module_name.pyr“   r”   r–   )r    r!   rI   s      r#   Ú&test_flat_layout_with_multiple_modulesÚGTestDiscoverPackagesAndPyModules.test_flat_layout_with_multiple_modulesî   sJ   € Ø—
‘
˜?Ñ+Ð/EÐ.FÑFˆÜ˜h¨rÔ2Ü�]Š]Ô0Ð8UÓVÜ�h Ô#÷ W×VÖVús   ¹AÁ
Ac                 óx  • SSK Jn  SnUS-  R                  [        U5      SS9  US-  R	                  5         [
        R                  R                  5       R                  U5         UR                  S5        S	S	S	5        [        [        UR                  S
5      5      5      nSU;   d   eg	! , (       d  f       N:= f)zRegression for issue 3692r   )Ú
build_metaz%[project]
name = "test"
version = "1"rx   r}   r~   zfoo.pyÚ.Nz*.whl)Ú
setuptoolsr¢   r�   r   r   ÚjaracoÚpathÚDirectoryStackÚcontextÚbuild_wheelr   rl   rm   )r    r!   r¢   r†   rr   s        r#   Ú%test_py_modules_when_wheel_dir_is_cwdÚFTestDiscoverPackagesAndPyModules.test_py_modules_when_wheel_dir_is_cwdô   s—   € å)à=ˆ	Ø	Ð$Ñ	$×0Ñ0´°i³È7Ð0ÑSØ	�HÑ	×#Ñ#Ô%Ü�[‰[×'Ñ'Ó)×1Ñ1°(Õ;Ø×"Ñ" 3Ô'÷ <ô (¬¨X¯]©]¸7Ó-CÓ(DÓEˆØ˜;Ó&Ð&Ñ&÷	 <Õ;ús   Á%B+Â+
B9r0   N)r1   r2   r3   r4   Ú__doc__rE   rD   rK   r—   ÚmarkÚparametrizeÚkeysr`   rt   r   r€   r   r‰   r�   r™   rœ   rŸ   rª   r5   r0   r&   r#   r7   r7   +   sM  † ñð *,¨U¨À%ÀÑIà˜B ˜;ð
ð % u gÐ.Ø#/°%°Ð"9Ø)¨D°(Ð+;Ð<ØØØ#%Ø!ñ€Gð &Ð'8Ð9Ø%Ð'8Ð9Ø" MÐ2Ø"˜Ø*Ð+ñ€Eòð ‡[�[×Ñ˜^¨W¯\©\«^Ó<ñ;ó =ð;ð ‡[�[×Ñ˜^¨W¯\©\«^Ó<ñ'ó =ð'ñB ðó	
ñ ðó
ñ ðó
ñ $(ðó$
ñE)ÐðV ‡[�[×ÑØ0ÙÚ7Ø˜Ð&Ø�J‰J‹Ló	
óñ,óð,ð, ‡[�[×ÑØà&Ð'¨%¨Ð1Ø&Ð'¨%°Ð)=Ð>Ø(Ð)¨E°=Ð+AÐBð 4Ð4ÚAðð :Ð:ØÐ)Ð*ðð
  Ð  5 'Ð*Ø Ð! E 7Ð+ð	
óñ(*ó)ð(*ð ‡[�[×ÑØà Ð!Ø Ð!ð	
óñ$óð$ò/ò$õ'r&   r7   c                   ó    • \ rS rSrSrS/S/SS/SS/S	/S
/S.r\R                  R                  S\R                  5       5      S 5       r
S rSrg)ÚTestNoConfigi  z0.0.0zsrc/pkg1.pyzsrc/pkg2/__init__.pyzsrc/pkg3/__init__.pyzsrc/pkg3-stubs/__init__.pyzpkg4/__init__.pyzpkg4-stubs/__init__.pyzsrc/ns/nested/pkg1/__init__.pyzns/nested/pkg2/__init__.py)r)   r*   Úpkg3Úpkg4zns.nested.pkg1zns.nested.pkg2Úexamplec                 óz   • [        XR                  U   0 5        [        U0 5      nUR                  5       U:X  d   eg rP   )rW   ÚEXAMPLESrƒ   Úget_name)r    r!   r´   rd   s       r#   Útest_discover_nameÚTestNoConfig.test_discover_name  s5   € ä˜h¯©°gÑ(>ÀÔCÜ˜ 2Ó&ˆØ�}‰}‹ 'Ó)Ð)Ñ)r&   c                 óŽ   • S/n[        X0 5        [        US5        USU R                   S3-  nUR                  5       (       d   eg )Nzsrc/ns/nested/pkg/__init__.pyú--sdistzdist/ns_nested_pkg-z.tar.gz)rW   rk   ÚDEFAULT_VERSIONÚis_file)r    r!   rI   Ú	dist_files       r#   Útest_build_with_discovered_nameÚ,TestNoConfig.test_build_with_discovered_name  sN   € Ø0Ð1ˆÜ˜h¨rÔ2Ü�8˜YÔ'àÐ!4°T×5IÑ5IÐ4JÈ'ÐRÑRˆ	Ø× Ñ ×"Ñ"Ð"Ñ"r&   r0   N)r1   r2   r3   r4   r¼   r¶   r—   r­   r®   r¯   r¸   r¿   r5   r0   r&   r#   r±   r±     si   † Ø€Oð �Ø'Ð(Ø'Ð)EÐFØ#Ð%=Ð>Ø;Ð<Ø7Ð8ñ€Hð ‡[�[×Ñ˜Y¨¯©«Ó8ñ*ó 9ð*õ
#r&   r±   c                   ót   • \ rS rSr\R
                  R                  SS0 4SSSS0S.4/5      S 5       rS	 rS
r	g)ÚTestWithAttrDirectivei  )ÚfolderÚoptsr   r:   zfind:Úwhere)r"   úpackages.findc                 ó@  • U S3S/n[        XU5        US-  R                  SS9nUSSS00SSU-   0n[        R                  R	                  XaS	9  [        U0 5      nUR                  5       S:X  d   eUR                  5       S
:X  d   eUR                  (       d   e[        SUR                  U5      n[        R                  R                  U5      (       d   eU[        U5      R                  5       ;   d   e[        US5        US-  n	U	R                  5       (       d   eg )Nz/pkg/__init__.pyrv   r}   r~   r(   ú__init__.pyúversion = 42z'[metadata]
version = attr: pkg.version
©ÚprefixÚ42r»   zdist/pkg-42.tar.gz)rW   Ú	read_textr¥   r¦   rc   rƒ   r·   Úget_versionr9   r   r[   Úexistsr   Úpartsrk   r½   )
r    r!   rÃ   rÄ   rI   r‡   Ú	overwriterd   Úpackage_pathr¾   s
             r#   Útest_setupcfg_metadataÚ,TestWithAttrDirective.test_setupcfg_metadata  s)  € ð �8Ð+Ð,¨kÐ:ˆÜ˜h¨tÔ4à˜[Ñ(×3Ñ3¸WÐ3ÐEˆà�U˜]¨NÐ;Ð<ØÐDÀvÑMð
ˆ	ô 	�‰×Ñ˜)ÐÑ5ä˜ 2Ó&ˆØ�}‰}‹ %Ó'Ð'Ð'Ø×ÑÓ! TÓ)Ð)Ð)Ø××ÐÐÜ(¨°×0@Ñ0@À(ÓKˆÜ�w‰w�~‰~˜l×+Ñ+Ð+Ð+Øœ˜lÓ+×1Ñ1Ó3Ó3Ð3Ð3ä�8˜YÔ'ØÐ3Ñ3ˆ	Ø× Ñ ×"Ñ"Ð"Ñ"r&   c                 óØ   • [        US/0 5        SSS00SS.n[        R                  R                  X!S9  [	        U0 5      nUR                  5       S:X  d   eUR                  S	S
0:X  d   eg )Nr=   r(   rÈ   rÉ   zh[project]
name = 'pkg'
dynamic = ['version']
[tool.setuptools.dynamic]
version = {attr = 'pkg.version'}
©r   rx   rÊ   rÌ   r   r   )rW   r¥   r¦   rc   rƒ   rÎ   r9   )r    r!   rÑ   rd   s       r#   Útest_pyproject_metadataÚ-TestWithAttrDirective.test_pyproject_metadata<  s€   € Ü˜hÐ)>Ð(?ÀÔDð ˜M¨>Ð:Ð;ðPñ
ˆ	ô 	�‰×Ñ˜)ÐÑ5ä˜ 2Ó&ˆØ×ÑÓ! TÓ)Ð)Ð)Ø×Ñ B¨ ;Ó.Ð.Ñ.r&   r0   N)
r1   r2   r3   r4   r—   r­   r®   rÓ   r×   r5   r0   r&   r#   rÂ   rÂ     sI   † Ø‡[�[×ÑØà�BˆKØ ¸GÀUÐ;KÑLÐMð	
óñ#óð#õ./r&   rÂ   c                   ó&   • \ rS rSrS rS rS rSrg)ÚTestWithCExtensioniM  c                 ó`   • / SQn[        X0 5        SnUS-  R                  [        U5      SS9  g )N)zbenchmarks/file.pyzdocs/Makefilezdocs/requirements.txtzdocs/source/conf.pyzproj/header.hzproj/file.pyzpy/proj.cppzpy/other.cppz
py/file.pyzpy/py.typedzpy/tests/test_proj.pyz
README.rsta^  
            from setuptools import Extension, setup

            ext_modules = [
                Extension(
                    "proj",
                    ["py/proj.cpp", "py/other.cpp"],
                    include_dirs=["."],
                    language="c++",
                ),
            ]
            setup(ext_modules=ext_modules)
        rw   r}   r~   ©rW   r�   r   )r    r!   rI   Úsetup_scripts       r#   Ú _simulate_package_with_extensionÚ3TestWithCExtension._simulate_package_with_extensionN  s;   € ò
ˆô 	˜h¨rÔ2ðˆð 
�JÑ	×*Ñ*¬4°Ó+=ÈÐ*ÒPr&   c                 ó¾  • U R                  U5        SnUS-  R                  [        U5      SS9  SnUS-  R                  [        U5      SS9  [        U0 5      nUR	                  5       S:X  d   eUR                  5       S:X  d   eUR                  b   eUR                  b   e[        UR                  5      S
:X  d   eUR                  S   R                  S:X  d   eg	)zxEnsure that auto-discovery is not triggered when the project is based on
C-extensions only, for backward compatibility.
zr
            [build-system]
            requires = []
            build-backend = 'setuptools.build_meta'
        rx   r}   r~   zQ
            [metadata]
            name = proj
            version = 42
        rv   ÚprojrÌ   Nr   r   )rÞ   r�   r   rƒ   r·   rÎ   r;   r"   ÚlenÚext_modulesr-   )r    r!   r†   Úsetupcfgrd   s        r#   Ú*test_skip_discovery_with_setupcfg_metadataÚ=TestWithCExtension.test_skip_discovery_with_setupcfg_metadatao  sì   € ð 	×-Ñ-¨hÔ7ðˆ	ð
 
Ð$Ñ	$×0Ñ0´°i³È7Ð0ÑSðˆð
 
�KÑ	×+Ñ+¬D°«NÀWÐ+ÑMä˜ 2Ó&ˆØ�}‰}‹ &Ó(Ð(Ð(Ø×ÑÓ! TÓ)Ð)Ð)Ø�‰Ñ&Ð&Ð&Ø�}‰}Ñ$Ð$Ð$Ü�4×#Ñ#Ó$¨Ó)Ð)Ð)Ø×Ñ Ñ"×'Ñ'¨6Ó1Ð1Ñ1r&   c                 óà   • U R                  U5        SnUS-  R                  [        U5      SS9  [        R                  " [
        SS9   [        U0 5        SSS5        g! , (       d  f       g= f)af  When opting-in to pyproject.toml metadata, auto-discovery will be active if
the package lists C-extensions, but does not configure py-modules or packages.

This way we ensure users with complex package layouts that would lead to the
discovery of multiple top-level modules/packages see errors and are forced to
explicitly set ``packages`` or ``py-modules``.
zT
            [project]
            name = 'proj'
            version = '42'
        rx   r}   r~   r“   r”   N)rÞ   r�   r   r—   r˜   r   rƒ   )r    r!   r†   s      r#   Ú0test_dont_skip_discovery_with_pyproject_metadataÚCTestWithCExtension.test_dont_skip_discovery_with_pyproject_metadata‹  s_   € ð 	×-Ñ-¨hÔ7ðˆ	ð
 
Ð$Ñ	$×0Ñ0´°i³È7Ð0ÑSÜ�]Š]Ô0Ð8UÓVÜ�h Ô#÷ W×VÖVús   Á	AÁ
A-r0   N)r1   r2   r3   r4   rÞ   rå   rè   r5   r0   r&   r#   rÚ   rÚ   M  s   † òQòB2õ8$r&   rÚ   c                   ó  • \ rS rSrS rSrSrSr\R                  R                  SSS\" \5      04SS	\" \5      04S
S\" \5      04S
S	\" \5      04S
S\" \5      \" S5      -   04S
S	\" \5      \" S5      -   04/5      S 5       rSrg)ÚTestWithPackageDataiŸ  c                 ót   • U S3U S3U S3/n[        X0 5        SnUS-  R                  [        U5      SS9  g )Nz/proj/__init__.pyú/proj/file1.txtú/proj/nested/file2.txtz/
            global-include *.py *.txt
        zMANIFEST.inr}   r~   rÜ   )r    r!   Úsrc_rootrI   r_   s        r#   Ú!_simulate_package_with_data_filesÚ5TestWithPackageData._simulate_package_with_data_files   sZ   € àˆjÐ)Ð*Øˆj˜Ð(ØˆjÐ.Ð/ð
ˆô
 	˜h¨rÔ2ðˆð 
�MÑ	!×-Ñ-¬d°8«nÀwÐ-ÒOr&   zd
    [metadata]
    name = proj
    version = 42

    [options]
    include_package_data = True
    z8
    [project]
    name = "proj"
    version = "42"
    z:
    [tool.setuptools]
    package-dir = {"" = "src"}
    )rï   rI   r£   rv   rx   r   zÞ
                        packages = find:
                        package_dir =
                            =src

                        [options.packages.find]
                        where = src
                        zv
                        [tool.setuptools]
                        package-dir = {"" = "src"}
                        c                 ó2  • [         R                  R                  U[        U5      S9  U R	                  X5        [
        R                  R                  U S35      R                  [
        R                  S5      [
        R                  R                  U S35      R                  [
        R                  S5      1n[        U5        [        [        UR                  S5      5      5      n[        S5        [        SR                  U5      5        XT:¼  d   e[        [        UR                  S5      5      5      n[        S	5        [        SR                  U5      5        U Vs1 s H$  owR                  S
S5      R                  SS5      iM&     nnXh:¼  d   egs  snf )zY
Make sure auto-discovery does not affect package include_package_data.
See issue #3196.
rÊ   rí   rN   rî   re   rf   rg   rh   ri   r+   r   rj   N)r¥   r¦   rc   Ústrrð   r[   ÚnormpathrZ   r\   rk   r   rl   rm   rn   ro   r   )	r    r!   rï   rI   Úexpectedrq   rr   rS   rs   s	            r#   Útest_include_package_dataÚ-TestWithPackageData.test_include_package_dataÀ  sC  € ôT 	�‰×Ñ˜%¬¨H«ÐÑ6Ø×.Ñ.¨xÔBô �G‰G×Ñ ˜z¨Ð9Ó:×BÑBÄ2Ç6Á6È3ÓOÜ�G‰G×Ñ ˜zÐ)?Ð@ÓA×IÑIÌ"Ï&É&ÐRUÓVð
ˆô
 	�8Ôä'¬¨X¯]©]¸?Ó-KÓ(LÓMˆÜÐ)Ô*Üˆd�i‰i˜Ó$Ô%ØÓ&Ð&Ð&ä'¬¨X¯]©]¸<Ó-HÓ(IÓJˆÜÐ)Ô*Üˆd�i‰i˜Ó$Ô%ÙIQÓRÊÀA—i‘i ¨Ó+×3Ñ3°F¸BÖ?Éˆ
ÐRØÓ(Ð(Ñ(ùò Ss   Å+Fr0   N)r1   r2   r3   r4   rð   ÚEXAMPLE_SETUPCFGÚEXAMPLE_PYPROJECTÚPYPROJECT_PACKAGE_DIRr—   r­   r®   r   rö   r5   r0   r&   r#   rë   rë   Ÿ  sò   † òPðÐðÐðÐð
 ‡[�[×ÑØà�;¡Ð%5Ó 6Ð7Ð8ØÐ#¡TÐ*;Ó%<Ð=Ð>Ø�[¡$Ð'7Ó"8Ð9Ð:ØÐ%¡tÐ,=Ó'>Ð?Ð@àà¡Ð&6Ó!7Ùðó	ñ
"ððð" à$¡dÐ+<Ó&=Ùðóñ'ððð+!	
ó$ñJ)óK$óJ)r&   rë   c                 ó´   • / SQn[        X0 5        [        0 5      n[        5       Ul        UR	                  5         UR
                  b   eUR                  b   eg )N)zdir1/__init__.pyzdir2/__init__.pyzfile.py)rW   r
   ÚobjectÚconfigurationÚset_defaultsr;   r"   )r!   rI   rd   s      r#   Ú(test_compatible_with_numpy_configurationrÿ      sU   € ò€Eô
 ˜(¨2Ô.Ü˜Ó€DÜ›€DÔØ×ÑÔØ�?‰?Ñ"Ð"Ð"Ø�=‰=Ñ Ð Ñ r&   c                 óØ   • [         R                  R                  SS05        [        0 5      nS/Ul        UR                  5         UR                  5         UR                  5       S:X  d   eg )Nr>   r   z--namer(   )r¥   r¦   rc   r
   Úscript_argsrþ   Úparse_command_liner·   )Ú
tmpdir_cwdrd   s     r#   Ú$test_name_discovery_doesnt_break_clir    sX   € Ü
‡K�K×Ñ�x �nÔ%Ü˜Ó€DØ �z€DÔØ×ÑÔØ×ÑÔØ�=‰=‹?˜eÓ#Ð#Ñ#r&   c                 óx  ^^• SSS00[        S5      S.n[        R                  R                  U5        [	        0 5      mTR
                  R                  mUU4S jnUR                  TR
                  SU5        TR                  5         TR                  5       S:X  d   e[        TR                  5      S1:X  d   eg	)
zúAccording to #3545 it seems that ``name`` discovery is running,
even when the project already explicitly sets it.
This seems to be related to parsing of dynamic versions (via ``attr`` directive),
which requires the auto-discovery of ``package_dir``.
r(   rÈ   z__version__ = 42
zæ
            [project]
            name = "myproj"  # purposefully different from package name
            dynamic = ["version"]
            [tool.setuptools.dynamic]
            version = {"attr" = "pkg.__version__"}
            rÖ   c                  ó@   >• T" 5         T R                  5       S:X  d   eg )NÚmyproj)r·   )rd   Úorig_analyse_names   €€r#   Úspy_analyse_nameÚJtest_preserve_explicit_name_with_dynamic_version.<locals>.spy_analyse_name/  s   ø€ ñ 	ÔØ�}‰}‹ (Ó*Ð*Ñ*r&   Úanalyse_namerÌ   N)r   r¥   r¦   rc   r
   rþ   r  ÚsetattrÚparse_config_filesrÎ   rp   r"   )r  ÚmonkeypatchrI   r	  rd   r  s       @@r#   Ú0test_preserve_explicit_name_with_dynamic_versionr    s·   ù€ ð �MÐ#7Ð8ð
ô ðó
ñ	€Eô ‡K�K×Ñ�eÔÜ˜Ó€DØ×)Ñ)×6Ñ6Ðö+ð ×Ñ˜×)Ñ)¨>Ð;KÔLØ×ÑÔØ×ÑÓ Ó%Ð%Ð%Üˆt�}‰}Ó % Ó(Ð(Ñ(r&   c                 óä   ^ • SSSS.n[         R                  R                  UT S9  [        T U5        U 4S jU 5       nU H-  nUR                  R                  SSS9  UR                  5         M/     g )	Nz$import setuptools
setuptools.setup()z# Example PackagezCopyright (c) 2018)rw   z	README.mdÚLICENSErÊ   c              3   ó.   >#   • U  H
  nTU-  v •  M     g 7frP   r0   )rR   rS   Úroots     €r#   rU   Ú(_populate_project_dir.<locals>.<genexpr>F  s   øé € Ð%šu˜!ˆT�AŽXšuùs   ƒTr   )r¥   r¦   rc   Ú_write_setupcfgÚparentr   r   )r  rI   rJ   ÚbasicÚpathsr¦   s   `     r#   rW   rW   ;  sl   ø€ ð
 <Ø(Ø'ñ€Eô
 ‡K�K×Ñ�e DÐÑ)Ü�D˜'Ô"Ü%™uÓ%€EÛˆØ�‰×Ñ 4°ÐÑ6Ø�
‰
Žò r&   c                 óÄ  • U(       d  [        S5        g [        5       nUR                  S5        UR                  5        H¿  u  p4US:X  a-  UR                  SU 35        USU 3   R	                  U5        M8  [        U[        5      (       a  SR                  U5      US   U'   Mf  [        U[        5      (       a3  SR                  S UR                  5        5       5      nSU-   US   U'   M®  [        U5      US   U'   MÁ     [        U S-  S	S
S9 nUR                  U5        S S S 5        [        S5        [        U S-  R                  S
S95        g ! , (       d  f       N5= f)Nz~~~~~ **NO** setup.cfg ~~~~~rJ   rÆ   zoptions.z, rg   c              3   ó6   #   • U  H  u  pS U SU 3v •  M     g7f)Ú	z = Nr0   )rR   ÚkÚvs      r#   rU   Ú"_write_setupcfg.<locals>.<genexpr>Y  s   é € Ð!Kº]±T°Q B q c¨¨Q¨C¥.º]ùs   ‚rv   Úwr}   r~   z~~~~~ setup.cfg ~~~~~)rn   r   Úadd_sectionÚitemsÚupdateÚ
isinstanceÚlistro   Údictró   ÚopenÚwriterÍ   )r  rJ   rä   ÚkeyÚvalueÚ	str_valuerS   s          r#   r  r  L  s5  € ÞÜÐ,Ô-ØÜ‹~€HØ×Ñ˜Ô#Ø—m‘m–o‰
ˆØ�/Ó!Ø× Ñ  8¨C¨5Ð!1Ô2Ø�x ˜uÐ%Ñ&×-Ñ-¨eÖ4Ü˜œt×$Ñ$Ø'+§y¡y°Ó'7ˆH�YÑ Ó$Ü˜œt×$Ñ$ØŸ	™	Ñ!K¸U¿[¹[¼]Ó!KÓKˆIØ'+¨iÑ'7ˆH�YÑ Ó$ä'*¨5£zˆH�YÑ Ó$ñ &ô 
ˆd�[Ñ  #°Ò	8¸AØ�‰�qÔ÷ 
9ä	Ð
!Ô"Ü	ˆ4�+Ñ×
(Ñ
(°'Ð
(Ð
:Õ;÷ 
9Õ	8ús   ÄEÅ
Ec                 ó\   • [         R                  SSS/UQ[        U 5      Pn[        USS0S9$ )Nz-mrc   z--no-isolationÚDISTUTILS_DEBUGr   )Úenv)ÚsysÚ
executableró   r   )r¦   Úflagsr^   s      r#   rk   rk   c  s6   € Ü�>‰>˜4 Ð*:Ð
N¸UÐ
NÄCÈÃIÐ
N€CÜˆsÐ*¨BÐ/Ñ0Ð0r&   c           
      óø  • SR                  [        R                  R                  U 5      5      nU S-  nUR	                  5       (       aB  [        U 5         [        [        [        R                  R                  S0 SS95      nS S S 5        O[        U5      nUWl        SUl        [        U 5         UR                  5         S S S 5        UR                  5         U$ ! , (       d  f       NR= f! , (       d  f       N1= f)NrN   rw   Úinit)Ú
stop_after)ro   r[   r¦   ÚsplitrÏ   r   r   r
   Ú	distutilsÚcoreÚ	run_setuprï   Úscript_namer  rþ   )Ú	dist_pathÚattrsr  Úscriptrd   s        r#   rƒ   rƒ   h  s¼   € Ø�8‰8”B—G‘G—M‘M )Ó,Ó-€Dà˜Ñ#€FØ‡}�}‡�Ü�)�_ÜÜÜ—‘×(Ñ(¨°RÀFÐ(ÐKóˆD÷ ˆ_ô ˜EÓ"ˆà€D„MØ!€DÔÜ	ˆi�Ø×ÑÔ!÷ 
ð 	×ÑÔØ€K÷ �_ú÷ 
�ús   Á.CÂ/C+Ã
C(Ã+
C9c                 óz  • [        X5      n[        U5      nUR                  5         UR                  R                  (       d  UR                  R
                  (       d   e[        5          [        U 5         UR                  5         S S S 5        S S S 5        X#4$ ! , (       d  f       N= f! , (       d  f       X#4$ = frP   )	rƒ   r   Úensure_finalizedÚdistributionr"   r;   r   r   r   )r9  r:  rd   r^   s       r#   rX   rX   ~  s€   € Ü�YÓ&€DÜ
�‹+€CØ×ÑÔØ×Ñ×$×$¨×(8Ñ(8×(C×(CÐCÐCä	�”$�y•/Ø�‰Œ	÷ "�ð ˆ9Ð÷ "•/ú�Œð ˆ9Ðús$   Á)B*Á5BÂB*Â
B'	Â#B*Â*
B:)/r[   r.  Úconfigparserr   Ú	itertoolsr   Útypingr   Újaraco.pathr¥   r—   r¦   r   r¤   Úsetuptools.command.sdistr   Úsetuptools.discoveryr   r	   Úsetuptools.distr
   Úsetuptools.errorsr   Úcontextsr   Úintegration.helpersr   r   r   Útextwrapr   Údistutils.corer5  r   r7   r±   rÂ   rÚ   rë   rÿ   r  r  rW   r  rk   rƒ   rX   r0   r&   r#   Ú<module>rK     s¬   ðÛ 	Û 
Ý %Ý Ý ã Û Ý ã Ý *ß GÝ (Ý 3å ß JÑ JÝ ã ÷Lñ L÷&T'ñ T'÷n#ñ #÷6-/ñ -/÷`O$ñ O$÷d^)ñ ^)òB!ò$ò!)òHò"<ò.1ò
ó,	r&   