Ë
    -TbjÿW  ã                   ó`  — 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Zd dlmZ d dlmZmZ d dlmZ d dlmZ d	d
lmZ d	dlmZmZmZ d	dlmZ d dlZ G d„ d«      Z G d„ d«      Z  G d„ d«      Z! G d„ d«      Z" G d„ d«      Z# G d„ d«      Z$d„ Z%d„ Z&d„ Z'd„ Z(d„ Z)d„ Z*d„ Z+d „ Z,y)!é    N)ÚConfigParser)Úcast)ÚPath)Úsdist)Úfind_package_pathÚfind_parent_package)ÚDistribution)ÚPackageDiscoveryErroré   )Úquiet)Úget_sdist_membersÚget_wheel_membersÚrun)ÚDALSc                   ó   — e Zd Zd„ Zd„ Zy)ÚTestFindParentPackagec                 ó¬   — |dz  j                  dd¬«       |dz  j                  «        |dz  j                  «        g d¢}t        |ddi|«      d	k(  sJ ‚y )
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      úY/var/www/html/venv/lib/python3.12/site-packages/setuptools/tests/test_config_discovery.pyÚtest_single_packagez)TestFindParentPackage.test_single_package   s_   € à	Ð.Ñ	.×5Ñ5¸tÈTÐ5ÔRØ	Ð:Ñ	:×AÑAÔCØ	Ð3Ñ	3×:Ñ:Ô<ÚIˆÜ" 8¨b°%¨[¸(ÓCÀÒVÐVÑVó    c                 óœ   — g d¢}|D ]2  }|d|› �z  j                  dd¬«       |d|› d�z  j                  «        Œ4 t        |ddi|«      �J ‚y )N)ÚpkgÚpkg1Úpkg2úsrc/Tr   z/__init__.pyr   r   r   )r   r   ÚmultipleÚnames       r!   Útest_multiple_toplevelz,TestFindParentPackage.test_multiple_toplevel    sk   € ò +ˆØò 	;ˆDØ˜$˜t˜f˜Ñ%×,Ñ,°dÀDÐ,ÔIØ˜$˜t˜f LÐ1Ñ1×8Ñ8Õ:ð	;ô # 8¨b°%¨[¸(ÓCÐKÐKÑKr#   N)Ú__name__Ú
__module__Ú__qualname__r"   r+   © r#   r!   r   r      s   „ òWóLr#   r   c                   óH  — e Zd ZdZddidgdœdddiiddgid	dgidd
dgii i i i dœ	ZddgddgddgdgdgdœZd„ Zej                  j                  dej                  «       «      d„ «       Zej                  j                  dej                  «       «      d„ «       Z ed«       ed«       ed«       ed«      dœZej                  j                  dg d ¢«      ej                  j                  d!dd	g«      ej                  j                  dej                  «       «      d"„ «       «       «       Zej                  j                  d#d$gdhfd%gdd&hfd'gdd(hfd)gh d*£fd+gdd,hfd-gdhfd.gdhfg«      d/„ «       Zej                  j                  d0d1gd2gg«      d3„ «       Zd4„ Zd5„ Zd6„ Zy7)8Ú TestDiscoverPackagesAndPyModulesz‹Make sure discovered values for ``packages`` and ``py_modules`` work
    similarly to explicit configuration for the simple scenarios.
    r   r   r%   )Úpackage_dirr    r2   Ú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   r3   ÚflatÚsingle_moduler   c                 óp   — |j                  d«      \  }}}| j                  |   }| j                  |   }||fS )Nú-)Ú	partitionÚFILESÚOPTIONS)r   ÚcircumstanceÚ_ÚlayoutÚfilesÚoptionss         r!   Ú	_get_infoz*TestDiscoverPackagesAndPyModules._get_infoE   s>   € Ø#×-Ñ-¨cÓ2‰ˆˆ1ˆfØ—
‘
˜6Ñ"ˆØ—,‘,˜|Ñ,ˆØ�gˆ~Ðr#   r?   c                 ó,  ‡	— | j                  |«      \  }}t        |||«       t        ||«      \  }}|j                  j                  D �cg c]"  }|j                  t        j                  d«      ‘Œ$ }}|D ]  Š	t        ˆ	fd„|D «       «      rŒJ ‚ y c c}w )Nú/c              3   ó@   •K  — | ]  }|j                  ‰«      –— Œ y ­w©N)Úendswith)Ú.0ÚfÚfiles     €r!   ú	<genexpr>zGTestDiscoverPackagesAndPyModules.test_sdist_filelist.<locals>.<genexpr>T   s   øè ø€ Ò:¨A�q—z‘z $×'Ñ:ùs   ƒ)	rD   Ú_populate_project_dirÚ_run_sdist_programaticallyÚfilelistrB   ÚreplaceÚosÚsepÚany)
r   r   r?   rB   rC   r@   ÚcmdrK   ÚmanifestrL   s
            @r!   Útest_sdist_filelistz4TestDiscoverPackagesAndPyModules.test_sdist_filelistK   s†   ø€ àŸ™¨Ó5‰ˆˆwÜ˜h¨¨wÔ7ä+¨H°gÓ>‰ˆˆ3à47·L±L×4FÑ4FÖG¨q�A—I‘IœbŸf™f cÕ*ÐGˆÐGØò 	;ˆDÜÓ:°Ô:Õ:Ð:Ð:ñ	;ùò Hs   Á
'Bc                 óh  — | j                  |«      \  }}t        |||«       |dz  j                  «        |dz  j                  «        |dz  j                  «        |dz  j                  «        |dz  j                  «        |dz  j                  «        |dz  j                  «        |dz  j                  «        t	        |«       t        t        |j                  d	«      «      «      }t        d
«       t        dj                  |«      «       |t        |«      k\  sJ ‚t        t        |j                  d«      «      «      }t        d«       t        dj                  |«      «       |D �ch c]$  }|j                  dd«      j                  dd«      ’Œ& }}||k\  sJ ‚|D ]  }	d|vsJ ‚d|vrŒJ ‚ y c c}w )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/)rD   rN   r   r   Ú
_run_buildr   ÚnextÚglobÚprintÚjoinÚsetr   rQ   )
r   r   r?   rB   rC   Úsdist_filesÚwheel_filesrK   Ú
orig_filesrL   s
             r!   Útest_projectz-TestDiscoverPackagesAndPyModules.test_projectV   s˜  € àŸ™¨Ó5‰ˆˆwÜ˜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�a—i‘i ¨Ó+×3Ñ3°F¸BÕ?ÐOˆ
ÐOØ˜jÒ(Ð(Ð(ð  ò 	'ˆDØ %Ñ'Ð'Ð'Ø Ò&Ð&Ð&ñ	'ùò	 Ps   Å))F/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)rk   rl   rm   Úparamc                 ó”  — | j                   |   g d¢z   }t        ||i «       |dk(  r|j                  dd«      }n'| j                  d   }|dz  j	                  |d¬«       |}| j                  |   j                  |¬«      }||z  j	                  |d¬«       t        |i «      }	t        |	|«      g k(  sJ ‚d	d
dœ|   }
t        |	|
«      �J ‚y )N)zmod.pyzother.pyr6   rm   r@   r;   rn   úutf-8©Úencoding)rp   r    r4   )r4   r    )r=   rN   rQ   ÚPURPOSEFULLY_EMPYÚ
write_textÚformatÚ	_get_distÚgetattr)r   r   ro   rp   r?   rB   Útemplate_paramÚ	pyprojectÚconfigrZ   Úothers              r!   Útest_purposefully_emptyz8TestDiscoverPackagesAndPyModules.test_purposefully_empty¢   sé   € ð —
‘
˜<Ñ(Ò+XÑXˆÜ˜h¨¨rÔ2àÐ*Ò*Ø"Ÿ]™]¨3°Ó4‰Nð ×.Ñ.Ð/HÑIˆIØÐ(Ñ(×4Ñ4°YÈÐ4ÔQØ"ˆNà×'Ñ'¨Ñ4×;Ñ;À.Ð;ÓQˆØ	�KÑ	×+Ñ+¨F¸WÐ+ÔEä˜ 2Ó&ˆô �t˜UÓ# rÒ)Ð)Ð)Ø)°|ÑDÀUÑKˆÜ�t˜UÓ#Ð+Ð+Ñ+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>   únamespace-stubs.pkgr%   únamespace-stubsz&namespace-stubs/pkg-stubs/__init__.pyir‚   z_hidden/file.pyznews/finalize.pyc                 óŽ   — | j                   d   |z   }t        ||i «       t        |i «      }t        |j                  «      |k(  sJ ‚y )Nr8   )r=   rN   rx   rf   r    )r   r   r   r€   rB   rZ   s         r!   Ú!test_flat_layout_with_extra_fileszBTestDiscoverPackagesAndPyModules.test_flat_layout_with_extra_files»   sF   € ð* —
‘
˜6Ñ" [Ñ0ˆÜ˜h¨¨rÔ2Ü˜ 2Ó&ˆÜ�4—=‘=Ó! TÒ)Ð)Ñ)r#   r   zother/__init__.pyzother/finalize.pyc                 óº   — | j                   d   |z   }t        ||i «       t        j                  t        d¬«      5  t        |i «       d d d «       y # 1 sw Y   y xY w)Nr8   úmultiple (packages|modules)©Úmatch©r=   rN   ÚpytestÚraisesr
   rx   )r   r   r   rB   s       r!   Ú+test_flat_layout_with_dangerous_extra_fileszLTestDiscoverPackagesAndPyModules.test_flat_layout_with_dangerous_extra_filesÕ   sR   € ð —
‘
˜6Ñ" [Ñ0ˆÜ˜h¨¨rÔ2Ü�]‰]Ô0Ð8UÔVñ 	$Ü�h Ô#÷	$÷ 	$ñ 	$ús   »AÁAc                 ó’   — | j                   d   dgz   }t        ||i «       t        |i «      }t        |j                  «      dhk(  sJ ‚y )Nr9   zinvalid-module-name.pyr%   )r=   rN   rx   rf   r4   )r   r   rB   rZ   s       r!   Ú#test_flat_layout_with_single_modulezDTestDiscoverPackagesAndPyModules.test_flat_layout_with_single_moduleâ   sJ   € Ø—
‘
˜?Ñ+Ð/GÐ.HÑHˆÜ˜h¨¨rÔ2Ü˜ 2Ó&ˆÜ�4—?‘?Ó#¨ wÒ.Ð.Ñ.r#   c                 ó¼   — | j                   d   dgz   }t        ||i «       t        j                  t        d¬«      5  t        |i «       d d d «       y # 1 sw Y   y xY w)Nr9   zvalid_module_name.pyr†   r‡   r‰   )r   r   rB   s      r!   Ú&test_flat_layout_with_multiple_moduleszGTestDiscoverPackagesAndPyModules.test_flat_layout_with_multiple_modulesè   sT   € Ø—
‘
˜?Ñ+Ð/EÐ.FÑFˆÜ˜h¨¨rÔ2Ü�]‰]Ô0Ð8UÔVñ 	$Ü�h Ô#÷	$÷ 	$ñ 	$ús   ¼AÁAc                 óp  — ddl m} d}|dz  j                  t        |«      d¬«       |dz  j	                  «        t
        j                  j                  «       j                  |«      5  |j                  d«       d	d	d	«       t        t        |j                  d
«      «      «      }d|v sJ ‚y	# 1 sw Y   Œ3xY w)zRegression for issue 3692r   )Ú
build_metaz%[project]
name = "test"
version = "1"rm   rr   rs   zfoo.pyú.Nz*.whl)Ú
setuptoolsr’   rv   r   r   ÚjaracoÚpathÚDirectoryStackÚcontextÚbuild_wheelr   rb   rc   )r   r   r’   r{   rh   s        r!   Ú%test_py_modules_when_wheel_dir_is_cwdzFTestDiscoverPackagesAndPyModules.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,Â,B5N)r,   r-   r.   Ú__doc__r>   r=   rD   rŠ   ÚmarkÚparametrizeÚkeysrW   rj   r   ru   r~   r„   rŒ   rŽ   r�   rš   r/   r#   r!   r1   r1   *   sp  „ ñð *,¨U¨À%ÀÑIà˜B ˜;ð
ð % u gÐ.Ø#/°%°Ð"9Ø)¨D°(Ð+;Ð<ØØØ#%Ø!ñ€Gð &Ð'8Ð9Ø%Ð'8Ð9Ø" MÐ2Ø"˜Ø*Ð+ñ€Eòð ‡[�[×Ñ˜^¨W¯\©\«^Ó<ñ;ó =ð;ð ‡[�[×Ñ˜^¨W¯\©\«^Ó<ñ'ó =ð'ñB ðó	
ñ ðó
ñ ðó
ñ $(ðó$
ñE)ÐðV ‡[�[×Ñ˜]Ò,WÓXØ‡[�[×Ñ˜W z°<Ð&@ÓAØ‡[�[×Ñ˜^¨U¯Z©Z«\Ó:ñ,ó ;ó Bó Yð,ð, ‡[�[×ÑØà&Ð'¨%¨Ð1Ø&Ð'¨%°Ð)=Ð>Ø(Ð)¨E°=Ð+AÐBð 4Ð4ÚAðð :Ð:ØÐ)Ð*ðð
  Ð  5 'Ð*Ø Ð! E 7Ð+ð	
óñ(*ó)ð(*ð ‡[�[×ÑØà Ð!Ø Ð!ð	
óñ$óð$ò/ò$ó'r#   r1   c                   ó˜   — e Zd ZdZdgdgddgddgdgd	gd
œZej                  j                  dej                  «       «      d„ «       Z	d„ Z
y)ÚTestNoConfigz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   — t        || j                  |   i «       t        |i «      }|j                  «       |k(  sJ ‚y rH   )rN   ÚEXAMPLESrx   Úget_name)r   r   r£   rZ   s       r!   Útest_discover_namezTestNoConfig.test_discover_name  s7   € ä˜h¨¯©°gÑ(>ÀÔCÜ˜ 2Ó&ˆØ�}‰}‹ 'Ò)Ð)Ñ)r#   c                 ó†   — dg}t        ||i «       t        |d«       |d| j                  › d�z  }|j                  «       sJ ‚y )Nzsrc/ns/nested/pkg/__init__.pyú--sdistzdist/ns_nested_pkg-z.tar.gz)rN   ra   ÚDEFAULT_VERSIONÚis_file)r   r   rB   Ú	dist_files       r!   Útest_build_with_discovered_namez,TestNoConfig.test_build_with_discovered_name  sM   € Ø0Ð1ˆÜ˜h¨¨rÔ2Ü�8˜YÔ'àÐ!4°T×5IÑ5IÐ4JÈ'ÐRÑRˆ	Ø× Ñ Ô"Ð"Ñ"r#   N)r,   r-   r.   rª   r¥   rŠ   rœ   r�   rž   r§   r­   r/   r#   r!   r    r    ü   si   „ Ø€Oð �Ø'Ð(Ø'Ð)EÐFØ#Ð%=Ð>Ø;Ð<Ø7Ð8ñ€Hð ‡[�[×Ñ˜Y¨¯©«Ó8ñ*ó 9ð*ó
#r#   r    c                   ól   — e Zd Zej                  j                  ddi fddddidœfg«      d„ «       Zd„ Zy	)
ÚTestWithAttrDirective)ÚfolderÚoptsr   r3   zfind:Úwhere)r    úpackages.findc                 ó*  — |› d�dg}t        |||«       |dz  j                  d¬«      }|dddiidd|z   i}t        j                  j	                  ||¬	«       t        |i «      }|j                  «       dk(  sJ ‚|j                  «       d
k(  sJ ‚|j                  sJ ‚t        d|j                  |«      }t        j                  j                  |«      sJ ‚|t        |«      j                  «       v sJ ‚t        |d«       |dz  }	|	j                  «       sJ ‚y )Nz/pkg/__init__.pyrk   rr   rs   r%   ú__init__.pyúversion = 42z'[metadata]
version = attr: pkg.version
©ÚprefixÚ42r©   zdist/pkg-42.tar.gz)rN   Ú	read_textr•   r–   rY   rx   r¦   Úget_versionr2   r   rR   Úexistsr   Úpartsra   r«   )
r   r   r°   r±   rB   r|   Ú	overwriterZ   Úpackage_pathr¬   s
             r!   Útest_setupcfg_metadataz,TestWithAttrDirective.test_setupcfg_metadata  s'  € ð �8Ð+Ð,¨kÐ:ˆÜ˜h¨¨tÔ4à˜[Ñ(×3Ñ3¸WÐ3ÓEˆà�U˜]¨NÐ;Ð<ØÐDÀvÑMð
ˆ	ô 	�‰×Ñ˜)¨HÐÔ5ä˜ 2Ó&ˆØ�}‰}‹ %Ò'Ð'Ð'Ø×ÑÓ! TÒ)Ð)Ð)Ø×ÒÐÐÜ(¨°×0@Ñ0@À(ÓKˆÜ�w‰w�~‰~˜lÔ+Ð+Ð+Øœ˜lÓ+×1Ñ1Ó3Ñ3Ð3Ð3ä�8˜YÔ'ØÐ3Ñ3ˆ	Ø× Ñ Ô"Ð"Ñ"r#   c                 óÜ   — t        |dgi «       dddiiddœ}t        j                  j                  ||¬«       t	        |i «      }|j                  «       dk(  sJ ‚|j                  d	d
ik(  sJ ‚y )Nr6   r%   rµ   r¶   zh[project]
name = 'pkg'
dynamic = ['version']
[tool.setuptools.dynamic]
version = {attr = 'pkg.version'}
©r   rm   r·   r¹   r   r   )rN   r•   r–   rY   rx   r»   r2   )r   r   r¾   rZ   s       r!   Útest_pyproject_metadataz-TestWithAttrDirective.test_pyproject_metadata6  s‚   € Ü˜hÐ)>Ð(?ÀÔDð ˜M¨>Ð:Ð;ðPñ
ˆ	ô 	�‰×Ñ˜)¨HÐÔ5ä˜ 2Ó&ˆØ×ÑÓ! TÒ)Ð)Ð)Ø×Ñ B¨ ;Ò.Ð.Ñ.r#   N)r,   r-   r.   rŠ   rœ   r�   rÀ   rÃ   r/   r#   r!   r¯   r¯     sI   „ Ø‡[�[×ÑØà�BˆKØ ¸GÀUÐ;KÑLÐMð	
óñ#óð#ó./r#   r¯   c                   ó   — e Zd Zd„ Zd„ Zd„ Zy)ÚTestWithCExtensionc                 óh   — g d¢}t        ||i «       d}|dz  j                  t        |«      d¬«       y )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)
        rl   rr   rs   ©rN   rv   r   )r   r   rB   Úsetup_scripts       r!   Ú _simulate_package_with_extensionz3TestWithCExtension._simulate_package_with_extensionH  s=   € ò
ˆô 	˜h¨¨rÔ2ðˆð 
�JÑ	×*Ñ*¬4°Ó+=ÈÐ*ÕPr#   c                 ó¾  — | j                  |«       d}|dz  j                  t        |«      d¬«       d}|dz  j                  t        |«      d¬«       t        |i «      }|j	                  «       dk(  sJ ‚|j                  «       dk(  sJ ‚|j                  �J ‚|j                  �J ‚t        |j                  «      d
k(  sJ ‚|j                  d   j                  dk(  sJ ‚y	)zˆEnsure 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'
        rm   rr   rs   zQ
            [metadata]
            name = proj
            version = 42
        rk   Úprojr¹   Nr   r   )rÉ   rv   r   rx   r¦   r»   r4   r    ÚlenÚext_modulesr*   )r   r   r{   ÚsetupcfgrZ   s        r!   Ú*test_skip_discovery_with_setupcfg_metadataz=TestWithCExtension.test_skip_discovery_with_setupcfg_metadatai  sì   € ð 	×-Ñ-¨hÔ7ðˆ	ð
 
Ð$Ñ	$×0Ñ0´°i³È7Ð0ÔSðˆð
 
�KÑ	×+Ñ+¬D°«NÀWÐ+ÔMä˜ 2Ó&ˆØ�}‰}‹ &Ò(Ð(Ð(Ø×ÑÓ! TÒ)Ð)Ð)Ø�‰Ð&Ð&Ð&Ø�}‰}Ð$Ð$Ð$Ü�4×#Ñ#Ó$¨Ò)Ð)Ð)Ø×Ñ Ñ"×'Ñ'¨6Ò1Ð1Ñ1r#   c                 óà   — | j                  |«       d}|dz  j                  t        |«      d¬«       t        j                  t
        d¬«      5  t        |i «       ddd«       y# 1 sw Y   yxY w)aŽ  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'
        rm   rr   rs   r†   r‡   N)rÉ   rv   r   rŠ   r‹   r
   rx   )r   r   r{   s      r!   Ú0test_dont_skip_discovery_with_pyproject_metadatazCTestWithCExtension.test_dont_skip_discovery_with_pyproject_metadata…  sg   € ð 	×-Ñ-¨hÔ7ðˆ	ð
 
Ð$Ñ	$×0Ñ0´°i³È7Ð0ÔSÜ�]‰]Ô0Ð8UÔVñ 	$Ü�h Ô#÷	$÷ 	$ñ 	$ús   ÁA$Á$A-N)r,   r-   r.   rÉ   rÏ   rÑ   r/   r#   r!   rÅ   rÅ   G  s   „ òQòB2ó8$r#   rÅ   c                   ó
  — e Zd Zd„ ZdZdZdZej                  j                  ddd e
e«      ifdd e
e«      ifd	d e
e«      ifd	d e
e«      ifd	d e
e«       e
d
«      z   ifd	d e
e«       e
d«      z   ifg«      d„ «       Zy)ÚTestWithPackageDatac                 ó|   — |› d�|› d�|› d�g}t        ||i «       d}|dz  j                  t        |«      d¬«       y )Nz/proj/__init__.pyú/proj/file1.txtú/proj/nested/file2.txtz/
            global-include *.py *.txt
        zMANIFEST.inrr   rs   rÇ   )r   r   Úsrc_rootrB   rV   s        r!   Ú!_simulate_package_with_data_filesz5TestWithPackageData._simulate_package_with_data_filesš  s\   € àˆ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×   rB   r“   rk   rm   r   zÞ
                        packages = find:
                        package_dir =
                            =src

                        [options.packages.find]
                        where = src
                        zv
                        [tool.setuptools]
                        package-dir = {"" = "src"}
                        c                 ó6  — t         j                  j                  |t        |«      ¬«       | j	                  ||«       t
        j                  j                  |› d�«      j                  t
        j                  d«      t
        j                  j                  |› d�«      j                  t
        j                  d«      h}t        |«       t        t        |j                  d«      «      «      }t        d«       t        dj                  |«      «       ||k\  sJ ‚t        t        |j                  d«      «      «      }t        d	«       t        dj                  |«      «       |D �ch c]$  }|j                  d
d«      j                  dd«      ’Œ& }}||k\  sJ ‚yc c}w )zq
        Make sure auto-discovery does not affect package include_package_data.
        See issue #3196.
        r·   rÕ   rF   rÖ   r[   r\   r]   r^   r_   r(   r   r`   N)r•   r–   rY   ÚstrrØ   rR   ÚnormpathrQ   rS   ra   r   rb   rc   rd   re   r   )	r   r   r×   rB   Úexpectedrg   rh   rK   ri   s	            r!   Útest_include_package_dataz-TestWithPackageData.test_include_package_dataº  sJ  € ô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˜Ó$Ô%Ø˜hÒ&Ð&Ð&ä'¬¨X¯]©]¸<Ó-HÓ(IÓJˆÜÐ)Ô*Üˆd�i‰i˜Ó$Ô%ØIQÖRÀA�a—i‘i ¨Ó+×3Ñ3°F¸BÕ?ÐRˆ
ÐRØ˜jÒ(Ð(Ñ(ùò Ss   Å#)FN)r,   r-   r.   rØ   ÚEXAMPLE_SETUPCFGÚEXAMPLE_PYPROJECTÚPYPROJECT_PACKAGE_DIRrŠ   rœ   r�   r   rÝ   r/   r#   r!   rÓ   rÓ   ™  sò   „ òPðÐðÐðÐð
 ‡[�[×ÑØà�;¡Ð%5Ó 6Ð7Ð8ØÐ#¡TÐ*;Ó%<Ð=Ð>Ø�[¡$Ð'7Ó"8Ð9Ð:ØÐ%¡tÐ,=Ó'>Ð?Ð@àà¡Ð&6Ó!7Ùðó	ñ
"ððð" à$¡dÐ+<Ó&=Ùðóñ'ððð+!	
ó$ñJ)óK$ñJ)r#   rÓ   c                 ó²   — g d¢}t        | |i «       t        i «      }t        «       |_        |j	                  «        |j
                  �J ‚|j                  �J ‚y )N)zdir1/__init__.pyzdir2/__init__.pyzfile.py)rN   r	   ÚobjectÚconfigurationÚset_defaultsr4   r    )r   rB   rZ   s      r!   Ú(test_compatible_with_numpy_configurationrå   ú  sW   € ò€Eô
 ˜( E¨2Ô.Ü˜Ó€DÜ›€DÔØ×ÑÔØ�?‰?Ð"Ð"Ð"Ø�=‰=Ð Ð Ñ r#   c                 óÖ   — t         j                  j                  ddi«       t        i «      }dg|_        |j                  «        |j                  «        |j                  «       dk(  sJ ‚y )Nr7   r   z--namer%   )r•   r–   rY   r	   Úscript_argsrä   Úparse_command_liner¦   )Ú
tmpdir_cwdrZ   s     r!   Ú$test_name_discovery_doesnt_break_clirê     sX   € Ü
‡K�K×Ñ�x �nÔ%Ü˜Ó€DØ �z€DÔØ×ÑÔØ×ÑÔØ�=‰=‹?˜eÒ#Ð#Ñ#r#   c                 ór  ‡‡— dddiit        d«      dœ}t        j                  j                  |«       t	        i «      Š‰j
                  j                  Šˆˆfd„}|j                  ‰j
                  d|«       ‰j                  «        ‰j                  «       dk(  sJ ‚t        ‰j                  «      dhk(  sJ ‚y	)
a
  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                  ó>   •—  ‰«        ‰ j                  «       dk(  sJ ‚y )NÚmyproj)r¦   )rZ   Úorig_analyse_names   €€r!   Úspy_analyse_namezJtest_preserve_explicit_name_with_dynamic_version.<locals>.spy_analyse_name)  s   ø€ ñ 	ÔØ�}‰}‹ (Ò*Ð*Ñ*r#   Úanalyse_namer¹   N)r   r•   r–   rY   r	   rä   rð   ÚsetattrÚparse_config_filesr»   rf   r    )ré   ÚmonkeypatchrB   rï   rZ   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                 óê   ‡ — ddddœ}t         j                  j                  |‰ ¬«       t        ‰ |«       ˆ fd„|D «       }|D ]/  }|j                  j                  dd¬«       |j                  «        Œ1 y )	Nz$import setuptools
setuptools.setup()z# Example PackagezCopyright (c) 2018)rl   z	README.mdÚLICENSEr·   c              3   ó(   •K  — | ]	  }‰|z  –— Œ y ­wrH   r/   )rJ   rK   Úroots     €r!   rM   z(_populate_project_dir.<locals>.<genexpr>@  s   øè ø€ Ò%˜!ˆT�A�XÑ%ùs   ƒTr   )r•   r–   rY   Ú_write_setupcfgÚparentr   r   )rø   rB   rC   ÚbasicÚpathsr–   s   `     r!   rN   rN   5  sq   ø€ ð
 <Ø(Ø'ñ€Eô
 ‡K�K×Ñ�e DÐÔ)Ü�D˜'Ô"Û%˜uÔ%€EØò ˆØ�‰×Ñ 4°ÐÔ6Ø�
‰
�ñr#   c                 óž  — |st        d«       y t        «       }|j                  d«       |j                  «       D ]±  \  }}|dk(  r,|j                  d|› �«       |d|› �   j	                  |«       Œ7t        |t        «      rdj                  |«      |d   |<   Œ_t        |t        «      r2dj                  d„ |j                  «       D «       «      }d|z   |d   |<   Œ¡t        |«      |d   |<   Œ³ t        | dz  d	d
¬«      5 }|j                  |«       d d d «       t        d«       t        | dz  j                  d
¬«      «       y # 1 sw Y   Œ3xY w)Nz~~~~~ **NO** setup.cfg ~~~~~rC   r³   zoptions.z, r]   c              3   ó2   K  — | ]  \  }}d |› d|› �–— Œ y­w)ú	z = Nr/   )rJ   ÚkÚvs      r!   rM   z"_write_setupcfg.<locals>.<genexpr>S  s    è ø€ Ò!K±T°Q¸ B q c¨¨Q¨C¤.Ñ!Kùs   ‚rk   Úwrr   rs   z~~~~~ setup.cfg ~~~~~)rd   r   Úadd_sectionÚitemsÚupdateÚ
isinstanceÚlistre   ÚdictrÚ   ÚopenÚwriterº   )rø   rC   rÎ   ÚkeyÚvalueÚ	str_valuerK   s          r!   rù   rù   F  s=  € ÙÜÐ,Ô-ØÜ‹~€HØ×Ñ˜Ô#Ø—m‘m“oò 
2‰
ˆˆUØ�/Ò!Ø× Ñ  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Ñ Ò$ð
2ô 
ˆd�[Ñ  #°Ô	8ð ¸AØ�‰�qÔ÷ä	Ð
!Ô"Ü	ˆ4�+Ñ×
(Ñ
(°'Ð
(Ó
:Õ;÷ð ús   Ã?EÅEc                 ób   — t         j                  dddg|¢t        | «      ‘}t        |ddi¬«      S )Nz-mrY   z--no-isolationÚDISTUTILS_DEBUGr   )Úenv)ÚsysÚ
executablerÚ   r   )r–   ÚflagsrU   s      r!   ra   ra   ]  s6   € Ü�>‰>˜4 Ð*:Ð
N¸UÐ
NÄCÈÃIÐ
N€CÜˆsÐ*¨BÐ/Ô0Ð0r#   c           	      óà  — dj                  t        j                  j                  | «      «      }| dz  }|j	                  «       rEt        | «      5  t        t        t        j                  j                  di d¬«      «      }d d d «       nt        |«      }|_        d|_        t        | «      5  |j                  «        d d d «       |j                  «        |S # 1 sw Y   ŒMxY w# 1 sw Y   Œ'xY w)NrF   rl   Úinit)Ú
stop_after)re   rR   r–   Úsplitr¼   r   r   r	   Ú	distutilsÚcoreÚ	run_setupr×   Úscript_namerò   rä   )Ú	dist_pathÚattrsrø   ÚscriptrZ   s        r!   rx   rx   b  sÍ   € Ø�8‰8”B—G‘G—M‘M )Ó,Ó-€Dà˜Ñ#€FØ‡}�}„Ü�)‹_ñ 	ÜÜÜ—‘×(Ñ(¨°RÀFÐ(ÓKóˆD÷	ð 	ô ˜EÓ"ˆà€D„MØ!€DÔÜ	ˆi‹ñ "Ø×ÑÔ!÷"ð 	×ÑÔØ€K÷	ð 	ú÷"ð "ús   Á1CÂ-C$ÃC!Ã$C-c                 óX  — t        | |«      }t        |«      }|j                  «        |j                  j                  s|j                  j
                  sJ ‚t        «       5  t        | «      5  |j                  «        d d d «       d d d «       ||fS # 1 sw Y   ŒxY w# 1 sw Y   ||fS xY wrH   )	rx   r   Úensure_finalizedÚdistributionr    r4   r   r   r   )r  r  rZ   rU   s       r!   rO   rO   x  s—   € Ü�Y Ó&€DÜ
�‹+€CØ×ÑÔØ×Ñ×$Ò$¨×(8Ñ(8×(CÒ(CÐCÐCä	‹ñ ”$�y“/ñ Ø�‰Œ	÷÷ ð �ˆ9Ð÷ð ú÷ ð �ˆ9Ðús$   Á BÁ,BÁ=BÂB	ÂBÂB))-rR   r  Úconfigparserr   Útypingr   Újaraco.pathr•   rŠ   r–   r   r”   Úsetuptools.command.sdistr   Úsetuptools.discoveryr   r   Úsetuptools.distr	   Úsetuptools.errorsr
   Úcontextsr   Úintegration.helpersr   r   r   Útextwrapr   Údistutils.corer  r   r1   r    r¯   rÅ   rÓ   rå   rê   rô   rN   rù   ra   rx   rO   r/   r#   r!   ú<module>r-     s©   ðÛ 	Û 
Ý %Ý ã Û Ý ã Ý *ß GÝ (Ý 3å ß JÑ JÝ ã ÷Lñ L÷&O'ñ O'÷d#ñ #÷6-/ñ -/÷`O$ñ O$÷d^)ñ ^)òB!ò$ò!)òHò"<ò.1ò
ó,	r#   