Ë
    nûàg4X  ã                   ól  — d dl Z d dlZd dlm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)Úproduct)Ú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      úd/var/www/skyplay_api_hub/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                   óÜ  — 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 eg d ¢dd	g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                  d/d0gd1gg«      d2„ «       Zd3„ Zd4„ Zd5„ Zy6)7Ú TestDiscoverPackagesAndPyModulesz‹Make sure discovered values for ``packages`` and ``py_modules`` work
    similarly to explicit configuration for the simple scenarios.
    r   r   r&   )Úpackage_dirr!   r3   Ú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   r4   Ú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_infoF   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>U   s   øè ø€ Ò:¨A�q—z‘z $×'Ñ:ùs   ƒ)	rE   Ú_populate_project_dirÚ_run_sdist_programaticallyÚfilelistrC   ÚreplaceÚosÚsepÚany)
r   r    r@   rC   rD   rA   ÚcmdrL   ÚmanifestrM   s
            @r"   Útest_sdist_filelistz4TestDiscoverPackagesAndPyModules.test_sdist_filelistL   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/)rE   rO   r   r   Ú
_run_buildr   ÚnextÚglobÚprintÚjoinÚsetr   rR   )
r   r    r@   rC   rD   Úsdist_filesÚwheel_filesrL   Ú
orig_filesrM   s
             r"   Útest_projectz-TestDiscoverPackagesAndPyModules.test_projectW   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Úparamr@   )rl   rm   rn   c                 ó”  — | 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.pyr7   rn   rA   r<   ro   úutf-8©Úencoding)rq   r!   r5   )r5   r!   )r>   rO   rR   ÚPURPOSEFULLY_EMPYÚ
write_textÚformatÚ	_get_distÚgetattr)r   r    rp   rq   r@   rC   Útemplate_paramÚ	pyprojectÚconfigr[   Ú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 )Nr9   )r>   rO   ry   rg   r!   )r   r    r€   r�   rC   r[   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)Nr9   úmultiple (packages|modules)©Úmatch©r>   rO   ÚpytestÚraisesr   ry   )r   r    r€   rC   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 )Nr:   zinvalid-module-name.pyr&   )r>   rO   ry   rg   r5   )r   r    rC   r[   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)Nr:   zvalid_module_name.pyr‡   rˆ   rŠ   )r   r    rC   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"rn   rs   rt   zfoo.pyú.Nz*.whl)Ú
setuptoolsr“   rw   r   r   ÚjaracoÚpathÚDirectoryStackÚcontextÚbuild_wheelr   rc   rd   )r   r    r“   r|   ri   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>   rE   r‹   ÚmarkÚparametrizeÚkeysrX   rk   r   rv   r   r   r…   r�   r�   r‘   r›   r0   r$   r"   r2   r2   +   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$   r2   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 rI   )rO   ÚEXAMPLESry   Úget_name)r   r    r¤   r[   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)rO   rb   ÚDEFAULT_VERSIONÚis_file)r   r    rC   Ú	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®   r0   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   r4   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__.pyrl   rs   rt   r&   ú__init__.pyúversion = 42z'[metadata]
version = attr: pkg.version
©ÚprefixÚ42rª   zdist/pkg-42.tar.gz)rO   Ú	read_textr–   r—   rZ   ry   r§   Úget_versionr3   r   rS   Úexistsr   Úpartsrb   r¬   )
r   r    r±   r²   rC   r}   Ú	overwriter[   Ú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 )Nr7   r&   r¶   r·   zh[project]
name = 'pkg'
dynamic = ['version']
[tool.setuptools.dynamic]
version = {attr = 'pkg.version'}
©r   rn   r¸   rº   r   r   )rO   r–   r—   rZ   ry   r¼   r3   )r   r    r¿   r[   s       r"   Útest_pyproject_metadataz-TestWithAttrDirective.test_pyproject_metadata<  s‚   € Ü˜hÐ)>Ð(?ÀÔDð ˜M¨>Ð:Ð;ðPñ
ˆ	ô 	�‰×Ñ˜)¨HÐÔ5ä˜ 2Ó&ˆØ×ÑÓ! TÒ)Ð)Ð)Ø×Ñ B¨ ;Ò.Ð.Ñ.r$   N)r-   r.   r/   r‹   r�   rž   rÁ   rÄ   r0   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)
        rm   rs   rt   ©rO   rw   r   )r   r    rC   Úsetup_scripts       r"   Ú _simulate_package_with_extensionz3TestWithCExtension._simulate_package_with_extensionN  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'
        rn   rs   rt   zQ
            [metadata]
            name = proj
            version = 42
        rl   Úprojrº   Nr   r   )rÊ   rw   r   ry   r§   r¼   r5   r!   ÚlenÚext_modulesr+   )r   r    r|   Úsetupcfgr[   s        r"   Ú*test_skip_discovery_with_setupcfg_metadataz=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                 óà   — | 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'
        rn   rs   rt   r‡   rˆ   N)rÊ   rw   r   r‹   rŒ   r   ry   )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Ò   r0   r$   r"   rÆ   rÆ   M  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.inrs   rt   rÈ   )r   r    Úsrc_rootrC   rW   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Ø   rC   r”   rl   rn   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Ö   rG   r×   r\   r]   r^   r_   r`   r)   r   ra   N)r–   r—   rZ   ÚstrrÙ   rS   ÚnormpathrR   rT   rb   r   rc   rd   re   rf   r   )	r   r    rØ   rC   Úexpectedrh   ri   rL   rj   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Þ   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                 ó²   — g d¢}t        | |i «       t        i «      }t        «       |_        |j	                  «        |j
                  �J ‚|j                  �J ‚y )N)zdir1/__init__.pyzdir2/__init__.pyzfile.py)rO   r
   ÚobjectÚconfigurationÚset_defaultsr5   r!   )r    rC   r[   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 )Nr8   r   z--namer&   )r–   r—   rZ   r
   Úscript_argsrå   Úparse_command_liner§   )Ú
tmpdir_cwdr[   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§   )r[   Ú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—   rZ   r
   rå   rñ   ÚsetattrÚparse_config_filesr¼   rg   r!   )rê   ÚmonkeypatchrC   rð   r[   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)rm   z	README.mdÚLICENSEr¸   c              3   ó(   •K  — | ]	  }‰|z  –— Œ y ­wrI   r0   )rK   rL   Úroots     €r"   rN   z(_populate_project_dir.<locals>.<genexpr>F  s   øè ø€ Ò%˜!ˆT�A�XÑ%ùs   ƒTr   )r–   r—   rZ   Ú_write_setupcfgÚparentr   r   )rù   rC   rD   ÚbasicÚpathsr—   s   `     r"   rO   rO   ;  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 ~~~~~rD   r´   zoptions.z, r^   c              3   ó2   K  — | ]  \  }}d |› d|› �–— Œ y­w)ú	z = Nr0   )rK   ÚkÚvs      r"   rN   z"_write_setupcfg.<locals>.<genexpr>Y  s    è ø€ Ò!K±T°Q¸ B q c¨¨Q¨C¤.Ñ!Kùs   ‚rl   Úwrs   rt   z~~~~~ setup.cfg ~~~~~)re   r   Úadd_sectionÚitemsÚupdateÚ
isinstanceÚlistrf   ÚdictrÛ   ÚopenÚwriter»   )rù   rD   rÏ   ÚkeyÚvalueÚ	str_valuerL   s          r"   rú   rú   L  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-mrZ   z--no-isolationÚDISTUTILS_DEBUGr   )Úenv)ÚsysÚ
executablerÛ   r   )r—   ÚflagsrV   s      r"   rb   rb   c  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)NrG   rm   Úinit)Ú
stop_after)rf   rS   r—   Úsplitr½   r   r   r
   Ú	distutilsÚcoreÚ	run_setuprØ   Úscript_nameró   rå   )Ú	dist_pathÚattrsrù   Úscriptr[   s        r"   ry   ry   h  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rI   )	ry   r   Úensure_finalizedÚdistributionr!   r5   r   r   r   )r  r  r[   rV   s       r"   rP   rP   ~  s—   € Ü�Y Ó&€DÜ
�‹+€CØ×ÑÔØ×Ñ×$Ò$¨×(8Ñ(8×(CÒ(CÐCÐCä	‹ñ ”$�y“/ñ Ø�‰Œ	÷÷ ð �ˆ9Ð÷ð ú÷ ð �ˆ9Ðús$   Á BÁ,BÁ=BÂB	ÂBÂB))/rS   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.corer  r   r2   r¡   r°   rÆ   rÔ   ræ   rë   rõ   rO   rú   rb   ry   rP   r0   r$   r"   ú<module>r/     s¬   ðÛ 	Û 
Ý %Ý Ý ã Û Ý ã Ý *ß GÝ (Ý 3å ß JÑ JÝ ã ÷Lñ L÷&T'ñ T'÷n#ñ #÷6-/ñ -/÷`O$ñ O$÷d^)ñ ^)òB!ò$ò!)òHò"<ò.1ò
ó,	r$   