Ë
    nûàgw©  ã            
      óð  — d dl mZ d dlZ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mZ d dlmZ d dlm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Zd dlmZ d dlmZ d dl m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z) d dl*m+Z+ d dl,m-Z- d dl.m/Z/ ddl0m1Z1m2Z2 d dl3m4Z4  ejj                  ddg¬«      d„ «       Z6 ed«       ed«      jo                  «       ddd ed«       ed«      ddd œid!œZ8d"Z9ejt                  jw                  ej                  d#k(  d$¬%«      ejt                  jy                  d&i e8¥d'e9i¥e8g«      d(„ «       «       Z=d)„ Z>d*„ Z? G d+„ d,«      Z@ G d-„ d.«      ZAd/„ ZB G d0„ d1«      ZCd2„ ZD G d3„ d4«      ZE G d5„ d6«      ZFejt                  j�                  d7«      d8„ «       ZHd9„ ZI G d:„ d;«      ZJ G d<„ d=«      ZK G d>„ d?«      ZLd@„ ZMejt                  j�                  dA«      dB„ «       ZNdC„ ZOdD„ ZPdE„ ZQdHdF„ZRdIdG„ZSy)Jé    )ÚannotationsN)Údeepcopy)Úimport_module)ÚEXTENSION_SUFFIXES)ÚPath)Údedent)ÚAny)ÚMock)Úuuid4)Ú	resources)	Ú_DebuggingTipsÚ_encode_pthÚ_find_namespacesÚ_find_package_rootsÚ_find_virtual_namespacesÚ_finder_templateÚ	_LinkTreeÚ_TopLevelFinderÚeditable_wheel)ÚDistribution)Ú	Extension)ÚSetuptoolsDeprecationWarningé   )ÚcontextsÚ
namespaces)Ú	run_setupÚstrictÚlenient)Úparamsc                ó,   — | j                   dk(  rddgS g S )Nr   ú--config-settingsúeditable-mode=strict)Úparam)Úrequests    úd/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/setuptools/tests/test_editable_install.pyÚeditable_optsr&   +   s   € à‡}�}˜Ò Ø#Ð%;Ð<Ð<Ø€Ió    aý          [build-system]
        requires = ["setuptools"]
        build-backend = "setuptools.build_meta"

        [project]
        name = "mypkg"
        version = "3.14159"
        license = {text = "MIT"}
        description = "This is a Python package"
        dynamic = ["readme"]
        classifiers = [
            "Development Status :: 5 - Production/Stable",
            "Intended Audience :: Developers"
        ]
        urls = {Homepage = "https://github.com"}

        [tool.setuptools]
        package-dir = {"" = "src"}
        packages = {find = {where = ["src"]}}
        license-files = ["LICENSE*"]

        [tool.setuptools.dynamic]
        readme = {file = "README.rst"}

        [tool.distutils.egg_info]
        tag-build = ".post0"
        zr        global-include *.py *.txt
        global-exclude *.py[cod]
        prune dist
        prune build
        zThis is a ``README``z!---- placeholder MIT license ----Úmypkga                  import sys
                from importlib.metadata import PackageNotFoundError, version

                try:
                    __version__ = version(__name__)
                except PackageNotFoundError:
                    __version__ = "unknown"
                a                  from importlib.resources import read_text
                from . import __version__, __name__ as parent
                from .mod import x

                data = read_text(parent, "data.txt")
                print(__version__, data, x)
                zx = ''zHello World)ú__init__.pyz__main__.pyúmod.pyzdata.txt)úpyproject.tomlúMANIFEST.inz
README.rstzLICENSE.txtÚsrcz __import__('setuptools').setup()Údarwinúpypa/setuptools#4328©ÚreasonÚfilesúsetup.pyc           	     ó¼  — | dz  }|j                  «        t        j                  j                  ||¬«       ddddddt	        |«      g|¢}t        |j                  |«      «       g d	¢}|j                  |«      j                  «       d
k(  sJ ‚|dz  j                  dd¬«       |dz  j                  dd¬«       |j                  |«      j                  «       dk(  sJ ‚y )Nr(   ©ÚprefixÚpythonú-mÚpipÚinstallú--no-build-isolationú-e)r7   r8   r(   z3.14159.post0 Hello Worldzsrc/mypkg/data.txtÚfoobarúutf-8©Úencodingzsrc/mypkg/mod.pyúx = 42z3.14159.post0 foobar 42)	ÚmkdirÚjaracoÚpathÚbuildÚstrÚprintÚrunÚstripÚ
write_text)Útmp_pathÚvenvr2   r&   ÚprojectÚcmds         r%   Útest_editable_with_pyprojectrO   |   sã   € ð ˜Ñ €GØ‡M�M„OÜ
‡K�K×Ñ�e GÐÔ,ð 	ØØØØØÜˆG‹ð	ð 
ð	€Cô 
ˆ$�(‰(�3‹-Ôâ
#€CØ�8‰8�C‹=×ÑÓ Ð$?Ò?Ð?Ð?àÐ#Ñ#×/Ñ/°À7Ð/ÔKØÐ!Ñ!×-Ñ-¨hÀÐ-ÔIØ�8‰8�C‹=×ÑÓ Ð$=Ò=Ð=Ñ=r'   c           	     ó"  — dt        d«      ddiddœi}t        j                  j                  || ¬«       | dz  }dd	d
dddt	        |«      g|¢}t        |j                  |«      «       g d¢}|j                  |«      j                  «       dk(  sJ ‚y )Nr(   ac                  [build-system]
                requires = ["setuptools", "wheel"]
                build-backend = "setuptools.build_meta"

                [project]
                name = "mypkg"
                version = "3.14159"

                [tool.setuptools]
                packages = ["pkg"]
                py-modules = ["mod"]
                r)   za = 4úb = 2)r+   Úpkgr*   r5   r7   r8   r9   r:   r;   r<   )r7   ú-cz$import pkg, mod; print(pkg.a, mod.b)z4 2©r   rC   rD   rE   rF   rG   rH   rI   ©rK   rL   r&   r2   rM   rN   s         r%   Útest_editable_with_flat_layoutrV   �   s°   € àÜ$ðóð " 7Ð+Øñ#
ð€Eô* ‡K�K×Ñ�e HÐÔ-Ø˜Ñ €Gð 	ØØØØØÜˆG‹ð	ð 
ð	€Cô 
ˆ$�(‰(�3‹-ÔÚ
B€CØ�8‰8�C‹=×ÑÓ  EÒ)Ð)Ñ)r'   c           	     ó  — dt        d«      ddœi}t        j                  j                  || ¬«       | dz  }dddd	d
dt	        |«      g|¢}t        |j                  |«      «       g d¢}|j                  |«      j                  «       dk(  sJ ‚y )Nr(   a>                  [build-system]
                requires = ["setuptools", "wheel"]
                build-backend = "setuptools.build_meta"

                [project]
                name = "mod"
                version = "3.14159"

                [tool.setuptools]
                py-modules = ["mod"]
                rQ   )r+   r*   r5   r7   r8   r9   r:   r;   r<   )r7   rS   zimport mod; print(mod.b)Ú2rT   rU   s         r%   Ú test_editable_with_single_modulerY   Å   s¨   € àÜ$ðóð ñ
ð€Eô& ‡K�K×Ñ�e HÐÔ-Ø˜Ñ €Gð 	ØØØØØÜˆG‹ð	ð 
ð	€Cô 
ˆ$�(‰(�3‹-ÔÚ
6€CØ�8‰8�C‹=×ÑÓ  CÒ'Ð'Ñ'r'   c                  ó”   — e Zd Zd„ Zej
                  j                  dd«      ej
                  j                  dd«      d„ «       «       Zy)ÚTestLegacyNamespacesc                óP  — t        j                  t        d¬«      }|dz  }|j                  «        d}|D ]¤  }t	        j
                  ||d¬«      }|5  |j                  «       5 }|j                  |«       t        dd¬	«      }	t        |	«      }
|
j                  «        |
j                  d
«      j                  }|
j                  ||«       d d d «       d d d «       Œ¦ t        |j                  d«      «      }t!        |«      t!        |«      k(  sJ ‚y # 1 sw Y   ŒGxY w# 1 sw Y   ŒðxY w)Nz .*namespace_packages parameter.*©Úmatchz.installation_dir)z	myns.pkgAz	myns.pkgBúmyns.n.pkgAúmyns.n.pkgBÚ42)Úversionr3   Úconfig)Ú
stop_afterÚ	dist_infoz*-nspkg.pth)ÚpytestÚwarnsr   rB   r   Úbuild_namespace_packageÚcontextÚchdirr   r   Úfinalize_optionsÚget_finalized_commandÚnameÚ_install_namespacesÚlistÚglobÚlen)ÚselfrK   ÚmonkeypatchÚdeprecationÚinstallation_dirÚexamplesrm   rR   ÚctxÚdistrN   Úeditable_namer2   s                r%   Útest_nspkg_file_is_uniquez.TestLegacyNamespaces.test_nspkg_file_is_uniqueî   s(  € Ü—l‘lÜ(Ð0Rô
ˆð $Ð&9Ñ9ÐØ×ÑÔ ð
ˆð ò 	IˆDÜ×4Ñ4°X¸tÈTÔRˆCØñ I˜k×1Ñ1Ó3ð I°sØ—	‘	˜#”Ü  ¸ÔA�Ü$ TÓ*�Ø×$Ñ$Ô&Ø #× 9Ñ 9¸+Ó F× KÑ K�Ø×'Ñ'Ð(8¸-ÔH÷I÷ Ið Ið	Iô Ð%×*Ñ*¨=Ó9Ó:ˆÜ�5‹zœS ›]Ò*Ð*Ñ*÷Ið Iú÷ Ið Iús%   ÁDÁ#A'DÃ
DÄDÄDÄD%	Úimpl)Úpkg_resourcesÚns)zmyns.nc           
     óÚ  — d}t        j                  ||› d�|¬«      }t        j                  ||› d�|¬«      }|dz  j                  |d¬«       |dz  j                  |d¬«       |dd }	|	j                  d	«       |j	                  d
dddt        |«      g|	¢«       |j	                  d
ddddt        |«      g|	¢«       |j	                  d
dd|› d|› d�g«       |j	                  g d¢«       y)a>  
        Installing two packages sharing the same namespace, one installed
        naturally using pip or `--single-version-externally-managed`
        and the other installed in editable mode should leave the namespace
        intact and both packages reachable by import.
        (Ported from test_develop).
        zq        [build-system]
        requires = ["setuptools"]
        build-backend = "setuptools.build_meta"
        z.pkgA)r{   z.pkgBr+   r>   r?   Nr;   r7   r8   r9   r:   r<   rS   zimport z.pkgA; import )r7   rS   zimport pkg_resources)r   rh   rJ   ÚappendrH   rF   )
rr   rL   rK   r}   r{   r&   Úbuild_systemÚpkg_AÚpkg_BÚoptss
             r%   Ú!test_namespace_package_importablez6TestLegacyNamespaces.test_namespace_package_importable  sû   € ð$ˆô
 ×2Ñ2°8À¸tÀ5¸\ÐPTÔUˆÜ×2Ñ2°8À¸tÀ5¸\ÐPTÔUˆØ	Ð!Ñ	!×-Ñ-¨lÀWÐ-ÔMØ	Ð!Ñ	!×-Ñ-¨lÀWÐ-ÔMà™QÐˆØ�‰Ð*Ô+Ø�‰�(˜D %¨´C¸³JÐFÀÐFÔGØ�‰�(˜D %¨°D¼#¸e»*ÐLÀtÐLÔMØ�‰�(˜D G¨B¨4¨~¸b¸TÀÐ"GÐHÔIà�‰Ò9Õ:r'   N)Ú__name__Ú
__module__Ú__qualname__rz   rf   ÚmarkÚparametrizer„   © r'   r%   r[   r[   ë   sM   „ ò+ð4 ‡[�[×ÑØð	
óð ‡[�[×Ñ˜T ;Ó/ñ;ó 0óñ;r'   r[   c                  ó   — e Zd Zd„ Zd„ Zd„ Zy)ÚTestPep420Namespacesc           
     ó4  — t        j                  |d«      }t        j                  |d«      }|dd }|j                  d«       |j                  ddddt	        |«      g|¢«       |j                  ddddd	t	        |«      g|¢«       |j                  g d
¢«       y)zÅ
        Installing two packages sharing the same namespace, one installed
        normally using pip and the other installed in editable mode
        should allow importing both packages.
        r_   r`   Nr;   r7   r8   r9   r:   r<   )r7   rS   z&import myns.n.pkgA; import myns.n.pkgB)r   Úbuild_pep420_namespace_packager   rH   rF   )rr   rL   rK   r&   r�   r‚   rƒ   s          r%   r„   z6TestPep420Namespaces.test_namespace_package_importable.  sŽ   € ô ×9Ñ9¸(ÀMÓRˆÜ×9Ñ9¸(ÀMÓRˆà™QÐˆØ�‰Ð*Ô+Ø�‰�(˜D %¨´C¸³JÐFÀÐFÔGØ�‰�(˜D %¨°D¼#¸e»*ÐLÀtÐLÔMØ�‰ÒKÕLr'   c           
     óè  — dt        d«      ddidœi}t        j                  j                  ||¬«       |dz  }t	        j
                  |d«      }t	        j
                  |d«      }|d	d	 }|j                  d
«       |j                  ddddt        |«      g|¢«       |j                  dddddt        |«      g|¢«       |j                  dddddt        |«      g|¢«       |j                  g d¢«       y	)z@Currently users can create a namespace by tweaking `package_dir`ÚpkgAat                      [build-system]
                    requires = ["setuptools", "wheel"]
                    build-backend = "setuptools.build_meta"

                    [project]
                    name = "pkgA"
                    version = "3.14159"

                    [tool.setuptools]
                    package-dir = {"myns.n.pkgA" = "src"}
                    r)   úa = 1)r+   r-   r5   r`   zmyns.n.pkgCNr;   r7   r8   r9   r:   r<   )r7   rS   z#from myns.n import pkgA, pkgB, pkgC)	r   rC   rD   rE   r   rŽ   r   rH   rF   )	rr   rL   rK   r&   r2   r�   r‚   Úpkg_Crƒ   s	            r%   Ú&test_namespace_created_via_package_dirz;TestPep420Namespaces.test_namespace_created_via_package_dir=  sû   € ð Ü"(ðó#ð & wÐ/ñð
ˆô& 	�‰×Ñ˜%¨ÐÔ1Ø˜6Ñ!ˆÜ×9Ñ9¸(ÀMÓRˆÜ×9Ñ9¸(ÀMÓRˆð ™QÐˆØ�‰Ð*Ô+Ø�‰�(˜D %¨´C¸³JÐFÀÐFÔGØ�‰�(˜D %¨°D¼#¸e»*ÐLÀtÐLÔMØ�‰�(˜D %¨°D¼#¸e»*ÐLÀtÐLÔMØ�‰ÒHÕIr'   c                ót  — dt        d«      dddddœdœt        d   d	œi}t        j                  j	                  ||¬
«       |dz  }dg}|j                  ddddddt        |«      g|¢«       |j                  g d¢«      }|j                  «       dk(  sJ ‚d}|j                  ddt        |«      g«      }d|v sJ ‚y)a/  Sometimes users might specify an ``include`` pattern that ignores parent
        packages. In a normal installation this would ignore all modules inside the
        parent packages, and make them namespaces (reported in issue #3504),
        so the editable mode should preserve this behaviour.
        r�   ar                      [build-system]
                    requires = ["setuptools", "wheel"]
                    build-backend = "setuptools.build_meta"

                    [project]
                    name = "pkgA"
                    version = "3.14159"

                    [tool.setuptools]
                    packages.find.include = ["mypkg.*"]
                    Ú zb = 1r‘   )r)   zpkgA.py)r)   zother.pyÚnr,   )r+   r(   r,   r5   r;   r7   r8   r9   ú-vr:   r<   )r7   rS   z'from mypkg.n import pkgA; print(pkgA.a)Ú1z}        try:
            import mypkg.other
        except ImportError:
            print("mypkg.other not defined")
        rS   zmypkg.other not definedN)r   ÚEXAMPLErC   rD   rE   rH   rF   rI   )rr   rL   rK   r2   r�   rƒ   ÚoutrN   s           r%   Ú0test_namespace_accidental_config_in_lenient_modezETestPep420Namespaces.test_namespace_accidental_config_in_lenient_mode_  sæ   € ð Ü"(ðó#ð $&Ø 'à')Ø#*ññô  ' }Ñ5ñ/ð
ˆô6 	�‰×Ñ˜%¨ÐÔ1Ø˜6Ñ!ˆð 'Ð'ˆØ�‰�(˜D %¨¨y¸$ÄÀEÃ
ÐRÈTÐRÔSØ�h‰hÒRÓSˆØ�y‰y‹{˜cÒ!Ð!Ð!ðˆð �h‰h˜ $¬¨s«Ð4Ó5ˆØ(¨CÑ/Ð/Ñ/r'   N)r…   r†   r‡   r„   r“   r›   rŠ   r'   r%   rŒ   rŒ   -  s   „ òMò JóD00r'   rŒ   c           
     ó¼  — | dz  }t         j                  D �cg c]P  }d|v rJ|j                  t         j                  «      r+|t	        |«      j                  t         j                  «      z  ‘ŒR }}|D ]  }|j                  d¬«       Œ t        |«       t        t        j                  t        j                  j                  t        t        |«      «      ¬«      }t         j                  dddd	t        |«      d
t        |«      dg	|¢}t!        j"                  ||¬«       t%        j&                  «       dk(  rdnd}	||	z  dz  }
t!        j"                  |
g|¬«       yc c}w )z>
    Editable install to a prefix should be discoverable.
    r6   zsite-packagesT)Úparents)Ú
PYTHONPATHr8   r9   r:   z
--editablez--prefixr;   )ÚenvÚWindowsÚScriptsÚbinÚsampleN)ÚsysrD   Ú
startswithr6   r   Úrelative_torB   Ú_addsitedirsÚdictÚosÚenvironÚpathsepÚjoinÚmaprF   Ú
executableÚ
subprocessÚ
check_callÚplatformÚsystem)rK   Úsample_projectr&   r6   rD   Úsite_packages_allÚsprŸ   rN   r¢   Úexes              r%   Útest_editable_with_prefixr·   ’  s7  € ð ˜Ñ €Fô
 —H‘HöàØ˜dÑ" t§¡´s·z±zÔ'Bð 	”�d“×'Ñ'¬¯
©
Ó3Ó3ðÐð ð  ò ˆØ
�‰˜ˆÕðô Ð"Ô#ä
Œr�z‰z¤b§j¡j§o¡o´c¼#Ð?PÓ6QÓ&RÔ
S€Cä�‰ØØØØÜˆNÓØÜˆF‹Øðð 
ð€Cô ×Ñ˜# 3Õ'ô  —‘Ó(¨IÒ5‰)¸5€CØ
�3‰,˜Ñ
!€CÜ×Ñ˜3˜% SÖ)ùò=s   ˜AEc                  óR   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zy)ÚTestFinderTemplateúÍThis test focus in getting a particular implementation detail right.
    If at some point in time the implementation is changed for something different,
    this test can be modified or even excluded.
    c                ó6   — i }t        |||«        |d   «        y )Nr:   )Úexec)rr   ÚfinderÚlocs      r%   Úinstall_finderz!TestFinderTemplate.install_finderÀ  s   € ØˆÜˆV�S˜#ÔØˆˆI‰Õr'   c                óÂ  — ddddidœiddidœ}t         j                  j                  ||¬	«       t        |d
z  «      t        |dz  «      dœ}t	        t        t        «       «      |i «      }t        j                  «       5  t        j                  «       5  dD ]"  }t        j                  j                  |d «       Œ$ | j                  |«       t        d«      }t        d«      }t        d«      }|j                  dk(  sJ ‚|j                  dk(  sJ ‚t        |dz  j                  «       «      }	t!        ||	«       d d d «       d d d «       y # 1 sw Y   ŒxY w# 1 sw Y   y xY w)NÚpkg1r•   úmod1.pyza = 42)r)   Úsubpkgúmod2.pyza = 43©Úsrc1Úsrc2r5   z	src1/pkg1z	src2/mod2)rÁ   Úmod2)rÁ   úpkg1.subpkgúpkg1.subpkg.mod1rÈ   rÊ   rÈ   rÉ   é*   é+   zsrc1/pkg1/subpkg)rC   rD   rE   rF   r   r   r   Ú
save_pathsÚsave_sys_modulesr¤   ÚmodulesÚpopr¿   r   ÚaÚresolveÚassert_path)
rr   rK   r2   ÚmappingÚtemplateÚmodÚmod1rÈ   rÃ   Úexpecteds
             r%   Útest_packagesz TestFinderTemplate.test_packagesÅ  sS  € ð Ø#%Ø(¨(Ð3ñðð  Ð)ñ
ˆô 	�‰×Ñ˜%¨ÐÔ1ô ˜ ;Ñ.Ó/Ü˜ ;Ñ.Ó/ñ
ˆô $¤C¬«£L°'¸2Ó>ˆä× Ñ Ó"ñ 	*¤H×$=Ñ$=Ó$?ñ 	*ØJò +�Ü—‘—‘  TÕ*ð+ð ×Ñ Ô)Ü Ð!3Ó4ˆDÜ  Ó(ˆDÜ" =Ó1ˆFà—6‘6˜R’<Ð�<Ø—6‘6˜R’<Ð�<Ü˜HÐ'9Ñ9×BÑBÓDÓEˆHÜ˜ Ô)÷	*÷ 	*÷ 	*ñ 	*ú÷ 	*ð 	*ús%   Á?EÂB$E	Ä8EÅ	E	ÅEÅEc                ó´  — ddddœi}t         j                  j                  ||¬«       dt        |dz  «      i}dg i}t	        t        t        «       «      ||«      }t        j                  «       5  t        j                  «       5  dD ]"  }t        j                  j                  |d «       Œ$ | j                  |«       t        d«      }t        j                  |«      d	z  }t        |dz  j!                  «       «      }	t#        ||	«       |j$                  d
k(  sJ ‚|j'                  d¬«      dk(  sJ ‚	 d d d «       d d d «       y # 1 sw Y   ŒxY w# 1 sw Y   y xY w)NrR   úa = 13Úabc)r)   útext.txtr5   úns.othernamer}   ©r}   rÞ   rÝ   é   r>   r?   )rC   rD   rE   rF   r   r   r   rÍ   rÎ   r¤   rÏ   rÐ   r¿   r   Úimportlib_resourcesr2   rÒ   rÓ   rÑ   Ú	read_text)
rr   rK   r2   rÔ   r   rÕ   rÖ   rR   ÚtextrØ   s
             r%   Útest_namespacez!TestFinderTemplate.test_namespaceå  s7  € Ø¨¸eÑDÐEˆÜ�‰×Ñ˜%¨ÐÔ1à!¤3 x°%Ñ'7Ó#8Ð9ˆØ˜B�Zˆ
ä#¤C¬«£L°'¸:ÓFˆÜ× Ñ Ó"ñ 	=¤H×$=Ñ$=Ó$?ñ 	=Ø-ò +�Ü—‘—‘  TÕ*ð+ð ×Ñ Ô)Ü Ó/ˆCÜ&×,Ñ,¨SÓ1°JÑ>ˆDä˜H uÑ,×5Ñ5Ó7Ó8ˆHÜ˜˜XÔ&Ø—5‘5˜B’;Ð�;ð —>‘>¨7�>Ó3°uÒ<Ð<Ñ<÷	=÷ 	=÷ 	=ñ 	=ú÷ 	=ð 	=ús%   Á/EÂB,EÄ1EÅE	ÅEÅEc                óì  — ddddiiidddiidœ}t         j                  j                  ||¬«       t        |d	z  «      t        |d
z  «      dœ}dt        |dz  «      t        |dz  «      gi}t	        t        t        «       «      ||«      }t        j                  «       5  t        j                  «       5  dD ]"  }t        j                  j                  |d «       Œ$ | j                  |«       t        d«      }t        d«      }t        |d	z  j                  «       «      }	t        ||	«       |j                   dk(  sJ ‚|j"                  dk(  sJ ‚	 d d d «       d d d «       y # 1 sw Y   ŒxY w# 1 sw Y   y xY w)Nr}   rÁ   r)   rÛ   rÄ   úb = 37rÅ   r5   zsrc1/ns/pkg1zsrc2/ns)úns.pkgAr}   rÆ   rÇ   )r}   rç   úns.mod2rç   rè   rà   é%   )rC   rD   rE   rF   r   r   r   rÍ   rÎ   r¤   rÏ   rÐ   r¿   r   rÒ   rÓ   rÑ   Úb)
rr   rK   r2   rÔ   Únamespaces_rÕ   rÖ   r�   rÈ   rØ   s
             r%   Útest_combine_namespacesz*TestFinderTemplate.test_combine_namespacesü  se  € à˜F ]°HÐ$=Ð>Ð?Ø˜I xÐ0Ð1ñ
ˆô 	�‰×Ñ˜%¨ÐÔ1ô ˜8 nÑ4Ó5Ü�h Ñ*Ó+ñ
ˆð œc (¨VÑ"3Ó4´c¸(ÀVÑ:KÓ6LÐMÐNˆÜ#¤C¬«£L°'¸;ÓGˆä× Ñ Ó"ñ 	 ¤H×$=Ñ$=Ó$?ñ 	 Ø3ò +�Ü—‘—‘  TÕ*ð+ð ×Ñ Ô)Ü  Ó+ˆDÜ  Ó+ˆDä˜H ~Ñ5×>Ñ>Ó@ÓAˆHÜ˜˜hÔ'Ø—6‘6˜R’<Ð�<Ø—6‘6˜R’<Ð‘<÷	 ÷ 	 ÷ 	 ñ 	 ú÷ 	 ð 	 ús%   ÂE*Â3BEÅE*ÅE'	Å#E*Å*E3c                óL  — dddiidddiidœ}t         j                  j                  «       }|j                  |«      5  t         j                  j	                  |«       dd	d
dœddgdœ}t        |«      }t        |t        t        «       «      «      }t        d„ |j                  «       D «       «      }ddd«       t        j                  «       5  t        j                  «       5  d   D ]"  }t        j                  j!                  |d«       Œ$ | j#                  «       t%        d«      }	t%        d«      }
t        |dz  j'                  «       «      }t        t)        |	j*                  «      j'                  «       «      |k(  sJ ‚t        |dz  j'                  «       «      }t        t)        |
j*                  «      j'                  «       «      |k(  sJ ‚|	j,                  dk(  sJ ‚|
j.                  dk(  sJ ‚	 ddd«       ddd«       y# 1 sw Y   �ŒSxY w# 1 sw Y   ŒxY w# 1 sw Y   yxY w)z�
        Users may attempt to combine namespace packages in a nested way via
        ``package_dir`` as shown in pypa/setuptools#4248.
        Ú
my_packagezmy_module.pyrÛ   Úmy_package2zmy_module2.pyræ   )r-   rÇ   ú	%PEP 517%zsrc/my_packagezsrc2/my_package2)Údifferent_nameúdifferent_name.subpkgrñ   rò   )Úscript_nameÚpackage_dirÚpackagesc              3  óJ   K  — | ]  \  }}|j                  d «      sŒ|–— Œ y­w)z.pyN©Úendswith)Ú.0ÚkÚvs      r%   ú	<genexpr>zDTestFinderTemplate.test_combine_namespaces_nested.<locals>.<genexpr>/  s    è ø€ ÒW™d˜a ÀQÇZÁZÐPUÕEVœÑWùs   ‚#œ#Nrõ   zdifferent_name.my_modulez different_name.subpkg.my_module2zsrc/my_package/my_module.pyzsrc2/my_package2/my_module2.pyrà   ré   )rC   rD   ÚDirectoryStackri   rE   r   r   rF   r   ÚnextÚget_implementationr   rÍ   rÎ   r¤   rÏ   rÐ   r¿   r   rÒ   r   Ú__file__rÑ   rê   )rr   rK   r2   ÚstackÚattrsrx   r½   ÚcoderÖ   r×   rÈ   rØ   s               r%   Útest_combine_namespaces_nestedz1TestFinderTemplate.test_combine_namespaces_nested  s÷  € ð ! >°8Ð"<Ð=Ø" _°hÐ$?Ð@ñ
ˆô
 —‘×*Ñ*Ó,ˆØ�]‰]˜8Ó$ñ 	XÜ�K‰K×Ñ˜eÔ$à*à&6Ø-?ñ ð .Ð/FÐGñˆEô   Ó&ˆDÜ$ T¬3¬u«w«<Ó8ˆFÜÑW f×&?Ñ&?Ó&AÔWÓWˆD÷	Xô × Ñ Ó"ñ 	 ¤H×$=Ñ$=Ó$?ñ 	 Ø˜ZÑ(ò +�Ü—‘—‘  TÕ*ð+ð ×Ñ Ô%Ü Ð!;Ó<ˆDÜ Ð!CÓDˆDä˜HÐ'DÑD×MÑMÓOÓPˆHÜ”t˜DŸM™MÓ*×2Ñ2Ó4Ó5¸ÒAÐAÐAä˜HÐ'GÑG×PÑPÓRÓSˆHÜ”t˜DŸM™MÓ*×2Ñ2Ó4Ó5¸ÒAÐAÐAà—6‘6˜R’<Ð�<Ø—6‘6˜R’<Ð‘<÷	 ÷ 	 ð 	 ÷	Xñ 	Xú÷	 ð 	 ú÷ 	 ð 	 ús1   ½A3HÃHÃ!DHÇ0HÈHÈH	ÈHÈH#c                óD  — ddddiiiddddiiiddddiiid	œ}t         j                  j                  ||¬
«       i }dt        |dz  «      gi}t	        t        t        «       «      ||«      }d„ dD «       }t        j                  «       5  t        j                  «       5  dddg|¢­D ]"  }t        j                  j                  |d «       Œ$ | j                  |«       t        d«      }|j                  dk(  sJ ‚t        j                   t"        «      5  t        d«       d d d «       t        j                  j%                  t        |dz  «      «       t        d«      }	|	j                  dk(  sJ ‚t        j                   t"        «      5  t        d«       d d d «       t        j                  j%                  t        |dz  «      «       t        d«      }
|
j                  dk(  sJ ‚	 d d d «       d d d «       y # 1 sw Y   ŒÖxY w# 1 sw Y   ŒnxY w# 1 sw Y   Œ*xY w# 1 sw Y   y xY w)NÚparentÚchildzone.pyúx = 1ztwo.pyúx = 2zthree.pyzx = 3)Úproject1Úproject2Úproject3r5   zproject1/parentc              3  ó&   K  — | ]	  }d |› �–— Œ y­w)zparent.child.NrŠ   )rù   rm   s     r%   rü   zCTestFinderTemplate.test_dynamic_path_computation.<locals>.<genexpr>N  s   è ø€ ÒK¨4�- ˜vÔ&ÑKùs   ‚)ÚoneÚtwoÚthreezparent.childzparent.child.oner   zparent.child.twor  é   zparent.child.threer  é   )rC   rD   rE   rF   r   r   r   rÍ   rÎ   r¤   rÏ   rÐ   r¿   r   Úxrf   ÚraisesÚImportErrorr   )rr   rK   r2   rÔ   rë   rÕ   ÚmodsrÖ   r  r  r  s              r%   Útest_dynamic_path_computationz0TestFinderTemplate.test_dynamic_path_computationB  sö  € ð " G¨h¸Ð-@Ð#AÐBØ! G¨h¸Ð-@Ð#AÐBØ! G¨j¸'Ð-BÐ#CÐDñ
ˆô
 	�‰×Ñ˜%¨ÐÔ1ØˆØ¤# hÐ1BÑ&BÓ"CÐ!DÐEˆÜ#¤C¬«£L°'¸;ÓGˆáKÐ3JÔKˆÜ× Ñ Ó"ñ 	 ¤H×$=Ñ$=Ó$?ñ 	 Ø  .°.ÐHÀ4ÑHò +�Ü—‘—‘  TÕ*ð+ð ×Ñ Ô)äÐ 2Ó3ˆCØ—5‘5˜A’:Ð�:ä—‘œ{Ó+ñ 2ÜÐ0Ô1÷2ô �H‰H�O‰OœC ¨:Ñ 5Ó6Ô7ÜÐ 2Ó3ˆCØ—5‘5˜A’:Ð�:ä—‘œ{Ó+ñ 4ÜÐ2Ô3÷4ô �H‰H�O‰OœC ¨:Ñ 5Ó6Ô7Ü!Ð"6Ó7ˆEØ—7‘7˜a’<Ð‘<÷+	 ÷ 	 ð 	 ÷2ð 2ú÷4ð 4ú÷!	 ð 	 ú÷ 	 ð 	 úsW   ÂHÂA4H
ÄG2ÄA(H
ÆG>ÆAH
Ç!HÇ2G;Ç7H
Ç>HÈH
È
H	ÈHÈHc                ó*  — dddii}t         j                  j                  ||¬«       dt        |dz  «      i}t	        t        t        «       «      |i «      }t        j                  «       5  t        j                  «       5  t        j                  j                  dd «       | j                  |«       t        j                  t        d¬«      5  t!        d«       d d d «       d d d «       d d d «       y # 1 sw Y   ŒxY w# 1 sw Y   ŒxY w# 1 sw Y   y xY w)NrR   r)   zfrom . import pkgr5   r]   ©rC   rD   rE   rF   r   r   r   rÍ   rÎ   r¤   rÏ   rÐ   r¿   rf   r  r  r   ©rr   rK   r2   rÔ   rÕ   s        r%   Útest_no_recursionz$TestFinderTemplate.test_no_recursionf  sñ   € ð ØÐ2ðð
ˆô
 	�‰×Ñ˜%¨ÐÔ1ð ”3�x %Ñ'Ó(ð
ˆô $¤C¬«£L°'¸2Ó>ˆä× Ñ Ó"ñ 	%¤H×$=Ñ$=Ó$?ñ 	%Ü�K‰K�O‰O˜E 4Ô(à×Ñ Ô)Ü—‘œ{°%Ô8ñ %Ü˜eÔ$÷%÷		%÷ 	%ð 	%÷%ð %ú÷		%ð 	%ú÷ 	%ð 	%ús=   Á*D	Á?AC=ÃC1ÃC=Ã D	Ã1C:Ã6C=Ã=D	ÄD	Ä	Dc                óp  — ddddidœi}t         j                  j                  ||¬«       dt        |dz  «      i}t	        t        t        «       «      |i «      }t        j                  «       5  t        j                  «       5  t        j                  j                  dd «       t        j                  j                  dd «       | j                  |«       t        j                  t        d¬«      5  t!        d«       d d d «       d d d «       d d d «       y # 1 sw Y   ŒxY w# 1 sw Y   ŒxY w# 1 sw Y   y xY w)	NÚfoor•   r)   )r)   Úbarr5   zfoo.barr=   r]   r  r  s        r%   Útest_similar_namez$TestFinderTemplate.test_similar_name{  s  € àØ!à! 2ðñð
ˆô 	�‰×Ñ˜%¨ÐÔ1ð ”3�x %Ñ'Ó(ð
ˆô $¤C¬«£L°'¸2Ó>ˆä× Ñ Ó"ñ 	(¤H×$=Ñ$=Ó$?ñ 	(Ü�K‰K�O‰O˜E 4Ô(Ü�K‰K�O‰O˜I tÔ,à×Ñ Ô)Ü—‘œ{°(Ô;ñ (Ü˜hÔ'÷(÷	(÷ 	(ð 	(÷
(ð (ú÷	(ð 	(ú÷ 	(ð 	(ús=   Á-D,ÂA-D Ã/DÃ;D ÄD,ÄDÄD Ä D)	Ä%D,Ä,D5c                ó€  — ddddddœdœi}t         j                  j                  ||¬«       dt        |dz  «      i}t	        t        t        «       «      |i «      }t        j                  «       5  t        j                  «       5  t        j                  j                  dd «       | j                  |«       t        j                  t        d¬	«      5  t!        d
«       d d d «       t        j                  t        d¬	«      5  t!        d«       d d d «       t        j                  t        d¬	«      5  t!        d«       d d d «       t        j                  t        d¬	«      5  t!        d«       d d d «       t        j                  t        d¬	«      5  t!        d«       d d d «       t!        d«      }|j"                  dk(  sJ ‚t!        d«      }|j"                  dk(  sJ ‚	 d d d «       d d d «       y # 1 sw Y   �ŒxY w# 1 sw Y   ŒíxY w# 1 sw Y   ŒÊxY w# 1 sw Y   Œ§xY w# 1 sw Y   Œ„xY w# 1 sw Y   ŒOxY w# 1 sw Y   y xY w)Nr  r•   r  r	  )r)   úlowercase.py)r)   r!  r  r5   z'FOO'r]   ÚFOOz'foo\.LOWERCASE'zfoo.LOWERCASEz'foo\.bar\.Lowercase'zfoo.bar.Lowercasez
'foo\.BAR'zfoo.BAR.lowercasezFOO.bar.lowercasezfoo.lowercaser   zfoo.bar.lowercaser  )rC   rD   rE   rF   r   r   r   rÍ   rÎ   r¤   rÏ   rÐ   r¿   rf   r  r  r   r  )rr   rK   r2   rÔ   rÕ   rÖ   s         r%   Útest_case_sensitivityz(TestFinderTemplate.test_case_sensitivity“  sè  € àØ!Ø 'à#%Ø$+ññð	
ˆô 	�‰×Ñ˜%¨ÐÔ1à”3�x %Ñ'Ó(ð
ˆô $¤C¬«£L°'¸2Ó>ˆÜ× Ñ Ó"ñ 	¤H×$=Ñ$=Ó$?ñ 	Ü�K‰K�O‰O˜E 4Ô(à×Ñ Ô)Ü—‘œ{°'Ô:ñ %Ü˜eÔ$÷%ô —‘œ{Ð2EÔFñ /Ü˜oÔ.÷/ô —‘œ{Ð2KÔLñ 3ÜÐ1Ô2÷3ô —‘œ{°-Ô@ñ 3ÜÐ1Ô2÷3ô —‘œ{°'Ô:ñ 3ÜÐ1Ô2÷3ô   Ó0ˆCØ—5‘5˜A’:Ð�:äÐ 3Ó4ˆCØ—5‘5˜A’:Ð‘:÷/	÷ 	ð 	÷%ñ %ú÷/ð /ú÷3ð 3ú÷3ð 3ú÷3ð 3ú÷!	ð 	ú÷ 	ð 	úsž   Á/H4ÂAH(ÃG+Ã#H(Ä G8Ä#H(Ä/HÄ;#H(ÅHÅ*#H(ÆHÆA H(ÇH4Ç+G5Ç0H(Ç8HÇ=H(ÈHÈ	H(ÈHÈH(ÈH%È!H(È(H1	È-H4È4H=c                ó,  — dddddœdœi}t         j                  j                  ||¬«       dt        |dz  «      i}d	g i}t	        t        t        «       «      ||«      }t        j                  «       5  t        j                  «       5  d
D ]"  }t        j                  j                  |d «       Œ$ | j                  |«       t        d«      }t        |dz  j                  «       «      }t        ||«       |j                   dk(  sJ ‚t        d«      }	|	j"                  dk(  sJ ‚t        d«      }
|
j$                  dk(  sJ ‚t'        j(                  t*        d¬«      5  t        d«       d d d «       t'        j(                  t*        d¬«      5  t        d«       d d d «       t'        j(                  t*        d¬«      5  t        d«       d d d «       d d d «       d d d «       y # 1 sw Y   ŒxxY w# 1 sw Y   ŒUxY w# 1 sw Y   Œ2xY w# 1 sw Y   Œ6xY w# 1 sw Y   y xY w)NrR   rÛ   ræ   zc = 42)r)   zbar.py)r)   r  r5   rÞ   r}   rß   rà   zns.othername.fooré   zns.othername.foo.barrË   z'NS'r]   zNS.othername.fooz'ns\.othername\.FOO\'zns.othername.FOOz'ns\.othername\.foo\.BAR\'zns.othername.foo.BAR)rC   rD   rE   rF   r   r   r   rÍ   rÎ   r¤   rÏ   rÐ   r¿   r   rÒ   rÓ   rÑ   rê   Úcrf   r  r  )rr   rK   r2   rÔ   r   rÕ   rÖ   rR   rØ   r  r  s              r%   Útest_namespace_case_sensitivityz2TestFinderTemplate.test_namespace_case_sensitivity¼  sÜ  € àØ'à#+Ø&ññð
ˆô 	�‰×Ñ˜%¨ÐÔ1à!¤3 x°%Ñ'7Ó#8Ð9ˆØ˜B�Zˆ
ä#¤C¬«£L°'¸:ÓFˆÜ× Ñ Ó"ñ 	6¤H×$=Ñ$=Ó$?ñ 	6Ø-ò +�Ü—‘—‘  TÕ*ð+ð ×Ñ Ô)Ü Ó/ˆCÜ˜H uÑ,×5Ñ5Ó7Ó8ˆHÜ˜˜XÔ&Ø—5‘5˜B’;Ð�;äÐ 2Ó3ˆCØ—5‘5˜B’;Ð�;äÐ 6Ó7ˆCØ—5‘5˜B’;Ð�;ä—‘œ{°&Ô9ñ 2ÜÐ0Ô1÷2ô —‘œ{Ð2LÔMñ 2ÜÐ0Ô1÷2ô —‘œ{Ð2RÔSñ 6ÜÐ4Ô5÷6÷-	6÷ 	6ð 	6÷ 2ð 2ú÷2ð 2ú÷6ð 6ú÷-	6ð 	6ú÷ 	6ð 	6úsm   Á2H
ÂCG>ÅGÅ##G>ÆG&Æ#G>Æ5G2ÇG>Ç	H
ÇG#ÇG>Ç&G/Ç+G>Ç2G;Ç7G>Ç>H	ÈH
È
Hc                ó²  — dddddddidœii}t         j                  j                  ||¬	«       dt        |d
z  «      i}t	        t        t        «       «      |i «      }t        j                  «       5  t        j                  «       5  dD ]"  }t        j                  j                  |d«       Œ$ | j                  |«       t        d«      }|j                  dk(  sJ ‚t        d«      }|j                  dk(  sJ ‚t!        j"                  t$        «      5  t        d«       ddd«       ddd«       ddd«       y# 1 sw Y   ŒxY w# 1 sw Y   ŒxY w# 1 sw Y   yxY w)zˆ
        The finder should not import ``fullname`` if the intermediate segments
        don't exist (see pypa/setuptools#4019).
        r-   r(   r•   rÛ   zb = 13ú	config.pyza = 37)r)   r(  zhelloworld.pyÚ
componentsr5   z	src/mypkg)r(   zmypkg.configúmypkg.helloworldzmypkg.componentsúmypkg.components.configúmypkg.components.helloworldNr+  ré   r*  rà   r,  )rC   rD   rE   rF   r   r   r   rÍ   rÎ   r¤   rÏ   rÐ   r¿   r   rÑ   rê   rf   r  r  )rr   rK   r2   rÔ   rÕ   rÖ   rc   Ú
helloworlds           r%   Útest_intermediate_packagesz-TestFinderTemplate.test_intermediate_packageså  sL  € ð ØØ#%Ø!)Ø%-à# Xð#ñ	ð	ð
ˆô 	�‰×Ñ˜%¨ÐÔ1àœC ¨;Ñ 6Ó7Ð8ˆÜ#¤C¬«£L°'¸2Ó>ˆä× Ñ Ó"ñ 	=¤H×$=Ñ$=Ó$?ñ 	=ðò +�ô —‘—‘  TÕ*ð+ð ×Ñ Ô)ä"Ð#<Ó=ˆFØ—8‘8˜r’>Ð!�>ä&Ð'9Ó:ˆJØ—<‘< 2Ò%Ð%Ð%ä—‘œ{Ó+ñ =ÜÐ;Ô<÷=÷'	=÷ 	=ð 	=÷&=ð =ú÷'	=ð 	=ú÷ 	=ð 	=ús=   Á1EÂB
EÄD5ÄEÄ$EÄ5D>Ä:EÅE
	ÅEÅEN)r…   r†   r‡   Ú__doc__r¿   rÙ   rä   rì   r  r  r  r  r#  r&  r.  rŠ   r'   r%   r¹   r¹   º  sC   „ ñò
ò
*ò@=ò. ò6) òV" òH%ò*(ò0'òR'6óR*=r'   r¹   c           
     óæ  — ddiddœdddidœdd	dd
iiiddiddiddidœ}t         j                  j                  || ¬«       ddddœ}g d¢}t        ||| «      }|t	        | dz  «      t	        | dz  «      t	        | dz  «      t	        | dz  «      t	        | dz  «      t	        | dz  «      dœk(  sJ ‚t        t        t        ||«      «      «      }|ddhk(  sJ ‚t        t        |«      «      }|h d£k(  sJ ‚y)rº   r)   zab = 1r‘   )rê   r)   zd = 1zde = 1)r)   ÚeÚgÚhzfgh = 1zabc = 1z
abcxyz = 1z	mnopq = 1)rÑ   ÚdÚfÚotherÚanotherÚyet_anotherr5   r6  r7  r8  )úa.b.cúa.b.c.x.y.zú	m.n.o.p.q)rÑ   úa.br9  ú	a.b.c.x.yr:  r4  zd.er5  úf.gzf.g.hr;  rÑ   r4  r5  )rÑ   r9  r:  r4  r5  r;  r>  >   úm.núm.n.oúa.b.c.xúm.n.o.pÚmr<  r=  N)	rC   rD   rE   r   rF   Úsetr¨   r   r   )rK   r2   rô   rõ   Úrootsr}   s         r%   Útest_pkg_rootsrF    s;  € ð " 8Ð,¸WÑEØ$¨M¸8Ð+DÑEØ�C˜-¨Ð3Ð4Ð5Ø Ð+Ø! <Ð0Ø% {Ð3ñ€Eô ‡K�K×Ñ�e HÐÔ-àØ Ø"ñ€Kò
€Hô   ¨+°xÓ@€EØÜ�˜C‘Ó Ü�X Ñ'Ó(Ü˜8 iÑ/Ó0Ü�˜C‘Ó Ü�˜C‘Ó Ü˜ MÑ1Ó2ñò ð ð ô 
ŒTÔ" 8¨UÓ3Ó4Ó	5€BØ�#�u�ÒÐÐä	Ô% eÓ,Ó	-€BØÒPÒPÐPÑPr'   c            
      óÆ  — e Zd ZU dZ ee«      ed   dddddddœdœd	œZd
ed<   e ee«      ed   dded   idœ ee«       ed«      z   ed   dded   d   dœed   d   dœ ee«      ed   dded   d   ed   d   dœidœdœZe	j                  j                  ej                  dk(  d¬«      e	j                  j                  dej                  «       «      d„ «       «       Zy)ÚTestOverallBehaviourz·        [build-system]
        requires = ["setuptools"]
        build-backend = "setuptools.build_meta"

        [project]
        name = "mypkg"
        version = "3.14159"
        r,   r•   zvar = 42zvar = 13úresource 39)r)   rÄ   zresource_file.txt)r)   rÂ   Ú
subpackage)r+   r,   úotherfile.pyr(   zdict[str, Any]ÚFLAT_LAYOUTr(   )r+   r,   rK  r-   zÇ                [tool.setuptools]
                packages = ["mypkg", "mypkg.subpackage"]

                [tool.setuptools.package-dir]
                "mypkg.subpackage" = "other"
                rÂ   )r)   rÂ   rJ  )r+   r,   rK  r(   r6  )rÂ   rJ  )úflat-layoutú
src-layoutúcustom-layoutÚ	namespacer.   r/   r0   Úlayoutc                óÒ  — t        d||| j                  |   g|¢­Ž \  }}d}|j                  ddt        |«      g«      }d|v sJ ‚d}	|j                  ddt        |	«      g«      }d|v sJ ‚d}
|j                  ddt        |
«      g«      }d	|v sJ ‚t	        |j                  d
«      «      }t	        |j                  d«      «      }t	        |j                  d«      «      }|j                  dd¬«       |j                  dd¬«       |j                  dd¬«       |j                  ddt        |	«      g«      }d|vsJ ‚d|v sJ ‚|j                  ddt        |
«      g«      }d	|vsJ ‚d|v sJ ‚y )Nr(   zj        try:
            import otherfile
        except ImportError as ex:
            print(ex)
        r7   rS   zNo module named 'otherfile'zy        import mypkg, mypkg.mod1, mypkg.subpackage.mod2
        print(mypkg.mod1.var, mypkg.subpackage.mod2.var)
        z42 13zô        import mypkg.subpackage
        from setuptools._importlib import resources as importlib_resources
        text = importlib_resources.files(mypkg.subpackage) / "resource_file.txt"
        print(text.read_text(encoding="utf-8"))
        rI  ú
**/mod1.pyú
**/mod2.pyú**/resource_file.txtzvar = 17r>   r?   z	var = 781zresource 374z17 781)Úinstall_projectÚEXAMPLESrH   r   rþ   rp   rJ   )rr   rK   rL   rQ  r&   rM   Ú_Úcmd_import_errorrš   Úcmd_get_varsÚcmd_get_resourcer×   rÈ   Úresource_files                 r%   Útest_editable_installz*TestOverallBehaviour.test_editable_install†  s›  € ô %Ø�T˜8 T§]¡]°6Ñ%:ð
Ø=Jò
‰
ˆ�ð
Ðð �h‰h˜ $¬Ð/?Ó(@ÐAÓBˆØ,°Ñ3Ð3Ð3ðˆð �h‰h˜ $¬¨|Ó(<Ð=Ó>ˆØ˜#‰~Ðˆ~ðÐð �h‰h˜ $¬Ð/?Ó(@ÐAÓBˆØ Ñ#Ð#Ð#ô �G—L‘L Ó.Ó/ˆÜ�G—L‘L Ó.Ó/ˆÜ˜WŸ\™\Ð*@ÓAÓBˆà�‰˜
¨WˆÔ5Ø�‰˜¨gˆÔ6Ø× Ñ  ¸'Ð ÔBà�h‰h˜ $¬¨|Ó(<Ð=Ó>ˆØ˜cÑ!Ð!Ð!Ø˜3‰Ðˆà�h‰h˜ $¬Ð/?Ó(@ÐAÓBˆØ CÑ'Ð'Ð'Ø Ñ$Ð$Ñ$r'   N)r…   r†   r‡   Ú	PYPROJECTr   r™   rL  Ú__annotations__rW  rf   rˆ   Úxfailr¤   r±   r‰   Úkeysr]  rŠ   r'   r%   rH  rH  C  s\  … ð€Iñ ! Ó+Ø˜}Ñ-ØàØ!à!Ø%Ø%2ññ
ñ	#€K�ó ð  #á$ YÓ/Ø" =Ñ1ØØ˜[¨Ñ1Ð2ñ	
ñ % YÓ/Ùðóñ	ð # =Ñ1Øà!Ø& wÑ/°	Ñ:ñð ! Ñ)¨,Ñ7ñ#
ñ( % YÓ/Ø" =Ñ1ØàØ*¨7Ñ3°IÑ>Ø"-¨gÑ"6°|Ñ"Dñðñ	

ñ7&€HðP ‡[�[×Ñ�s—|‘| xÑ/Ð8NÐÓOØ‡[�[×Ñ˜X x§}¡}£Ó7ñ0%ó 8ó Pñ0%r'   rH  c                  ó~   — e Zd Z eej
                  d   «      Zedxx    ed«      z  cc<   ded   d   d<   d„ Zd	„ Z	y
)ÚTestLinkTreerN  r+   a[          [tool.setuptools]
        # Temporary workaround: both `include-package-data` and `package-data` configs
        # can be removed after #3260 is fixed.
        include-package-data = false
        package-data = {"*" = ["*.txt"]}

        [tool.setuptools.packages.find]
        where = ["src"]
        exclude = ["*.subpackage*"]
        rÜ   r-   r(   úresource.not_in_manifestc                ó`  — t         j                  j                  | j                  |¬«       t	        |«      5  d}t        ddi«      }|j                  «        t        «       }|dz  }|dz  }|j                  «        |j                  «        |j                  d«      }d|_
        t        |«      |_        |j                  «        |j                  «       }|j                  «       }	t!        ||||«      }
 |
|||	«       t#        |j%                  d	«      «      }|d
z  }t'        ||«       t#        |j%                  d«      d «      �J ‚t#        |j%                  d«      d «      �J ‚t#        |j%                  d«      d «      �J ‚t#        |j%                  d«      d «      �J ‚	 d d d «       y # 1 sw Y   y xY w)Nr5   zmypkg-3.14159ró   rð   z.auxz.buildÚbuild_pyTrS  zsrc/mypkg/mod1.pyz**/subpackagerT  rU  z**/resource.not_in_manifest)rC   rD   rE   ÚFILESÚ_Pathr   Úparse_config_filesr
   rB   Úget_command_objÚeditable_moderF   Ú	build_libÚensure_finalizedÚget_outputsÚget_output_mappingr   rþ   rp   Úassert_link_to)rr   rK   rm   rx   ÚwheelÚauxrE   rf  ÚoutputsÚoutput_mappingÚ	make_treer×   rØ   s                r%   Útest_generated_treez TestLinkTree.test_generated_treeÌ  sŒ  € Ü�‰×Ñ˜$Ÿ*™*¨XÐÔ6ä�8‹_ñ 	OØ"ˆDÜ °Ð <Ó=ˆDØ×#Ñ#Ô%ä“FˆEØ˜VÑ#ˆCØ˜xÑ'ˆEØ�I‰IŒKØ�K‰KŒMà×+Ñ+¨JÓ7ˆHØ%)ˆHÔ"Ü!$ U£ˆHÔØ×%Ñ%Ô'Ø×*Ñ*Ó,ˆGØ%×8Ñ8Ó:ˆNä! $¨¨c°5Ó9ˆIÙ�e˜W nÔ5ä˜Ÿ™ Ó.Ó/ˆDØÐ"5Ñ5ˆHÜ˜4 Ô*ä˜Ÿ™ Ó1°4Ó8Ð@Ð@Ð@Ü˜Ÿ™ Ó.°Ó5Ð=Ð=Ð=Ü˜Ÿ™Ð!7Ó8¸$Ó?ÐGÐGÐGä˜Ÿ™Ð!>Ó?ÀÓFÐNÐNÑN÷;	O÷ 	Oñ 	Oús   ·E#F$Æ$F-c                ó  — ddg}t        d||| j                  g|¢­Ž  |j                  g d¢«      }d|v sJ ‚d}|j                  ddt        |«      g«      }d	|v sJ ‚d
}|j                  ddt        |«      g«      }d|v sJ ‚d|v sJ ‚y )Nr!   r"   r(   ©r7   rS   z(import mypkg.mod1; print(mypkg.mod1.var)ra   zv        try:
            from mypkg import subpackage
        except ImportError as ex:
            print(ex)
        r7   rS   úcannot import name 'subpackage'a8          import mypkg
        from setuptools._importlib import resources as importlib_resources
        try:
            text = importlib_resources.files(mypkg) / "resource.not_in_manifest"
            print(text.read_text(encoding="utf-8"))
        except FileNotFoundError as ex:
            print(ex)
        zNo such file or directoryrd  )rV  rg  rH   r   )rr   rK   rL   rƒ   rš   rY  r[  s          r%   Útest_strict_installz TestLinkTree.test_strict_installî  s³   € Ø#Ð%;Ð<ˆÜ˜  x°·±ÐC¸dÓCà�h‰hÒSÓTˆØ�s‰{Ðˆ{ðÐð �h‰h˜ $¬Ð/?Ó(@ÐAÓBˆØ0°CÑ7Ð7Ð7ðÐð �h‰h˜ $¬Ð/?Ó(@ÐAÓBˆØ*¨cÑ1Ð1Ð1Ø)¨SÑ0Ð0Ñ0r'   N)
r…   r†   r‡   r   rH  rW  rg  r   rv  rz  rŠ   r'   r%   rc  rc  »  sW   „ ÙÐ)×2Ñ2°<Ñ@ÓA€EØ	Ð
Ó™vð
	ó ñ Óð 9>€Eˆ%�L�ÑÐ4Ñ5ò OóD1r'   rc  z9ignore:.*compat.*:setuptools.SetuptoolsDeprecationWarningc                óH  — ddg}t         j                  d   }t        d|| |g|¢­Ž  |j                  g d¢«      }d|v sJ ‚t	        t        | «      «      }dD ]%  }t	        |j                  dd	|g«      «      }||v rŒ%J ‚ d
}|j                  dd	t        |«      g«      }d|v sJ ‚y )Nr!   zeditable-mode=compatrO  r(   rx  ra   )z"import otherfile; print(otherfile)zimport other; print(other)zimport mypkg; print(mypkg)r7   rS   zc    try:
        from mypkg import subpackage;
    except ImportError as ex:
        print(ex)
    ry  )rH  rW  rV  rH   Úcomparable_pathrF   r   )rK   rL   rƒ   r2   rš   Úexpected_pathrN   s          r%   Útest_compat_installr~    sÆ   € ð  Ð!7Ð8€DÜ ×)Ñ)¨/Ñ:€EÜ�G˜T 8¨UÐ:°TÓ:à
�(‰(ÒOÓ
P€CØ�3‰;Ðˆ;ä#¤C¨£MÓ2€Mðò $ˆô
 ˜dŸh™h¨°$¸Ð'<Ó=Ó>ˆØ Ò#Ð#Ð#ð$ð€Cð �(‰(�H˜d¤F¨3£KÐ0Ó
1€CØ,°Ñ3Ð3Ñ3r'   c                ó   — t        d«      t        d«      t        d«      dddœddid	œ}|j                  g d
¢«       t        j                  d¬«      5  t	        d|| |g|¢­Ž  ddd«       |j                  g d¢«      }d|v sJ ‚y# 1 sw Y   Œ#xY w)z3Ensure editable installs work with pbr, issue #3500z�            [build-system]
            requires = ["setuptools"]
            build-backend = "setuptools.build_meta"
            zˆ            __import__('setuptools').setup(
                pbr=True,
                setup_requires=["pbr"],
            )
            z~            [metadata]
            name = mypkg

            [files]
            packages =
                mypkg
            r•   zprint('Hello world!'))r)   zhello.pyztest.txtzAnother file in here.)r+   r3   z	setup.cfgr(   r6  )r7   r8   r9   r:   Úpbrz0.42)ÚPBR_VERSIONr(   N)r7   rS   zimport mypkg.hellozHello world!)r   rH   r   ÚenvironmentrV  )rK   rL   r&   r2   rš   s        r%   Útest_pbr_integrationrƒ  /  s·   € ô !ðó
ô ðó
ô ðó	
ð Ø/ñ
ð Ð5Ð6ñ=€Eð@ 	‡H�HÒ6Ô7ä	×	Ñ	¨&Ô	1ñ HÜ˜  x°ÐG¸ÓG÷Hð �(‰(Ò9Ó
:€CØ˜SÑ Ð Ñ ÷	Hð Hús   ÁBÂBc                  óL   — e Zd ZdZi ej
                  d   ¥d ed«      i¥Zd„ Zy)ÚTestCustomBuildPya$  
    Issue #3501 indicates that some plugins/customizations might rely on:

    1. ``build_py`` not running
    2. ``build_py`` always copying files to ``build_lib``

    During the transition period setuptools should prevent potential errors from
    happening due to those assumptions.
    rM  r3   af              import pathlib
            from setuptools import setup
            from setuptools.command.build_py import build_py as orig

            class my_build_py(orig):
                def run(self):
                    super().run()
                    raise ValueError("TEST_RAISE")

            setup(cmdclass={"build_py": my_build_py})
            c                ó„   — t        d||| j                  «      \  }}d|v sJ ‚d|v sJ ‚|j                  g d¢«      }d|v sJ ‚y)z>Ensure that errors in custom build_py are reported as warningsr(   r   zValueError: TEST_RAISErx  ra   N)rV  rg  rH   )rr   rK   rL   rX  rš   s        r%   Útest_safeguarded_from_errorsz.TestCustomBuildPy.test_safeguarded_from_errorsy  sS   € ô ! ¨$°¸$¿*¹*ÓE‰ˆˆ3Ø-°Ñ4Ð4Ð4Ø'¨3Ñ.Ð.Ð.à�h‰hÒSÓTˆØ�s‰{Ð‰{r'   N)	r…   r†   r‡   r/  rH  rW  r   rg  r‡  rŠ   r'   r%   r…  r…  Z  s:   „ ñðØ
×
'Ñ
'¨Ñ
6ðà‘Fðó
ñ€Eó$r'   r…  c                  ó   — e Zd Zd„ Zd„ Zy)ÚTestCustomBuildWheelc                óZ   — |j                  d«      } G d„ d|«      }||j                  d<   y )NÚbdist_wheelc                  ó   ‡ — e Zd Zˆ fd„Zˆ xZS )úETestCustomBuildWheel.install_custom_build_wheel.<locals>.MyBdistWheelc                óZ   •— | j                   j                  d«      rd}t        ‰| �  «       S )Nzmacosx-zmacOS platform)Ú	plat_namer¥   ÚsuperÚget_tag)rr   rX  Ú	__class__s     €r%   r‘  zMTestCustomBuildWheel.install_custom_build_wheel.<locals>.MyBdistWheel.get_tag‰  s)   ø€ ð —>‘>×,Ñ,¨YÔ7Ø(�AÜ‘w‘Ó(Ð(r'   )r…   r†   r‡   r‘  Ú__classcell__)r’  s   @r%   ÚMyBdistWheelr�  ˆ  s   ø„ ÷)ð )r'   r”  )Úget_command_classÚcmdclass)rr   rx   Úbdist_wheel_clsr”  s       r%   Úinstall_custom_build_wheelz/TestCustomBuildWheel.install_custom_build_wheel…  s.   € Ø×0Ñ0°Ó?ˆô	)˜?ô 	)ð (4ˆ�‰�mÒ$r'   c                ób  — t         j                  j                  ddi«       t        «       }d|_        |j                  «        | j                  |«       t        |«      }|j                  «        |j                  «        t        t        t        «       j                  d«      «      «      }d|v sJ ‚y )Nú	module.pyrA   r3   ú
dist/*.whlÚeditable)rC   rD   rE   r   ró   Úset_defaultsr˜  r   rm  rH   rF   rþ   r   rp   )rr   Ú
tmpdir_cwdrx   rN   Ú
wheel_files        r%   Útest_access_plat_namez*TestCustomBuildWheel.test_access_plat_name’  s‹   € ô 	�‰×Ñ˜;¨Ð1Ô2Ü‹~ˆØ%ˆÔØ×ÑÔØ×'Ñ'¨Ô-Ü˜TÓ"ˆØ×ÑÔØ�‰Œ	Üœœd›fŸk™k¨,Ó7Ó8Ó9ˆ
Ø˜ZÑ'Ð'Ñ'r'   N)r…   r†   r‡   r˜  r   rŠ   r'   r%   r‰  r‰  „  s   „ ò4ó(r'   r‰  c                  ór   — e Zd Zd„ Zej
                  j                  ej                  dk7  d¬«      d„ «       Z	y)ÚTestCustomBuildExtc                óD   — ddl m}  G d„ d|«      }||j                  d<   y )Nr   )Ú	build_extc                  ó   — e Zd Zy)úITestCustomBuildExt.install_custom_build_ext_distutils.<locals>.MyBuildExtN)r…   r†   r‡   rŠ   r'   r%   Ú
MyBuildExtr¦  ¥  s   „ Ør'   r§  r¤  )Údistutils.command.build_extr¤  r–  )rr   rx   Úbuild_ext_clsr§  s       r%   Ú"install_custom_build_ext_distutilsz5TestCustomBuildExt.install_custom_build_ext_distutils¢  s!   € ÝJô	˜ô 	ð &0ˆ�‰�kÒ"r'   Úlinuxz(compilers may fail without correct setupr0   c                ón  ‡— t         j                  j                  ddi«       dt        ddg«      gi}t	        |«      }d|_        |j                  «        | j                  |«       t        |«      }|j                  «        |j                  «        t        t        t        «       j                  d«      «      «      }d|v sJ ‚t        «       j                  d«      D �cg c]  }|j                  d	k7  sŒ|‘Œ }}t!        |«      d
k(  sJ ‚|d   j"                  Št%        ˆfd„t&        D «       «      sJ ‚y c c}w )Nzmodule.cr•   Úext_modulesÚmoduler3   r›  rœ  zmodule.*z.cr   r   c              3  ó@   •K  — | ]  }‰j                  |«      –— Œ y ­w©Nr÷   )rù   Úextrm   s     €r%   rü   zHTestCustomBuildExt.test_distutils_leave_inplace_files.<locals>.<genexpr>¾  s   øè ø€ ÒD¨#�4—=‘= ×%ÑDùs   ƒ)rC   rD   rE   r   r   ró   r�  rª  r   rm  rH   rF   rþ   r   rp   Úsuffixrq   rm   Úanyr   )	rr   rž  r  rx   rN   rŸ  Úpr2   rm   s	           @r%   Ú"test_distutils_leave_inplace_filesz5TestCustomBuildExt.test_distutils_leave_inplace_filesª  s
  ø€ ô 	�‰×Ñ˜: rÐ*Ô+àœI h°°Ó=Ð>ð
ˆô ˜EÓ"ˆØ%ˆÔØ×ÑÔØ×/Ñ/°Ô5Ü˜TÓ"ˆØ×ÑÔØ�‰Œ	Üœœd›fŸk™k¨,Ó7Ó8Ó9ˆ
Ø˜ZÑ'Ð'Ð'Ü ›FŸK™K¨
Ó3ÖH�q°q·x±xÀ4Ó7G’ÐHˆÐHÜ�5‹z˜QŠÐˆØ�Q‰x�}‰}ˆÜÓDÔ1CÔDÔDÐDÑDùò Is   ÃD2Ã2D2N)
r…   r†   r‡   rª  rf   rˆ   Úskipifr¤   r±   rµ  rŠ   r'   r%   r¢  r¢  ¡  s@   „ ò0ð ‡[�[×ÑØ�‰˜ÑÐ(Rð ó ñEóñEr'   r¢  c                ó  — t         j                  j                  ddi«       t        «       }d|_        |j                  «        t        |«      }|j                  «        t        dt        fi «      }t         |«       ¬«      }|j                  |d|«       d}t        j                  |«      5  t        j                  t        |¬«      5  |j!                  «        d	d	d	«       d	d	d	«       y	# 1 sw Y   ŒxY w# 1 sw Y   y	xY w)
z7Make sure to display useful debugging tips to the user.rš  rA   r3   ÚSimulatedErr)Úside_effectrl   z-following steps are recommended to help debugr]   N)rC   rD   rE   r   ró   r�  r   rm  ÚtypeÚ	Exceptionr
   Úsetattrrf   r  rg   r   rH   )rž  rs   rx   rN   r¸  Úsimulated_failureÚexpected_msgs          r%   Útest_debugging_tipsr¿  Á  sÌ   € ä
‡K�K×Ñ�{ HÐ-Ô.Ü‹>€DØ!€DÔØ×ÑÔÜ
˜Ó
€CØ×ÑÔä˜¬¨°bÓ9€LÜ©«Ô8ÐØ×Ñ˜Ð4Ð6GÔHàB€LÜ	�‰�|Ó	$ñ ¤f§l¡l´>ÈÔ&Vñ Ø�‰Œ	÷÷ ÷ ñ ú÷ ð ús$   Â+C5ÃC)ÃC5Ã)C2	Ã.C5Ã5C>Úerrorc                 ó>   — t        d«      } t        | t        «      sJ ‚y)z>Ensure _encode_pth function does not produce encoding warningsu   tkmilan_Ã§_utf8N)r   Ú
isinstanceÚbytes)Úcontents    r%   Útest_encode_pthrÅ  Ó  s   € ô Ð+Ó,€GÜ�gœuÔ%Ð%Ñ%r'   c                óè   — || z  }|j                  «        t        j                  j                  ||¬«       g |¢d‘}|j	                  ddddddt        |«      g|¢t        j                  ¬	«      }||fS )
Nr5   r;   r7   r8   r9   r—   r:   r<   )Ústderr)rB   rC   rD   rE   rH   rF   r¯   ÚSTDOUT)rm   rL   rK   r2   rƒ   rM   rš   s          r%   rV  rV  Ú  s~   € Ø˜‰o€GØ‡M�M„OÜ
‡K�K×Ñ�e GÐÔ,Ø*ˆTÐ*Ð)Ð*€DØ
�(‰(Ø	�4˜  i°´s¸7³|ÐKÀdÐKÜ× Ñ ð ó €Cð �Cˆ<Ðr'   c                ó~   — dj                  dt        d„ | D «       «      z   «      }| d   dz  j                  |d¬«       y)	a5  To use this function, it is necessary to insert new_dir in front of sys.path.
    The Python process will try to import a ``sitecustomize`` module on startup.
    If we manipulate sys.path/PYTHONPATH, we can force it to run our code,
    which invokes ``addsitedir`` and ensure ``.pth`` files are loaded.
    ú
)zimport sitec              3  óN   K  — | ]  }d t        j                  |«      ›d�–— Œ y­w)zsite.addsitedir(ú)N)r©   Úfspath)rù   Únew_dirs     r%   rü   z_addsitedirs.<locals>.<genexpr>î  s$   è ø€ ÒS¸wÐ"¤2§9¡9¨WÓ#5Ð"8¸Ô:ÑSùs   ‚#%r   zsitecustomize.pyr>   r?   N)r¬   ÚtuplerJ   )Únew_dirsrÄ  s     r%   r§   r§   æ  sH   € ð �i‰iØÜ
ÑSÈ(ÔSÓ
Sñ	Tó€Gð ˆa�[Ð%Ñ%×1Ñ1°'ÀGÐ1ÕLr'   c                ó°   — | j                   rJt        t        | j                   «      d «      }|r(t        t	        |«      j                  «       «      |k(  sJ ‚y y y r°  )Ú__path__rþ   ÚiterrF   r   rÒ   )rR   rØ   rD   s      r%   rÓ   rÓ   ö  sK   € à
‡|‚|Ü”D˜Ÿ™Ó&¨Ó-ˆÙÜ”t˜D“z×)Ñ)Ó+Ó,°Ò8Ð8Ñ8ð ð r'   c                ót  — | j                  «       r6t        | j                  «       «      t        |j                  «       «      k(  sJ ‚y | j                  «       }|j                  «       }|t        j                     |t        j                     k(  sJ ‚|t        j
                     |t        j
                     k(  sJ ‚y r°  )Ú
is_symlinkrF   rÒ   ÚstatÚST_INOÚST_DEV)Úfiler6  Ú	file_statÚ
other_stats       r%   rp  rp  þ  s†   € Ø‡�ÔÜ�4—<‘<“>Ó"¤c¨%¯-©-«/Ó&:Ò:Ð:Ñ:à—I‘I“Kˆ	Ø—Z‘Z“\ˆ
ØœŸ™Ñ%¨´D·K±KÑ)@Ò@Ð@Ð@ØœŸ™Ñ%¨´D·K±KÑ)@Ò@Ð@Ñ@r'   c                ó~   — | j                  «       j                  t        j                  d«      j                  dd«      S )Nú/z//)ÚlowerÚreplacer©   Úsep)Ústr_with_paths    r%   r|  r|    s/   € Ø×ÑÓ ×(Ñ(¬¯©°Ó5×=Ñ=¸dÀCÓHÐHr'   )rÙ  r   r6  r   ÚreturnÚNone)rá  rF   râ  rF   )TÚ
__future__r   r©   r±   rÖ  r¯   r¤   Úcopyr   Ú	importlibr   Úimportlib.machineryr   Úpathlibr   Útextwrapr   Útypingr	   Úunittest.mockr
   Úuuidr   Újaraco.envsrC   Újaraco.pathrf   rD   rh  Úsetuptools._importlibr   rá   Ú!setuptools.command.editable_wheelr   r   r   r   r   r   r   r   r   Úsetuptools.distr   Úsetuptools.extensionr   Úsetuptools.warningsr   r•   r   r   Údistutils.corer   Úfixturer&   rI   r™   ÚSETUP_SCRIPT_STUBrˆ   r`  r‰   rO   rV   rY   r[   rŒ   r·   r¹   rF  rH  rc  Úfilterwarningsr~  rƒ  r…  r‰  r¢  r¿  rÅ  rV  r§   rÓ   rp  r|  rŠ   r'   r%   ú<module>rø     sA  ðÝ "ã 	Û Û Û Û 
Ý Ý #Ý 2Ý Ý Ý Ý Ý ã Û Û Ý å B÷
÷ 
õ 
õ )Ý *Ý <ç "å $ð €‡�˜ )Ð,Ô-ñó .ðñ ð	óñ< ð	ó÷ �eƒgØ(Ø6àÙ!ðó
ñ "ðó	ð Ø%ñ/
ðñSD€ðN 7Ð ð ‡�×Ñ�3—<‘< 8Ñ+Ð4JÐÓKØ‡�×ÑØà2ˆ7Ð2�JÐ 1Ñ2Øðóñ>óó Lð>ò2%*òP#(÷L?;ñ ?;÷Db0ñ b0òJ%*÷PU=ñ U=òp
.Q÷bu%ñ u%÷pP1ñ P1ðf ‡�×ÑÐWÓXñ4ó Yð4ò@(!÷V'ñ '÷T(ñ (÷:Eñ Eò@ð$ ‡�×Ñ˜GÓ$ñ&ó %ð&ò	ò
Mò 9óAôIr'   