ó
    ¶'Ôi¦  ã            
      ó  • S SK Jr  S SKrS SKrS SKrS SKrS SKrS SKJr  S SK	J
r
  S SKJr  S SKJr  S SKJr  S SKJr  S S	KJr  S S
KJr  S SKrS SKrS SKrS SKJr  S SKJr  S SK J!r!J"r"J#r#J$r$J%r%J&r&J'r'J(r(  S SK)J*r*  S SK+J,r,  S SK-J.r.  SSK/J0r0J1r1  S SK2J3r3  \Rh                  " SS/S9S 5       r5\" S5      \" S5      Rm                  5       SSS\" S5      \" S5      SSS .0S!.r7S"r8\Rr                  Ru                  \R                  S#:H  S$S%9\Rr                  Rw                  S&0 \7ES'\80E\7/5      S( 5       5       r<S) r=S* r> " S+ S,5      r? " S- S.5      r@S/ rA " S0 S15      rBS2 rC " S3 S45      rD " S5 S65      rE\Rr                  R�                  S75      S8 5       rG\Rr                  R�                  S9 5       rI " S: S;5      rJ " S< S=5      rK " S> S?5      rLS@ rM\Rr                  R�                  SA5      SB 5       rNSC rOSD rPSE rQSHSF jrRSISG jrSg)Jé    )ÚannotationsN)Údeepcopy)Úimport_module)ÚEXTENSION_SUFFIXES)ÚPath)Údedent)ÚAny)ÚMock)Úuuid4)Ú	resources)Ú_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                ó.   • U R                   S:X  a  SS/$ / $ )Nr   ú--config-settingsúeditable-mode=strict)Úparam)Úrequests    Úe/var/www/surfInsights/venv3-11/lib/python3.13/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           	     ó¬  • U S-  nUR                  5         [        R                  R                  X$S9  SSSSSS[	        U5      /UQn[        UR                  U5      5        / S	QnUR                  U5      R                  5       S
:X  d   eUS-  R                  SSS9  US-  R                  SSS9  UR                  U5      R                  5       S:X  d   eg )Nr'   ©ÚprefixÚpythonú-mÚpipÚinstallú--no-build-isolationú-e)r6   r7   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Úvenvr1   r%   ÚprojectÚcmds         r$   Útest_editable_with_pyprojectrN   {   sá   € ð ˜Ñ €GØ‡M�M„OÜ
‡K�K×Ñ�eÐÑ,ð 	ØØØØØÜˆG‹ð	ð 
ð	€Cô 
ˆ$�(‰(�3‹-Ôâ
#€CØ�8‰8�C‹=×ÑÓ Ð$?Ó?Ð?Ð?àÐ#Ñ#×/Ñ/°À7Ð/ÑKØÐ!Ñ!×-Ñ-¨hÀÐ-ÑIØ�8‰8�C‹=×ÑÓ Ð$=Ó=Ð=Ñ=r&   c           	     ó  • S[        S5      SS0SS.0n[        R                  R                  X0S9  U S-  nSS	S
SSS[	        U5      /UQn[        UR                  U5      5        / SQnUR                  U5      R                  5       S:X  d   eg )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)   r4   r6   r7   r8   r9   r:   r;   )r6   ú-cz$import pkg, mod; print(pkg.a, mod.b)z4 2©r   rB   rC   rD   rE   rF   rG   rH   ©rJ   rK   r%   r1   rL   rM   s         r$   Útest_editable_with_flat_layoutrU   œ   s®   € àÜ$ðóð " 7Ð+Øñ#
ð€Eô* ‡K�K×Ñ�eÐÑ-Ø˜Ñ €Gð 	ØØØØØÜˆG‹ð	ð 
ð	€Cô 
ˆ$�(‰(�3‹-ÔÚ
B€CØ�8‰8�C‹=×ÑÓ  EÓ)Ð)Ñ)r&   c           	     ó  • S[        S5      SS.0n[        R                  R                  X0S9  U S-  nSSSS	S
S[	        U5      /UQn[        UR                  U5      5        / SQnUR                  U5      R                  5       S:X  d   eg )Nr'   a>                  [build-system]
                requires = ["setuptools", "wheel"]
                build-backend = "setuptools.build_meta"

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

                [tool.setuptools]
                py-modules = ["mod"]
                rP   )r*   r)   r4   r6   r7   r8   r9   r:   r;   )r6   rR   zimport mod; print(mod.b)Ú2rS   rT   s         r$   Ú test_editable_with_single_modulerX   Ä   s¦   € àÜ$ðóð ñ
ð€Eô& ‡K�K×Ñ�eÐÑ-Ø˜Ñ €Gð 	ØØØØØÜˆG‹ð	ð 
ð	€Cô 
ˆ$�(‰(�3‹-ÔÚ
6€CØ�8‰8�C‹=×ÑÓ  CÓ'Ð'Ñ'r&   c                  óœ   • \ rS rSrS r\R                  R                  SS5      \R                  R                  SS5      S 5       5       rSr	g	)
ÚTestLegacyNamespaceséê   c                óZ  • [         R                  " [        SS9nUS-  nUR                  5         SnU Hž  n[        R
                  " XSS9nU   UR                  5        nUR                  U5        [        SSS	9n	[        U	5      n
U
R                  5         U
R                  S
5      R                  nU
R                  XK5        S S S 5        S S S 5        M      [        UR                  S5      5      n[!        U5      [!        U5      :X  d   eg ! , (       d  f       NO= f! , (       d  f       M÷  = f)Nz .*namespace_packages parameter.*©Úmatchz.installation_dir)z	myns.pkgAz	myns.pkgBúmyns.n.pkgAúmyns.n.pkgBÚ42)Úversionr2   Úconfig)Ú
stop_afterÚ	dist_infoz*-nspkg.pth)ÚpytestÚwarnsr   rA   r   Úbuild_namespace_packageÚcontextÚchdirr   r   Úfinalize_optionsÚget_finalized_commandÚnameÚ_install_namespacesÚlistÚglobÚlen)ÚselfrJ   ÚmonkeypatchÚdeprecationÚinstallation_dirÚexamplesrm   rQ   ÚctxÚdistrM   Úeditable_namer1   s                r$   Útest_nspkg_file_is_uniqueÚ.TestLegacyNamespaces.test_nspkg_file_is_uniqueí   sü   € Ü—l’lÜ(Ð0Rñ
ˆð $Ð&9Ñ9ÐØ×ÑÔ ð
ˆó ˆDÜ×4Ò4°XÈTÑRˆCÚ˜k×1Ñ1Ô3°sØ—	‘	˜#”Ü  ¸ÑA�Ü$ TÓ*�Ø×$Ñ$Ô&Ø #× 9Ñ 9¸+Ó F× KÑ K�Ø×'Ñ'Ð(8ÔH÷ 4—‘ñ ô Ð%×*Ñ*¨=Ó9Ó:ˆÜ�5‹zœS ›]Ó*Ð*Ñ*÷ 4Õ3ú—–ús%   ÁDÁA#D
ÃDÄ

DÄDÄ
D*	Úimpl)Úpkg_resourcesÚns)zmyns.nc           
     óœ  • Sn[         R                  " X# S3US9n[         R                  " X# S3US9nUS-  R                  USS9  US-  R                  USS9  USS n	U	R                  S	5        UR	                  S
SSS[        U5      /U	Q5        UR	                  S
SSSS[        U5      /U	Q5        UR	                  S
SSU SU S3/5        g)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:   r6   r7   r8   r9   r;   rR   zimport z.pkgA; import )r   rh   rI   ÚappendrG   rE   )
rr   rK   rJ   r~   r|   r%   Úbuild_systemÚpkg_AÚpkg_BÚoptss
             r$   Ú!test_namespace_package_importableÚ6TestLegacyNamespaces.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ÕIr&   © N)
Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__rz   rf   ÚmarkÚparametrizer…   Ú__static_attributes__r‡   r&   r$   rZ   rZ   ê   sO   † ò+ð4 ‡[�[×ÑØð	
óð ‡[�[×Ñ˜T ;Ó/ñJó 0óóJr&   rZ   c                  ó&   • \ rS rSrS rS rS rSrg)ÚTestPep420Namespacesi*  c           
     ó8  • [         R                  " US5      n[         R                  " US5      nUSS nUR                  S5        UR                  SSSS[	        U5      /UQ5        UR                  SSSSS	[	        U5      /UQ5        UR                  / S
Q5        g)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:   r6   r7   r8   r9   r;   )r6   rR   z&import myns.n.pkgA; import myns.n.pkgB)r   Úbuild_pep420_namespace_packager€   rG   rE   )rr   rK   rJ   r%   r‚   rƒ   r„   s          r$   r…   Ú6TestPep420Namespaces.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           
     óä  • S[        S5      SS0S.0n[        R                  R                  XBS9  US-  n[        R
                  " US5      n[        R
                  " US5      nUS	S	 nUR                  S
5        UR                  SSSS[        U5      /UQ5        UR                  SSSSS[        U5      /UQ5        UR                  SSSSS[        U5      /UQ5        UR                  / SQ5        g	)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,   r4   r`   zmyns.n.pkgCNr:   r6   r7   r8   r9   r;   )r6   rR   z#from myns.n import pkgA, pkgB, pkgC)	r   rB   rC   rD   r   r’   r€   rG   rE   )	rr   rK   rJ   r%   r1   r‚   rƒ   Úpkg_Cr„   s	            r$   Ú&test_namespace_created_via_package_dirÚ;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                ór  • S[        S5      SSSSS.S.[        S   S	.0n[        R                  R	                  X2S
9  US-  nS/nUR                  SSSSSS[        U5      /UQ5        UR                  / SQ5      nUR                  5       S:X  d   eSnUR                  SS[        U5      /5      nSU;   d   eg)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+   r4   r:   r6   r7   r8   ú-vr9   r;   )r6   rR   z'from mypkg.n import pkgA; print(pkgA.a)Ú1z}        try:
            import mypkg.other
        except ImportError:
            print("mypkg.other not defined")
        rR   zmypkg.other not definedN)r   ÚEXAMPLErB   rC   rD   rG   rE   rH   )rr   rK   rJ   r1   r‚   r„   ÚoutrM   s           r$   Ú0test_namespace_accidental_config_in_lenient_modeÚETestPep420Namespaces.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&   r‡   N)rˆ   r‰   rŠ   r‹   r…   r˜   r¡   rŽ   r‡   r&   r$   r�   r�   *  s   † òMò JõD00r&   r�   c           
     óÈ  • U S-  n[         R                   Vs/ s H\  nSU;   d  M  UR                  [         R                  5      (       d  M1  U[	        U5      R                  [         R                  5      -  PM^     nnU H  nUR                  SS9  M     [        U5        [        [        R                  [        R                  R                  [        [        U5      5      S9n[         R                  SSSS	[        U5      S
[        U5      S/	UQn[         R"                  " X‡S9  [$        R&                  " 5       S:X  a  SOSn	X9-  S-  n
[         R"                  " U
/US9  gs  snf )z6
Editable install to a prefix should be discoverable.
r5   zsite-packagesT)Úparents)Ú
PYTHONPATHr7   r8   r9   ú
--editablez--prefixr:   )ÚenvÚWindowsÚScriptsÚbinÚsampleN)ÚsysrC   Ú
startswithr5   r   Úrelative_torA   Ú_addsitedirsÚdictÚosÚenvironÚpathsepÚjoinÚmaprE   Ú
executableÚ
subprocessÚ
check_callÚplatformÚsystem)rJ   Úsample_projectr%   r5   rC   Úsite_packages_allÚspr§   rM   rª   Úexes              r$   Útest_editable_with_prefixr¿   �  s8  € ð ˜Ñ €Fô
 —H’HóâˆDØ˜dÑ"ó 	4à'+§¡´s·z±z×'Bó 	4ˆ”�d“×'Ñ'¬¯
©
Ó3Ô3Ùð ð ó  ˆØ
�‰˜ˆÓñ  ô Ð"Ô#ä
Œr�z‰z¤b§j¡j§o¡o´c¼#Ð?PÓ6QÓ&RÑ
S€Cä�‰ØØØØÜˆNÓØÜˆF‹Øðð 
ð€Cô ×Ò˜#Ò'ô  —’Ó(¨IÓ5‰)¸5€CØ
‰,˜Ñ
!€CÜ×Ò˜3˜% SÓ)ùò=s   ˜
E¦"EÁ/Ec                  óZ   • \ rS rSrSrS rS rS rS rS r	S r
S	 rS
 rS rS rS rSrg)ÚTestFinderTemplatei·  úÁ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                ó4   • 0 n[        XU5        US   " 5         g )Nr9   )Úexec)rr   ÚfinderÚlocs      r$   Úinstall_finderÚ!TestFinderTemplate.install_finder½  s   € ØˆÜˆV˜#ÔØˆIŠÕr&   c                óØ  • SSSS0S.0SS0S.n[         R                  R                  X!S	9  [        US
-  5      [        US-  5      S.n[	        [        [        5       5      U0 5      n[        R                  " 5          [        R                  " 5          S H#  n[        R                  R                  US 5        M%     U R                  U5        [        S5      n[        S5      n[        S5      nUR                  S:X  d   eUR                  S:X  d   e[        US-  R                  5       5      n	[!        X‰5        S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)NÚpkg1r›   úmod1.pyza = 42)r(   Úsubpkgúmod2.pyza = 43©Úsrc1Úsrc2r4   z	src1/pkg1z	src2/mod2)rÊ   Úmod2)rÊ   úpkg1.subpkgúpkg1.subpkg.mod1rÑ   rÓ   rÑ   rÒ   é*   é+   zsrc1/pkg1/subpkg)rB   rC   rD   rE   r   r   r   Ú
save_pathsÚsave_sys_modulesr¬   ÚmodulesÚpoprÇ   r   ÚaÚresolveÚassert_path)
rr   rJ   r1   ÚmappingÚtemplateÚmodÚmod1rÑ   rÌ   Úexpecteds
             r$   Útest_packagesÚ TestFinderTemplate.test_packagesÂ  s;  € ð Ø#%Ø(¨(Ð3ñðð  Ð)ñ
ˆô 	�‰×Ñ˜%ÐÑ1ô ˜ ;Ñ.Ó/Ü˜ ;Ñ.Ó/ñ
ˆô $¤C¬«£L°'¸2Ó>ˆä× Ò Õ"¤H×$=Ò$=Õ$?ÛJ�Ü—‘—‘  TÖ*ñ Kð ×Ñ Ô)Ü Ð!3Ó4ˆDÜ  Ó(ˆDÜ" =Ó1ˆFà—6‘6˜R“<Ð�<Ø—6‘6˜R“<Ð�<Ü˜HÐ'9Ñ9×BÑBÓDÓEˆHÜ˜Ô)÷ %@×"Ð"×$?Õ$?ú×"Õ"ús%   Á<EÂB'E
Ä9EÅ

E	ÅEÅ
E)c                óÄ  • SSSS.0n[         R                  R                  X!S9  S[        US-  5      0nS/ 0n[	        [        [        5       5      X45      n[        R                  " 5          [        R                  " 5          S H#  n[        R                  R                  US 5        M%     U R                  U5        [        S5      n[        R                  " U5      S	-  n[        US-  R!                  5       5      n	[#        Xy5        UR$                  S
:X  d   eUR'                  SS9S:X  d   e S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)NrQ   úa = 13Úabc)r(   útext.txtr4   úns.othernamer~   ©r~   rè   rç   é   r=   r>   )rB   rC   rD   rE   r   r   r   rÖ   r×   r¬   rØ   rÙ   rÇ   r   Úimportlib_resourcesr1   rÛ   rÜ   rÚ   Ú	read_text)
rr   rJ   r1   rÝ   r   rÞ   rß   rQ   Útextrá   s
             r$   Útest_namespaceÚ!TestFinderTemplate.test_namespaceâ  s  € Ø¨¸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Ü˜Ô&Ø—5‘5˜B“;Ð�;ð —>‘>¨7�>Ð3°uÓ<Ð<Ñ<÷ %@×"Ð"×$?Õ$?ú×"Õ"ús%   Á+EÂB-E Ä/EÅ 
E	Å
EÅ
Ec                ó   • SSSS000SSS00S.n[         R                  R                  X!S9  [        US	-  5      [        US
-  5      S.nS[        US-  5      [        US-  5      /0n[	        [        [        5       5      X45      n[        R                  " 5          [        R                  " 5          S H#  n[        R                  R                  US 5        M%     U R                  U5        [        S5      n[        S5      n[        US	-  R                  5       5      n	[        Xy5        UR                   S:X  d   eUR"                  S:X  d   e S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nr~   rÊ   r(   rå   rÍ   úb = 37rÎ   r4   zsrc1/ns/pkg1zsrc2/ns)úns.pkgAr~   rÏ   rÐ   )r~   rò   úns.mod2rò   ró   rê   é%   )rB   rC   rD   rE   r   r   r   rÖ   r×   r¬   rØ   rÙ   rÇ   r   rÛ   rÜ   rÚ   Úb)
rr   rJ   r1   rÝ   Únamespaces_rÞ   rß   r•   rÑ   rá   s
             r$   Útest_combine_namespacesÚ*TestFinderTemplate.test_combine_namespacesù  sJ  € à˜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Ö*ñ 4ð ×Ñ Ô)Ü  Ó+ˆDÜ  Ó+ˆDä˜H ~Ñ5×>Ñ>Ó@ÓAˆHÜ˜Ô'Ø—6‘6˜R“<Ð�<Ø—6‘6˜R“<Ð‘<÷ %@×"Ð"×$?Õ$?ú×"Õ"ús%   ÂE/Â0BEÅE/Å
E,	Å(E/Å/
E=c                óz  • SSS00SSS00S.n[         R                  R                  5       nUR                  U5         [         R                  R	                  U5        SS	S
S.SS/S.n[        U5      n[        U[        [        5       5      5      n[        S UR                  5        5       5      nSSS5        [        R                  " 5          [        R                  " 5          WS    H#  n[        R                  R!                  US5        M%     U R#                  W5        [%        S5      n	[%        S5      n
[        US-  R'                  5       5      n[        [)        U	R*                  5      R'                  5       5      U:X  d   e[        US-  R'                  5       5      n[        [)        U
R*                  5      R'                  5       5      U:X  d   eU	R,                  S:X  d   eU
R.                  S:X  d   e SSS5        SSS5        g! , (       d  f       GN`= f! , (       d  f       N)= f! , (       d  f       g= f)zw
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  óZ   #   • U  H!  u  pUR                  S 5      (       d  M  Uv •  M#     g7f)z.pyN©Úendswith)Ú.0ÚkÚvs      r$   Ú	<genexpr>ÚDTestFinderTemplate.test_combine_namespaces_nested.<locals>.<genexpr>,  s"   é € ÐWÒ&A™d˜aÀQÇZÁZÐPU×EVŸ™Ò&Aù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ô   )rB   rC   ÚDirectoryStackri   rD   r   r   rE   r   ÚnextÚget_implementationr   rÖ   r×   r¬   rØ   rÙ   rÇ   r   rÛ   r   Ú__file__rÚ   rõ   )rr   rJ   r1   ÚstackÚattrsrx   rÅ   Úcoderß   rà   rÑ   rá   s               r$   Útest_combine_namespaces_nestedÚ1TestFinderTemplate.test_combine_namespaces_nested  sÕ  € ð ! >°8Ð"<Ð=Ø" _°hÐ$?Ð@ñ
ˆô
 —‘×*Ñ*Ó,ˆØ�]‰]˜8Õ$Ü�K‰K×Ñ˜eÔ$à*à&6Ø-?ñ ð .Ð/FÐGñˆEô   Ó&ˆDÜ$ T¬3¬u«w«<Ó8ˆFÜÑW f×&?Ñ&?Ô&AÓWÓWˆD÷ %ô × Ò Õ"¤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“<Ð‘<÷ %@×"Ð"÷ %Ö$ú÷ %@Õ$?ú×"Õ"ús1   ½A3H	ÃH,Ã#DHÇ8H,È	
HÈ
H)	È%H,È,
H:c                ót  • SSSS000SSSS000SSSS000S	.n[         R                  R                  X!S
9  0 nS[        US-  5      /0n[	        [        [        5       5      X45      nS S 5       n[        R                  " 5          [        R                  " 5          SSS/UQ7 H#  n[        R                  R                  US 5        M%     U R                  U5        [        S5      nUR                  S:X  d   e[        R                   " ["        5         [        S5        S S S 5        [        R                  R%                  [        US-  5      5        [        S5      n	U	R                  S:X  d   e[        R                   " ["        5         [        S5        S S S 5        [        R                  R%                  [        US-  5      5        [        S5      n
U
R                  S:X  d   e S S S 5        S S S 5        g ! , (       d  f       NÞ= f! , (       d  f       Ny= f! , (       d  f       N9= f! , (       d  f       g = f)NÚparentÚchildzone.pyúx = 1ztwo.pyúx = 2zthree.pyzx = 3)Úproject1Úproject2Úproject3r4   zproject1/parentc              3  ó,   #   • U  H
  nS U 3v •  M     g7f)zparent.child.Nr‡   )r  rm   s     r$   r  ÚCTestFinderTemplate.test_dynamic_path_computation.<locals>.<genexpr>K  s   é € ÐKÒ3J¨4�- ˜vÕ&Ò3Jùó   ‚)ÚoneÚtwoÚthreezparent.childzparent.child.oner   zparent.child.twor  é   zparent.child.threer  é   )rB   rC   rD   rE   r   r   r   rÖ   r×   r¬   rØ   rÙ   rÇ   r   Úxrf   ÚraisesÚImportErrorr€   )rr   rJ   r1   rÝ   rö   rÞ   Úmodsrß   r  r  r   s              r$   Útest_dynamic_path_computationÚ0TestFinderTemplate.test_dynamic_path_computation?  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Ö*ñ Ið ×Ñ Ô)äÐ 2Ó3ˆCØ—5‘5˜A“:Ð�:ä—’œ{Õ+ÜÐ0Ô1÷ ,ô �H‰H�O‰OœC ¨:Ñ 5Ó6Ô7ÜÐ 2Ó3ˆCØ—5‘5˜A“:Ð�:ä—’œ{Õ+ÜÐ2Ô3÷ ,ô �H‰H�O‰OœC ¨:Ñ 5Ó6Ô7Ü!Ð"6Ó7ˆEØ—7‘7˜a“<Ð‘<÷+ %@×"Ð"÷ ,Õ+ú÷ ,Õ+ú÷! %@Õ$?ú×"Õ"úsW   ÂH)ÂA8HÄG6ÄA*HÆHÆAHÇ%H)Ç6
HÈ HÈ
HÈHÈ
H&	È"H)È)
H7c                ó@  • SSS00n[         R                  R                  X!S9  S[        US-  5      0n[	        [        [        5       5      U0 5      n[        R                  " 5          [        R                  " 5          [        R                  R                  SS 5        U R                  U5        [        R                  " [        SS9   [!        S5        S S S 5        S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N(= f! , (       d  f       g = f)NrQ   r(   zfrom . import pkgr4   r]   ©rB   rC   rD   rE   r   r   r   rÖ   r×   r¬   rØ   rÙ   rÇ   rf   r$  r%  r   ©rr   rJ   r1   rÝ   rÞ   s        r$   Útest_no_recursionÚ$TestFinderTemplate.test_no_recursionc  sÖ   € ð ØÐ2ðð
ˆô
 	�‰×Ñ˜%ÐÑ1ð ”3�x %Ñ'Ó(ð
ˆô $¤C¬«£L°'¸2Ó>ˆä× Ò Õ"¤H×$=Ò$=Õ$?Ü�K‰K�O‰O˜E 4Ô(à×Ñ Ô)Ü—’œ{°%Ó8Ü˜eÔ$÷ 9÷	 %@×"Ð"÷ 9Õ8ú÷	 %@Õ$?ú×"Õ"ús=   Á'DÁ=AC>ÃC-ÃC>ÃDÃ-
C;Ã7C>Ã>
D	ÄDÄ
Dc                ó†  • SSSS0S.0n[         R                  R                  X!S9  S[        US-  5      0n[	        [        [        5       5      U0 5      n[        R                  " 5          [        R                  " 5          [        R                  R                  SS 5        [        R                  R                  SS 5        U R                  U5        [        R                  " [        SS9   [!        S5        S S S 5        S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N(= f! , (       d  f       g = f)	NÚfoor›   r(   )r(   Úbarr4   zfoo.barr<   r]   r*  r+  s        r$   Útest_similar_nameÚ$TestFinderTemplate.test_similar_namex  sí   € àØ!à! 2ðñð
ˆô 	�‰×Ñ˜%ÐÑ1ð ”3�x %Ñ'Ó(ð
ˆô $¤C¬«£L°'¸2Ó>ˆä× Ò Õ"¤H×$=Ò$=Õ$?Ü�K‰K�O‰O˜E 4Ô(Ü�K‰K�O‰O˜I tÔ,à×Ñ Ô)Ü—’œ{°(Ó;Ü˜hÔ'÷ <÷ %@×"Ð"÷
 <Õ;ú÷ %@Õ$?ú×"Õ"ús=   Á*D2Â A+D!Ã+DÃ7D!Ã?D2Ä
DÄD!Ä!
D/	Ä+D2Ä2
E c                ó²  • SSSSSS.S.0n[         R                  R                  X!S9  S[        US-  5      0n[	        [        [        5       5      U0 5      n[        R                  " 5          [        R                  " 5          [        R                  R                  SS 5        U R                  U5        [        R                  " [        SS	9   [!        S
5        S S S 5        [        R                  " [        SS	9   [!        S5        S S S 5        [        R                  " [        SS	9   [!        S5        S S S 5        [        R                  " [        SS	9   [!        S5        S S S 5        [        R                  " [        SS	9   [!        S5        S S S 5        [!        S5      nUR"                  S:X  d   e[!        S5      nUR"                  S:X  d   e S S S 5        S S S 5        g ! , (       d  f       GN= f! , (       d  f       Nó= f! , (       d  f       N×= f! , (       d  f       N»= f! , (       d  f       NŸ= f! , (       d  f       Nm= f! , (       d  f       g = f)Nr/  r›   r  r  )r(   úlowercase.py)r(   r4  r0  r4   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!  )rB   rC   rD   rE   r   r   r   rÖ   r×   r¬   rØ   rÙ   rÇ   rf   r$  r%  r   r#  )rr   rJ   r1   rÝ   rÞ   rß   s         r$   Útest_case_sensitivityÚ(TestFinderTemplate.test_case_sensitivity�  s·  € àØ!Ø 'à#%Ø$+ññð	
ˆô 	�‰×Ñ˜%ÐÑ1à”3�x %Ñ'Ó(ð
ˆô $¤C¬«£L°'¸2Ó>ˆÜ× Ò Õ"¤H×$=Ò$=Õ$?Ü�K‰K�O‰O˜E 4Ô(à×Ñ Ô)Ü—’œ{°'Ó:Ü˜eÔ$÷ ;ô —’œ{Ð2EÓFÜ˜oÔ.÷ Gô —’œ{Ð2KÓLÜÐ1Ô2÷ Mô —’œ{°-Ó@ÜÐ1Ô2÷ Aô —’œ{°'Ó:ÜÐ1Ô2÷ ;ô   Ó0ˆCØ—5‘5˜A“:Ð�:äÐ 3Ó4ˆCØ—5‘5˜A“:Ð‘:÷/ %@×"Ð"÷ ;Ö:ú÷ GÕFú÷ MÕLú÷ AÕ@ú÷ ;Õ:ú÷! %@Õ$?ú×"Õ"úsž   Á,IÂAH7ÃG!Ã!H7Ã:G3Ä!H7Ä'HÄ3!H7ÅHÅ !H7ÆH&ÆAH7ÇIÇ!
G0Ç+H7Ç3
HÇ=H7È
HÈH7È
H#ÈH7È&
H4È0H7È7
I	ÉIÉ
Ic                óT  • SSSSS.S.0n[         R                  R                  X!S9  S[        US-  5      0nS	/ 0n[	        [        [        5       5      X45      n[        R                  " 5          [        R                  " 5          S
 H#  n[        R                  R                  US 5        M%     U R                  U5        [        S5      n[        US-  R                  5       5      n[        Xx5        UR                   S:X  d   e[        S5      n	U	R"                  S:X  d   e[        S5      n
U
R$                  S:X  d   e[&        R(                  " [*        SS9   [        S5        S S S 5        [&        R(                  " [*        SS9   [        S5        S S S 5        [&        R(                  " [*        SS9   [        S5        S S S 5        S S S 5        S S S 5        g ! , (       d  f       Ny= f! , (       d  f       N]= f! , (       d  f       NA= f! , (       d  f       NJ= f! , (       d  f       g = f)NrQ   rå   rñ   zc = 42)r(   zbar.py)r(   r/  r4   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)rB   rC   rD   rE   r   r   r   rÖ   r×   r¬   rØ   rÙ   rÇ   r   rÛ   rÜ   rÚ   rõ   Úcrf   r$  r%  )rr   rJ   r1   rÝ   r   rÞ   rß   rQ   rá   r/  r0  s              r$   Útest_namespace_case_sensitivityÚ2TestFinderTemplate.test_namespace_case_sensitivity¹  s®  € àØ'à#+Ø&ññð
ˆô 	�‰×Ñ˜%ÐÑ1à!¤3 x°%Ñ'7Ó#8Ð9ˆØ˜B�Zˆ
ä#¤C¬«£L°'ÓFˆÜ× Ò Õ"¤H×$=Ò$=Õ$?Û-�Ü—‘—‘  TÖ*ñ .ð ×Ñ Ô)Ü Ó/ˆCÜ˜H uÑ,×5Ñ5Ó7Ó8ˆHÜ˜Ô&Ø—5‘5˜B“;Ð�;äÐ 2Ó3ˆCØ—5‘5˜B“;Ð�;äÐ 6Ó7ˆCØ—5‘5˜B“;Ð�;ä—’œ{°&Ó9ÜÐ0Ô1÷ :ô —’œ{Ð2LÓMÜÐ0Ô1÷ Nô —’œ{Ð2RÓSÜÐ4Ô5÷ T÷- %@×"Ð"÷  :Õ9ú÷ NÕMú÷ TÕSú÷- %@Õ$?ú×"Õ"úsm   Á.HÂCHÅGÅ"!HÆG&Æ!HÆ0G7Æ<HÇHÇ
G#ÇHÇ&
G4Ç0HÇ7
HÈHÈ
H	ÈHÈ
H'c                óÖ  • SSSSSSS0S.00n[         R                  R                  X!S	9  S[        US
-  5      0n[	        [        [        5       5      U0 5      n[        R                  " 5          [        R                  " 5          S H#  n[        R                  R                  US5        M%     U R                  U5        [        S5      nUR                  S:X  d   e[        S5      nUR                  S:X  d   e[         R"                  " [$        5         [        S5        SSS5        SSS5        SSS5        g! , (       d  f       N= f! , (       d  f       N(= f! , (       d  f       g= f)zp
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Ú
componentsr4   z	src/mypkg)r'   zmypkg.configúmypkg.helloworldzmypkg.componentsúmypkg.components.configúmypkg.components.helloworldNr@  rô   r?  rê   rA  )rB   rC   rD   rE   r   r   r   rÖ   r×   r¬   rØ   rÙ   rÇ   r   rÚ   rõ   rf   r$  r%  )rr   rJ   r1   rÝ   rÞ   rß   rc   Ú
helloworlds           r$   Útest_intermediate_packagesÚ-TestFinderTemplate.test_intermediate_packagesâ  s,  € ð ØØ#%Ø!)Ø%-à# Xð#ñ	ð	ð
ˆô 	�‰×Ñ˜%ÐÑ1àœC ¨;Ñ 6Ó7Ð8ˆÜ#¤C¬«£L°'¸2Ó>ˆä× Ò Õ"¤H×$=Ò$=Õ$?ó�ô —‘—‘  TÖ*ñð ×Ñ Ô)ä"Ð#<Ó=ˆFØ—8‘8˜r“>Ð!�>ä&Ð'9Ó:ˆJØ—<‘< 2Ó%Ð%Ð%ä—’œ{Õ+ÜÐ;Ô<÷ ,÷' %@×"Ð"÷& ,Õ+ú÷' %@Õ$?ú×"Õ"ús=   Á.EÂBE	ÄD8ÄE	Ä'EÄ8
EÅE	Å	
E	ÅEÅ
E(r‡   N)rˆ   r‰   rŠ   r‹   Ú__doc__rÇ   râ   rî   r÷   r  r'  r,  r1  r6  r:  rC  rŽ   r‡   r&   r$   rÁ   rÁ   ·  sC   † ñò
ò
*ò@=ò. ò6) òV" òH%ò*(ò0'òR'6õR*=r&   rÁ   c           
     óà  • SS0SS.SSS0S.SS	SS
000SS0SS0SS0S.n[         R                  R                  XS9  SSSS.n/ SQn[        X2U 5      nU[	        U S-  5      [	        U S-  5      [	        U S-  5      [	        U S-  5      [	        U S-  5      [	        U S-  5      S.:X  d   e[        [        [        X45      5      5      nUSS1:X  d   e[        [        U5      5      nU1 Sk:X  d   eg)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_anotherr4   rL  rM  rN  )úa.b.cúa.b.c.x.y.zú	m.n.o.p.q)rÚ   úa.brO  ú	a.b.c.x.yrP  rJ  zd.erK  úf.gzf.g.hrQ  rÚ   rJ  rK  )rÚ   rO  rP  rJ  rK  rQ  rT  >   ÚmrR  úm.núm.n.oúa.b.c.xúm.n.o.prS  N)	rB   rC   rD   r   rE   Úsetr°   r   r   )rJ   r1   r   r  Úrootsr~   s         r$   Útest_pkg_rootsr\    s5  € ð " 8Ð,¸WÑEØ$¨M¸8Ð+DÑEØ�C˜-¨Ð3Ð4Ð5Ø Ð+Ø! <Ð0Ø% {Ð3ñ€Eô ‡K�K×Ñ�eÐÑ-àØ Ø"ñ€Kò
€Hô   °xÓ@€EØÜ�˜C‘Ó Ü�X Ñ'Ó(Ü˜8 iÑ/Ó0Ü�˜C‘Ó Ü�˜C‘Ó Ü˜ MÑ1Ó2ñó ð ð ô 
ŒTÔ" 8Ó3Ó4Ó	5€BØ�#�u�ÓÐÐä	Ô% eÓ,Ó	-€BØÒPÓPÐPÑPr&   c            
      óÈ  • \ rS rSr% Sr\" \5      \S   SSSSSSS.S	.S
.rS\S'   \\" \5      \S   SS\S   0S.\" \5      \" S5      -   \S   SS\S   S   S.\S   S   S.\" \5      \S   SS\S   S   \S   S   S.0S.S.r	\
R                  R                  \R                  S:H  SS9\
R                  R                  S\	R!                  5       5      S 5       5       rSrg)ÚTestOverallBehaviouri@  z·        [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+   ra  r,   zÇ                [tool.setuptools]
                packages = ["mypkg", "mypkg.subpackage"]

                [tool.setuptools.package-dir]
                "mypkg.subpackage" = "other"
                rË   )r(   rË   r`  )r*   r+   ra  r'   rL  )rË   r`  )úflat-layoutú
src-layoutúcustom-layoutÚ	namespacer-   r.   r/   Úlayoutc                óØ  • [        SX!U R                  U   /UQ76 u  pVSnUR                  SS[        U5      /5      nSU;   d   eSn	UR                  SS[        U	5      /5      nSU;   d   eSn
UR                  SS[        U
5      /5      nS	U;   d   e[	        UR                  S
5      5      n[	        UR                  S5      5      n[	        UR                  S5      5      nUR                  SSS9  UR                  SSS9  UR                  SSS9  UR                  SS[        U	5      /5      nSU;  d   eSU;   d   eUR                  SS[        U
5      /5      nS	U;  d   eSU;   d   eg )Nr'   zj        try:
            import otherfile
        except ImportError as ex:
            print(ex)
        r6   rR   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"))
        r_  ú
**/mod1.pyú
**/mod2.pyú**/resource_file.txtzvar = 17r=   r>   z	var = 781zresource 374z17 781)Úinstall_projectÚEXAMPLESrG   r   r  rp   rI   )rr   rJ   rK   rg  r%   rL   Ú_Úcmd_import_errorr    Úcmd_get_varsÚcmd_get_resourcerà   rÑ   Úresource_files                 r$   Útest_editable_installÚ*TestOverallBehaviour.test_editable_installƒ  s—  € ô %Ø�T 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&   r‡   N)rˆ   r‰   rŠ   r‹   Ú	PYPROJECTr   rŸ   rb  Ú__annotations__rm  rf   rŒ   Úxfailr¬   r¹   r�   Úkeysrs  rŽ   r‡   r&   r$   r^  r^  @  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&   r^  c                  ó†   • \ rS rSr\" \R                  S   5      r\S==   \" S5      -  ss'   S\S   S   S'   S	 r	S
 r
Srg)ÚTestLinkTreei¸  rd  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                ód  • [         R                  R                  U R                  US9  [	        U5         Sn[        SS05      nUR                  5         [        5       nUS-  nUS-  nUR                  5         UR                  5         UR                  S5      nSUl
        [        U5      Ul        UR                  5         UR                  5       nUR                  5       n	[!        X2XV5      n
U
" XHU	5        [#        UR%                  S	5      5      nUS
-  n['        X¼5        [#        UR%                  S5      S 5      b   e[#        UR%                  S5      S 5      b   e[#        UR%                  S5      S 5      b   e[#        UR%                  S5      S 5      b   e S S S 5        g ! , (       d  f       g = f)Nr4   zmypkg-3.14159rÿ   rü   z.auxz.buildÚbuild_pyTri  zsrc/mypkg/mod1.pyz**/subpackagerj  rk  z**/resource.not_in_manifest)rB   rC   rD   ÚFILESÚ_Pathr   Úparse_config_filesr
   rA   Úget_command_objÚeditable_moderE   Ú	build_libÚensure_finalizedÚget_outputsÚget_output_mappingr   r  rp   Úassert_link_to)rr   rJ   rm   rx   ÚwheelÚauxrD   r}  ÚoutputsÚoutput_mappingÚ	make_treerà   rá   s                r$   Útest_generated_treeÚ TestLinkTree.test_generated_treeÉ  su  € Ü�‰×Ñ˜$Ÿ*™*¨XÐÑ6ä�8�_Ø"ˆ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Ó9ˆIÙ�e nÔ5ä˜Ÿ™ Ó.Ó/ˆDØÐ"5Ñ5ˆHÜ˜4Ô*ä˜Ÿ™ Ó1°4Ó8Ñ@Ð@Ð@Ü˜Ÿ™ Ó.°Ó5Ñ=Ð=Ð=Ü˜Ÿ™Ð!7Ó8¸$Ó?ÑGÐGÐGä˜Ÿ™Ð!>Ó?ÀÓFÑNÐNÑN÷; �_Ž_ús   ´E#F!Æ!
F/c                ó  • SS/n[        SX!U R                  /UQ76   UR                  / SQ5      nSU;   d   eSnUR                  SS[        U5      /5      nS	U;   d   eS
nUR                  SS[        U5      /5      nSU;   d   eSU;   d   eg )Nr    r!   r'   ©r6   rR   z(import mypkg.mod1; print(mypkg.mod1.var)ra   zv        try:
            from mypkg import subpackage
        except ImportError as ex:
            print(ex)
        r6   rR   ú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 directoryr{  )rl  r~  rG   r   )rr   rJ   rK   r„   r    ro  rq  s          r$   Útest_strict_installÚ TestLinkTree.test_strict_installë  s±   € Ø#Ð%;Ð<ˆÜ˜ °·±Ð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&   r‡   N)rˆ   r‰   rŠ   r‹   r   r^  rm  r~  r   r�  r’  rŽ   r‡   r&   r$   rz  rz  ¸  sW   † ÙÐ)×2Ñ2°<Ñ@ÓA€EØ	Ð
Ó™vð
	ó ñ Óð 9>€Eˆ%�L�ÑÐ4Ñ5ò OõD1r&   rz  z9ignore:.*compat.*:setuptools.SetuptoolsDeprecationWarningc                óT  • SS/n[         R                  S   n[        SXU/UQ76   UR                  / SQ5      nSU;   d   e[	        [        U 5      5      nS H'  n[	        UR                  SS	U/5      5      nXT;   a  M'   e   S
nUR                  SS	[        U5      /5      nSU;   d   eg )Nr    zeditable-mode=compatre  r'   r�  ra   )z"import otherfile; print(otherfile)zimport other; print(other)zimport mypkg; print(mypkg)r6   rR   zc    try:
        from mypkg import subpackage;
    except ImportError as ex:
        print(ex)
    r‘  )r^  rm  rl  rG   Úcomparable_pathrE   r   )rJ   rK   r„   r1   r    Úexpected_pathrM   s          r$   Útest_compat_installr—    s½   € ð  Ð!7Ð8€DÜ ×)Ñ)¨/Ñ:€EÜ�G˜T¨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                óŒ   • SSSSSSU /UQnUR                  U[        R                  S9  UR                  / SQ5      nS	U;   d   eg
)z3Ensure editable installs work with pbr, issue #3500r6   r7   r8   r�   r9   r¦   ©Ústderr)r6   rR   zimport mypkg.hellozHello world!N)rG   r·   ÚSTDOUT)Úpbr_packagerK   r%   rM   r    s        r$   Útest_pbr_integrationr�  ,  s_   € ð 	ØØØØØØð	ð 
ð	€Cð 	‡H�HˆSœ×*Ñ*€HÑ+Ø
�(‰(Ò9Ó
:€CØ˜SÓ Ð Ñ r&   c                  óT   • \ rS rSrSr0 \R                  S   ES\" S5      0ErS r	Sr
g)	ÚTestCustomBuildPyi>  a  
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.
rc  r2   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                óŒ   • [        SX!U R                  5      u  p4SU;   d   eSU;   d   eUR                  / SQ5      nSU;   d   eg)z>Ensure that errors in custom build_py are reported as warningsr'   r   zValueError: TEST_RAISEr�  ra   N)rl  r~  rG   )rr   rJ   rK   rn  r    s        r$   Útest_safeguarded_from_errorsÚ.TestCustomBuildPy.test_safeguarded_from_errors]  sO   € ô ! ¨$¸$¿*¹*ÓE‰ˆØ-°Ó4Ð4Ð4Ø'¨3Ó.Ð.Ð.à�h‰hÒSÓTˆØ�s‹{Ð‰{r&   r‡   N)rˆ   r‰   rŠ   r‹   rE  r^  rm  r   r~  r¡  rŽ   r‡   r&   r$   rŸ  rŸ  >  s:   † ñðØ
×
'Ñ
'¨Ñ
6ðà‘Fðó
ñ€Eõ$r&   rŸ  c                  ó    • \ rS rSrS rS rSrg)ÚTestCustomBuildWheelih  c                óX   • UR                  S5      n " S SU5      nX1R                  S'   g )NÚbdist_wheelc                  ó(   ^ • \ rS rSrU 4S jrSrU =r$ )ÚETestCustomBuildWheel.install_custom_build_wheel.<locals>.MyBdistWheelil  c                ód   >• U R                   R                  S5      (       a  Sn[        TU ]  5       $ )Nzmacosx-zmacOS platform)Ú	plat_namer­   ÚsuperÚget_tag)rr   rn  Ú	__class__s     €r$   r¬  ÚMTestCustomBuildWheel.install_custom_build_wheel.<locals>.MyBdistWheel.get_tagm  s,   ø€ ð —>‘>×,Ñ,¨Y×7Ñ7Ø(�AÜ‘w‘Ó(Ð(r&   r‡   )rˆ   r‰   rŠ   r‹   r¬  rŽ   Ú__classcell__)r­  s   @r$   ÚMyBdistWheelr¨  l  s   ø† ÷)ó )r&   r°  )Úget_command_classÚcmdclass)rr   rx   Úbdist_wheel_clsr°  s       r$   Úinstall_custom_build_wheelÚ/TestCustomBuildWheel.install_custom_build_wheeli  s,   € Ø×0Ñ0°Ó?ˆô	)˜?ô 	)ð (4�‰�mÒ$r&   c                óf  • [         R                  R                  SS05        [        5       nSUl        UR                  5         U R                  U5        [        U5      nUR                  5         UR                  5         [        [        [        5       R                  S5      5      5      nSU;   d   eg )Nú	module.pyr@   r2   ú
dist/*.whlÚeditable)rB   rC   rD   r   rÿ   Úset_defaultsr´  r   r„  rG   rE   r  r   rp   )rr   Ú
tmpdir_cwdrx   rM   Ú
wheel_files        r$   Útest_access_plat_nameÚ*TestCustomBuildWheel.test_access_plat_namev  s‹   € ô 	�‰×Ñ˜;¨Ð1Ô2Ü‹~ˆØ%ˆÔØ×ÑÔØ×'Ñ'¨Ô-Ü˜TÓ"ˆØ×ÑÔØ�‰Œ	Üœœd›fŸk™k¨,Ó7Ó8Ó9ˆ
Ø˜ZÓ'Ð'Ñ'r&   r‡   N)rˆ   r‰   rŠ   r‹   r´  r½  rŽ   r‡   r&   r$   r¤  r¤  h  s   † ò4õ(r&   r¤  c                  ót   • \ rS rSrS r\R                  R                  \R                  S:g  SS9S 5       r
Srg)	ÚTestCustomBuildExti…  c                óB   • SSK Jn   " S SU5      nX1R                  S'   g )Nr   )Ú	build_extc                  ó   • \ rS rSrSrg)ÚITestCustomBuildExt.install_custom_build_ext_distutils.<locals>.MyBuildExti‰  r‡   N)rˆ   r‰   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_distutilsÚ5TestCustomBuildExt.install_custom_build_ext_distutils†  s   € ÝJô	˜ô 	ð &0�‰�kÒ"r&   Úlinuxz(compilers may fail without correct setupr/   c                óˆ  ^• [         R                  R                  SS05        S[        SS/5      /0n[	        U5      nSUl        UR                  5         U R                  U5        [        U5      nUR                  5         UR                  5         [        [        [        5       R                  S5      5      5      nSU;   d   e[        5       R                  S5       Vs/ s H  ofR                  S	:w  d  M  UPM     nn[!        U5      S
:X  d   eUS   R"                  m[%        U4S j[&         5       5      (       d   eg s  snf )Nzmodule.cr›   Úext_modulesÚmoduler2   r¸  r¹  zmodule.*z.cr   r   c              3  óF   >#   • U  H  nTR                  U5      v •  M     g 7f©Nr  )r  Úextrm   s     €r$   r  ÚHTestCustomBuildExt.test_distutils_leave_inplace_files.<locals>.<genexpr>¢  s   øé € ÐDÒ1C¨#�4—=‘= ×%Ð%Ò1Cùs   ƒ!)rB   rC   rD   r   r   rÿ   rº  rÈ  r   r„  rG   rE   r  r   rp   Úsuffixrq   rm   Úanyr   )	rr   r»  r  rx   rM   r¼  Úpr1   rm   s	           @r$   Ú"test_distutils_leave_inplace_filesÚ5TestCustomBuildExt.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Ò3�q·x±xÀ4Ñ7G—Ñ3ˆÐHÜ�5‹z˜Q‹ÐˆØ�Q‰x�}‰}ˆÜÔDÕ1CÓD×DÑDÐDÑDùò Is   ÃD?Ã6D?r‡   N)rˆ   r‰   rŠ   r‹   rÈ  rf   rŒ   Úskipifr¬   r¹   rÕ  rŽ   r‡   r&   r$   rÀ  rÀ  …  s@   † ò0ð ‡[�[×ÑØ�‰˜ÑÐ(Rð ð ñEóóEr&   rÀ  c                óþ  • [         R                  R                  SS05        [        5       nSUl        UR                  5         [        U5      nUR                  5         [        S[        40 5      n[        U" 5       S9nUR                  USU5        [        R                  " U5       nUR                  5         SSS5        [        S WR                   R"                   5       5      (       d   eg! , (       d  f       N<= f)	z7Make sure to display useful debugging tips to the user.r·  r@   r2   ÚSimulatedErr)Úside_effectrl   Nc              3  ó,   #   • U  H
  nS U;   v •  M     g7f)zdebugging-tipsNr‡   )r  Únotes     r$   r  Ú&test_debugging_tips.<locals>.<genexpr>´  s   é € ÐHÒ4G¨DÐ 4Ö'Ò4Gùr  )rB   rC   rD   r   rÿ   rº  r   r„  ÚtypeÚ	Exceptionr
   Úsetattrrf   r$  rG   rÓ  ÚvalueÚ	__notes__)r»  rs   rx   rM   rÙ  Úsimulated_failurerw   s          r$   Útest_debugging_tipsrä  ¥  sÁ   € ä
‡K�K×Ñ�{ HÐ-Ô.Ü‹>€DØ!€DÔØ×ÑÔÜ
˜Ó
€CØ×ÑÔä˜¬¨°bÓ9€LÜ©«Ñ8ÐØ×Ñ˜Ð4Ð6GÔHä	�Š�|Ô	$¨Ø�‰Œ	÷ 
%äÑH°C·I±I×4GÒ4GÓH×HÑHÐHÑH÷ 
%Õ	$ús   Â'C.Ã.
C<Úerrorc                 óH   • [        S5      n [        U [        5      (       d   eg)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                óÖ   • X -  nUR                  5         [        R                  R                  X5S9  / UQSPnUR	                  SSSSSS[        U5      /UQ[        R                  S	9nXV4$ )
Nr4   r:   r6   r7   r8   r�   r9   r;   r™  )rA   rB   rC   rD   rG   rE   r·   r›  )rm   rK   rJ   r1   r„   rL   r    s          r$   rl  rl  ¾  sx   € Ø‰o€GØ‡M�M„OÜ
‡K�K×Ñ�eÐÑ,Ø*ˆTÐ*Ð)Ð*€DØ
�(‰(Ø	�4˜  i°´s¸7³|ÐKÀdÐKÜ× Ñ ð ð €Cð ˆ<Ðr&   c                óx   • SR                  S[        S U  5       5      -   5      nU S   S-  R                  USS9  g)	a%  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  óX   #   • U  H   nS [         R                  " U5      < S3v •  M"     g7f)zsite.addsitedir(Ú)N)r±   Úfspath)r  Únew_dirs     r$   r  Ú_addsitedirs.<locals>.<genexpr>Ò  s$   é € ÐSÊ(¸wÐ"¤2§9¢9¨WÓ#5Ñ"8¸Õ:Ê(ùs   ‚(*r   zsitecustomize.pyr=   r>   N)r´   ÚtuplerI   )Únew_dirsré  s     r$   r¯   r¯   Ê  sH   € ð �i‰iØÜ
ÑSÉ(ÓSÓ
Sñ	Tó€Gð ˆa�[Ð%Ñ%×1Ñ1°'ÀGÐ1ÒLr&   c                óÆ   • U R                   (       aP  [        [        U R                   5      S 5      nU(       a)  [        [	        U5      R                  5       5      U:X  d   eg g g rÏ  )Ú__path__r  ÚiterrE   r   rÛ   )rQ   rá   rC   s      r$   rÜ   rÜ   Ú  sK   € à
‡|‡|Ü”D˜Ÿ™Ó&¨Ó-ˆÞÜ”t˜D“z×)Ñ)Ó+Ó,°Ó8Ð8Ñ8ð ð r&   c                ó„  • U R                  5       (       a7  [        U R                  5       5      [        UR                  5       5      :X  d   eg U R                  5       nUR                  5       nU[        R                     U[        R                     :X  d   eU[        R
                     U[        R
                     :X  d   eg rÏ  )Ú
is_symlinkrE   rÛ   ÚstatÚST_INOÚST_DEV)ÚfilerL  Ú	file_statÚ
other_stats       r$   r‡  r‡  â  s‰   € Ø‡�×ÑÜ�4—<‘<“>Ó"¤c¨%¯-©-«/Ó&:Ó:Ð:Ñ:à—I‘I“Kˆ	Ø—Z‘Z“\ˆ
ØœŸ™Ñ%¨´D·K±KÑ)@Ó@Ð@Ð@ØœŸ™Ñ%¨´D·K±KÑ)@Ó@Ð@Ñ@r&   c                ó~   • U R                  5       R                  [        R                  S5      R                  SS5      $ )NÚ/z//)ÚlowerÚreplacer±   Úsep)Ústr_with_paths    r$   r•  r•  ì  s/   € Ø×ÑÓ ×(Ñ(¬¯©°Ó5×=Ñ=¸dÀCÓHÐHr&   )rý  r   rL  r   ÚreturnÚNone)r  rE   r  rE   )TÚ
__future__r   r±   r¹   rú  r·   r¬   Úcopyr   Ú	importlibr   Úimportlib.machineryr   Úpathlibr   Útextwrapr   Útypingr	   Úunittest.mockr
   Úuuidr   Újaraco.envsrB   Újaraco.pathrf   rC   r  Úsetuptools._importlibr   rë   Ú!setuptools.command.editable_wheelr   r   r   r   r   r   r   r   Úsetuptools.distr   Úsetuptools.extensionr   Úsetuptools.warningsr   r›   r   r   Údistutils.corer   Úfixturer%   rH   rŸ   ÚSETUP_SCRIPT_STUBrŒ   rw  r�   rN   rU   rX   rZ   r�   r¿   rÁ   r\  r^  rz  Úfilterwarningsr—  Úuses_networkr�  rŸ  r¤  rÀ  rä  rê  rl  r¯   rÜ   r‡  r•  r‡   r&   r$   Ú<module>r     sZ  ðÝ "ã 	Û Û Û Û 
Ý Ý #Ý 2Ý Ý Ý Ý Ý ã Û Û Ý å B÷	÷ 	ó 	õ )Ý *Ý <ç "å $ð ‡‚˜ )Ð,Ñ-ñó .ðñ ð	óñ< ð	ó÷ �eƒgØ(Ø6àÙ!ðó
ñ "ðó	ð Ø%ñ/
ðñSD€ðN 7Ð ð ‡�×Ñ�3—<‘< 8Ñ+Ð4JÐÐKØ‡�×ÑØà2ˆ7Ð2�JÐ 1Ñ2Øðóñ>óó Lð>ò2%*òP#(÷L=Jñ =J÷@b0ñ b0òJ%*÷PU=ñ U=òp
.Q÷bu%ñ u%÷pP1ñ P1ðf ‡�×ÑÐWÓXñ4ó Yð4ð@ ‡�×Ññ!ó ð!÷"'ñ '÷T(ñ (÷:Eñ Eò@Ið$ ‡�×Ñ˜GÓ$ñ&ó %ð&ò	ò
Mò 9ôAõIr&   