
    ϶vgw              
      L   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j5        ddg          d             Z6 ed           ed          7                                ddd ed           ed          ddd id!Z8d"Z9ej:        ;                    ej        d#k    d$%          ej:        <                    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j:        G                    d7          d8             ZHd9 ZI G d: d;          ZJ G d< d=          ZK G d> d?          ZLd@ ZMej:        G                    dA          dB             ZNdC ZOdD ZPdE ZQdOdKZRdPdNZSdS )Q    )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    c/var/www/pixelcanvas.ch/venv/lib/python3.11/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  }|                                  t          j                            ||           ddddddt	          |          g|}t          |                    |                     g d	}|                    |                                          d
k    sJ |dz                      dd           |dz                      dd           |                    |                                          dk    sJ d S )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MMOOO
KeG,,, 	G	 
	C 
$((3--
#
#
#C88C==  $?????##//7/KKK!!--h-III88C==  $=======r'   c           	     V   dt          d          ddiddi}t          j                            ||            | dz  }dd	d
dddt	          |          g|}t          |                    |                     g d}|                    |                                          dk    sJ d S )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eH--- G 	G	 
	C 
$((3--
B
B
BC88C==  E))))))r'   c           	     P   dt          d          ddi}t          j                            ||            | dz  }dddd	d
dt	          |          g|}t          |                    |                     g d}|                    |                                          dk    sJ d S )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eH--- G 	G	 
	C 
$((3--
6
6
6C88C==  C''''''r'   c                      e Zd Zd Zej                            dd          ej                            dd          d                         ZdS )TestLegacyNamespacesc                   t          j        t          d          }|dz  }|                                 d}|D ]}t	          j        ||d          }|5  |                                5 }|                    |           t          dd	          }	t          |	          }
|

                                 |
                    d
          j        }|
                    ||           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          |                    d                    }t!          |          t!          |          k    sJ d S )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(0R
 
 
 $&99   
  	I 	ID4XtTRRRC I Ik1133 Is		# AAA$T**$$&&& # 9 9+ F F K''(8-HHHI I I I I I I I I I I I I I I I I I I I I I I I I I I I I I %**=99::5zzS]]******s7   D)A:C/#D/C33D6C37DD
	D
	impl)pkg_resourcesns)zmyns.nc           
     *   d}t          j        || d|          }t          j        || d|          }|dz                      |d           |dz                      |d           |dd         }	|	                    d	           |                    d
dddt          |          g|	           |                    d
ddddt          |          g|	           |                    d
dd| d| dg           |                    g d           dS )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  sD   $
 28\\\PTUUU28\\\PTUUU	!	!--lW-MMM	!	!--lW-MMMQQQ*+++(D%CJJFFGGG(D%D#e**LtLMMM(D"GB"G"Gb"G"G"GHIII999:::::r'   N)__name__
__module____qualname__rz   rf   markparametrizer    r'   r%   r[   r[      sz        + + +4 [	
  [T;//; ; 0/ ; ; ;r'   r[   c                       e Zd Zd Zd Zd ZdS )TestPep420Namespacesc           
     l   t          j        |d          }t          j        |d          }|dd         }|                    d           |                    ddddt	          |          g|           |                    ddddd	t	          |          g|           |                    g d
           dS )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(MRR9(MRRQQQ*+++(D%CJJFFGGG(D%D#e**LtLMMMKKKLLLLLr'   c           
     8   dt          d          ddidi}t          j                            ||           |dz  }t	          j        |d          }t	          j        |d          }|d	d	         }|                    d
           |                    ddddt          |          g|           |                    dddddt          |          g|           |                    dddddt          |          g|           |                    g d           d	S )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116!9(MRR9(MRR QQQ*+++(D%CJJFFGGG(D%D#e**LtLMMM(D%D#e**LtLMMMHHHIIIIIr'   c                   dt          d          ddddddt          d         d	i}t          j                            ||
           |dz  }dg}|                    ddddddt          |          g|           |                    g d          }|                                dk    sJ d}|                    ddt          |          g          }d|v sJ dS )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116! ''(D%y$E

RTRSSShhRRRSSyy{{c!!!! hh$s455(C//////r'   N)r   r   r   r   r   r   r   r'   r%   r   r   -  sH        M M M J  J  JD00 00 00 00 00r'   r   c           
     .  	 | dz  		fdt           j        D             }|D ]}|                    d           t          |           t	          t
          j        t
          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|           dS )z>
    Editable install to a prefix should be discoverable.
    r6   c                    g | ]T}d |v |                     t          j                  %t          |                              t          j                  z  US )zsite-packages)
startswithsysr6   r   relative_to).0rD   r6   s     r%   
<listcomp>z-test_editable_with_prefix.<locals>.<listcomp>  s\       d""tsz'B'B" 	d''
333"""r'   T)parents)
PYTHONPATHr8   r9   r:   z
--editablez--prefixr;   )envWindowsScriptsbinsampleN)r   rD   rB   _addsitedirsdictosenvironpathsepjoinmaprF   
executable
subprocess
check_callplatformsystem)
rK   sample_projectr&   site_packages_allspr   rN   r   exer6   s
            @r%   test_editable_with_prefixr     s=     F   H      
 "###
rzbjooc#?P6Q6Q&R&R
S
S
SCNF 
C #3''''  ((I55))5C
3,
!C3%S))))))r'   c                  T    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dS )TestFinderTemplateThis 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                L    i }t          |||            |d                      d S )Nr:   )exec)rr   finderlocs      r%   install_finderz!TestFinderTemplate.install_finder  s1    VS#Ir'   c                   ddddididdid}t           j                            ||	           t          |d
z            t          |dz            d}t	          t          t                                |i           }t          j                    5  t          j                    5  dD ]"}t          j
                            |d            #|                     |           t          d          }t          d          }t          d          }|j        dk    sJ |j        dk    sJ t          |dz                                            }	t!          ||	           d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )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  s&    #%((3  )
 
 	%111 ;.//;.//
 
 $CLL'2>> "" 	* 	*H$=$?$? 	* 	*J + +T****))) !344D ((D"=11F6R<<<<6R<<<<H'99BBDDEEH)))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*s7   F &B6E(F (E,	,F /E,	0F  FFc                   ddddi}t           j                            ||           dt          |dz            i}dg i}t	          t          t                                ||          }t          j                    5  t          j                    5  dD ]"}t          j
                            |d            #|                     |           t          d          }t          j        |          d	z  }t          |dz                                            }	t#          ||	           |j        d
k    sJ |                    d          dk    sJ 	 d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )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  s   eDDE%111!3x%'7#8#89BZ
#CLL':FF "" 	= 	=H$=$?$? 	= 	=- + +T****)))//C&,S11J>DHu,557788HX&&&5B;;;; >>7>33u<<<<<	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	=s7   >E5B>EE5E!	!E5$E!	%E55E9<E9c                L   ddddiiidddiid}t           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
                            |d            #|                     |           t          d          }t          d          }t          |d	z                                            }	t          ||	           |j        dk    sJ |j        dk    sJ 	 d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )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  s8   F]H$=>?Ix01
 
 	%111 8n455h*++
 
 c(V"344c(V:K6L6LMN#CLL';GG "" 	  	 H$=$?$? 	  	 3 + +T****))) ++D ++DH~5>>@@AAHh'''6R<<<<6R<<<<<	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 s7   9FB'F5FF	FF		FF Fc                   dddiidddiid}t           j                                        }|                    |          5  t           j                            |           dd	d
dddgd}t          |          }t          |t          t                                          }t          d |
                                D                       }ddd           n# 1 swxY w Y   t          j                    5  t          j                    5  |d         D ]"}t          j                            |d           #|                     |           t%          d          }	t%          d          }
t          |dz                                            }t          t)          |	j                                                            |k    sJ t          |dz                                            }t          t)          |
j                                                            |k    sJ |	j        dk    sJ |
j        dk    sJ 	 ddd           n# 1 swxY w Y   ddd           dS # 1 swxY w Y   dS )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   | ]\  }}|                     d           |V  dS )z.pyNendswith)r   kvs      r%   	<genexpr>zDTestFinderTemplate.test_combine_namespaces_nested.<locals>.<genexpr>/  s8      WWdaQZZPUEVEVWWWWWWWr'   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  s8    !>8"<="_h$?@
 

 **,,]]8$$ 	X 	XKe$$$*&6-?    ./FG E  &&D$T3uww<<88FWWf&?&?&A&AWWWWWD	X 	X 	X 	X 	X 	X 	X 	X 	X 	X 	X 	X 	X 	X 	X  "" 	  	 H$=$?$? 	  	 Z( + +T****%%% !;<<D !CDDDH'DDMMOOPPHtDM**224455AAAAH'GGPPRRSSHtDM**224455AAAA6R<<<<6R<<<<<	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 sJ   BCC"C9I%D3II%I	I%I	I%%I),I)c                   ddddiiiddddiiiddddiiid	}t           j                            ||
           i }dt          |dz            gi}t	          t          t                                ||          }d dD             }t          j                    5  t          j                    5  dddg|R D ]"}t          j
                            |d            #|                     |           t          d          }|j        dk    sJ t          j        t"                    5  t          d           d d d            n# 1 swxY w Y   t          j                            t          |dz                       t          d          }	|	j        dk    sJ t          j        t"                    5  t          d           d d d            n# 1 swxY w Y   t          j                            t          |dz                       t          d          }
|
j        dk    sJ 	 d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nparentchildzone.pyx = 1ztwo.pyx = 2zthree.pyzx = 3)project1project2project3r5   zproject1/parentc              3      K   | ]	}d | V  
dS )zparent.child.Nr   )r   rm   s     r%   r   zCTestFinderTemplate.test_dynamic_path_computation.<locals>.<genexpr>N  s+      KK4&&&KKKKKKr'   )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  sZ    "Gh-@#AB!Gh-@#AB!Gj'-B#CD
 

 	%111#h1B&B"C"C!DE#CLL';GGKK3JKKK "" 	  	 H$=$?$? 	  	  ..H4HH + +T****))) 233C5A::::{++ 2 201112 2 2 2 2 2 2 2 2 2 2 2 2 2 2 HOOC: 566777 233C5A::::{++ 4 423334 4 4 4 4 4 4 4 4 4 4 4 4 4 4 HOOC: 566777!"677E7a<<<<<+	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 s   I.A6H.$E 4H. EH.EA'H./G?H.GH.GAH."I.H2	2I5H2	6II
I
c                l   dddii}t           j                            ||           dt          |dz            i}t	          t          t                                |i           }t          j                    5  t          j                    5  t          j
                            dd            |                     |           t          j        t          d          5  t!          d           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )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11 3x%'((
 $CLL'2>> "" 	% 	%H$=$?$? 	% 	%KOOE4((())){%888 % %e$$$% % % % % % % % % % % % % % %		% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%s[   9D)ADC:.D:C>>DC>DD)D	D)D	D))D-0D-c                   ddddidi}t           j                            ||           dt          |dz            i}t	          t          t                                |i           }t          j                    5  t          j                    5  t          j
                            dd            t          j
                            dd            |                     |           t          j        t          d          5  t!          d           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )	Nfoor   r)   )r)   barr5   zfoo.barr=   r]   r  r  s        r%   test_similar_namez$TestFinderTemplate.test_similar_name{  s   !!2 
 	%111 3x%'((
 $CLL'2>> "" 	( 	(H$=$?$? 	( 	(KOOE4(((KOOIt,,,))){(;;; ( (h'''( ( ( ( ( ( ( ( ( ( ( ( ( ( (	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(s[   <EA1D4DD4D!!D4$D!%D4(E4D8	8E;D8	<EEEc                   dddddddi}t           j                            ||           dt          |dz            i}t	          t          t                                |i           }t          j                    5  t          j                    5  t          j
                            dd            |                     |           t          j        t          d	          5  t!          d
           d d d            n# 1 swxY w Y   t          j        t          d	          5  t!          d           d d d            n# 1 swxY w Y   t          j        t          d	          5  t!          d           d d d            n# 1 swxY w Y   t          j        t          d	          5  t!          d           d d d            n# 1 swxY w Y   t          j        t          d	          5  t!          d           d d d            n# 1 swxY w Y   t!          d          }|j        dk    sJ t!          d          }|j        dk    sJ 	 d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )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113x%'((
 $CLL'2>> "" 	 	H$=$?$? 	 	KOOE4((())){'::: % %e$$$% % % % % % % % % % % % % % % {2EFFF / /o.../ / / / / / / / / / / / / / / {2KLLL 3 312223 3 3 3 3 3 3 3 3 3 3 3 3 3 3 {-@@@ 3 312223 3 3 3 3 3 3 3 3 3 3 3 3 3 3 {'::: 3 312223 3 3 3 3 3 3 3 3 3 3 3 3 3 3  00C5A:::: 344C5A:::::/	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   >I/AI#C?3I?DIDI%E5IEIE	I'F7IFI
FI)G9IG		IG	I+H;IHIH;II/I	I/I	I//I36I3c                   ddddddi}t           j                            ||           dt          |dz            i}d	g i}t	          t          t                                ||          }t          j                    5  t          j                    5  d
D ]"}t          j
                            |d            #|                     |           t          d          }t          |dz                                            }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            n# 1 swxY w Y   t'          j        t*          d          5  t          d           d d d            n# 1 swxY w Y   t'          j        t*          d          5  t          d           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )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11!3x%'7#8#89BZ
#CLL':FF "" 	6 	6H$=$?$? 	6 	6- + +T****)))//CHu,557788HX&&&5B;;;; 233C5B;;;; 677C5B;;;;{&999 2 201112 2 2 2 2 2 2 2 2 2 2 2 2 2 2 {2LMMM 2 201112 2 2 2 2 2 2 2 2 2 2 2 2 2 2 {2RSSS 6 645556 6 6 6 6 6 6 6 6 6 6 6 6 6 6-	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6s   ICH*3FH*FH*FH*5GH*GH*GH*7HH*HH*HH*I*H.	.I1H.	2II	Ic                   dddddddidii}t           j                            ||	           dt          |d
z            i}t	          t          t                                |i           }t          j                    5  t          j                    5  dD ]"}t          j
                            |d           #|                     |           t          d          }|j        dk    sJ t          d          }|j        dk    sJ t!          j        t$                    5  t          d           ddd           n# 1 swxY w Y   ddd           n# 1 swxY w Y   ddd           dS # 1 swxY w Y   dS )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  sJ    #%!)%-#X#	 	
 	%111C; 6778#CLL'2>> "" 	= 	=H$=$?$? 	= 	= + + T****)))"#<==F8r>>>>&'9::J<2%%%%{++ = =;<<<= = = = = = = = = = = = = = ='	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	=s[    E+BE D<0E<E  EE EE+E	E+E	E++E/2E/N)r   r   r   __doc__r   r   r   r   r  r  r  r!  r%  r(  r0  r   r'   r%   r   r     s         
  
* * *@= = =.     6)  )  ) V"  "  " H% % %*( ( (0' ' 'R'6 '6 '6R*= *= *= *= *=r'   r   c           
     N   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                            ||            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 dS )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   r8  r9  r:  )a.b.ca.b.c.x.y.z	m.n.o.p.q)r   a.br;  	a.b.c.x.yr<  r6  zd.er7  f.gzf.g.hr=  r   r6  r7  )r   r;  r<  r6  r7  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_rootsrH    s    "8,WEE$M8+DEEC-345+!<0%{3 E KeH--- " K
  H  +x@@EC  X'((8i/00C  C  M122      
T"8U3344	5	5B#u	%e,,	-	-BPPPPP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
                            ej        dk    d          e	j
                            de                                          d                         ZdS )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,   rM  r-   z                [tool.setuptools]
                packages = ["mypkg", "mypkg.subpackage"]

                [tool.setuptools.package-dir]
                "mypkg.subpackage" = "other"
                r   )r)   r   rL  )r+   r,   rM  r(   r8  )r   rL  )flat-layout
src-layoutcustom-layout	namespacer.   r/   r0   layoutc                j   t          d||| j        |         g|R  \  }}d}|                    ddt          |          g          }d|v sJ d}	|                    ddt          |	          g          }d|v sJ d}
|                    ddt          |
          g          }d	|v sJ t	          |                    d
                    }t	          |                    d                    }t	          |                    d                    }|                    dd           |                    dd           |                    dd           |                    ddt          |	          g          }d|vsJ d|v sJ |                    ddt          |
          g          }d	|vsJ d|v sJ d S )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"))
        rK  
**/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   rS  r&   rM   _cmd_import_errorr   cmd_get_varscmd_get_resourcer   r   resource_files                 r%   test_editable_installz*TestOverallBehaviour.test_editable_install  s    %T8T]6%:
=J
 
 


 hh$/?(@(@ABB,3333 hh$|(<(<=>>#~~~~ hh$/?(@(@ABB#### GLL..//GLL..//W\\*@AABB
W555g666  ' BBBhh$|(<(<=>>c!!!!3hh$/?(@(@ABBC''''$$$$$$r'   N)r   r   r   	PYPROJECTr   r   rN  __annotations__rY  rf   r   xfailr   r   r   keysr_  r   r'   r%   rJ  rJ  C  s        I !&++}-!!%%2 
 
	# #K      #$fY//"=1[12	
 
 %fY//f 	 #=1!&w/	:  !),7#
 
( %fY//"=1*73I>"-g"6|"D 	

 

7& &HP [s|x/8NOO[Xx}}770% 0% 87 PO0% 0% 0%r'   rJ  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	d
S )TestLinkTreerP  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        |           t	          |          5  d}t          ddi          }|                                 t                      }|dz  }|dz  }|                                 |                                 |	                    d          }d|_
        t          |          |_        |                                 |                                }|                                }	t!          ||||          }
 |
|||	           t#          |                    d	                    }|d
z  }t'          ||           t#          |                    d          d           J t#          |                    d          d           J t#          |                    d          d           J t#          |                    d          d           J 	 d d d            d S # 1 swxY w Y   d S )Nr5   zmypkg-3.14159r   r   z.auxz.buildbuild_pyTrU  zsrc/mypkg/mod1.pyz**/subpackagerV  rW  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   rh  outputsoutput_mapping	make_treer   r   s                r%   test_generated_treez TestLinkTree.test_generated_tree  sH   $*X6668__ 	O 	O"D <==D##%%%FFEV#Cx'EIIKKKKKMMM++J77H%)H"!$UH%%'''**,,G%88::N!$c599IIeWn555..//D"55H4***11488@@@..55===!788$??GGG!>??FFNNNN;	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	Os   F>HH	Hc                2   ddg}t          d||| j        g|R   |                    g d          }d|v sJ d}|                    ddt          |          g          }d	|v sJ d
}|                    ddt          |          g          }d|v sJ d|v sJ d S )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 directoryrf  )rX  ri  rH   r   )rr   rK   rL   r   r   r[  r]  s          r%   test_strict_installz TestLinkTree.test_strict_install  s    #%;<xCdCCCChhSSSTTs{{{{ hh$/?(@(@ABB0C7777 hh$/?(@(@ABB*c1111)S000000r'   N)
r   r   r   r   rJ  rY  ri  r   rx  r|  r   r'   r%   re  re    s        H)2<@AAE	
vv
	     9>E%L45 O  O  OD1 1 1 1 1r'   re  z9ignore:.*compat.*:setuptools.SetuptoolsDeprecationWarningc                ~   ddg}t           j        d         }t          d|| |g|R   |                    g d          }d|v sJ t	          t          |                     }dD ]-}t	          |                    dd	|g                    }||v sJ .d
}|                    dd	t          |          g          }d|v sJ d S )Nr!   zeditable-mode=compatrQ  r(   rz  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)
    r{  )rJ  rY  rX  rH   comparable_pathrF   r   )rK   rL   r   r2   r   expected_pathrN   s          r%   test_compat_installr    s      !78D )/:EGT8U:T::::
((OOO
P
PC3;;;;#CMM22M $ $
 dhh$'<==>>#####C ((HdF3KK0
1
1C,333333r'   c                P   t          d          t          d          t          d          dddddid	}|                    g d
           t          j        d          5  t	          d|| |g|R   ddd           n# 1 swxY w Y   |                    g d          }d|v sJ dS )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(   r8  )r7   r8   r9   r:   pbrz0.42)PBR_VERSIONr(   N)r7   rS   zimport mypkg.hellozHello world!)r   rH   r   environmentrX  )rK   rL   r&   r2   r   s        r%   test_pbr_integrationr  /  sJ    !
 
 
 
 	
 	
 /
 
 56= E@ 	HH666777		&	1	1	1 H HxGGGGGH H H H H H H H H H H H H H H ((999
:
:CS      s   !A>>BBc                  P    e Zd ZdZi ej        d         d ed          iZd ZdS )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.
    rO  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 |                    g d          }d|v sJ dS )z>Ensure that errors in custom build_py are reported as warningsr(   r   zValueError: TEST_RAISErz  ra   N)rX  ri  rH   )rr   rK   rL   rZ  r   s        r%   test_safeguarded_from_errorsz.TestCustomBuildPy.test_safeguarded_from_errorsy  sh     !$$*EE3-4444'3....hhSSSTTs{{{{{{r'   N)	r   r   r   r1  rJ  rY  r   ri  r  r   r'   r%   r  r  Z  sd         

'
6FF
 
 E$    r'   r  c                      e Zd Zd Zd ZdS )TestCustomBuildWheelc                `    |                     d          } G d d|          }||j        d<   d S )Nbdist_wheelc                       e Zd Z fdZ xZS )ETestCustomBuildWheel.install_custom_build_wheel.<locals>.MyBdistWheelc                |    | j                             d          rd}t                                                      S )Nzmacosx-zmacOS platform)	plat_namer   superget_tag)rr   rZ  	__class__s     r%   r  zMTestCustomBuildWheel.install_custom_build_wheel.<locals>.MyBdistWheel.get_tag  s6     >,,Y77 )(Aww(((r'   )r   r   r   r  __classcell__)r  s   @r%   MyBdistWheelr    s8        ) ) ) ) ) ) ) ) )r'   r  )get_command_classcmdclass)rr   rx   bdist_wheel_clsr  s       r%   install_custom_build_wheelz/TestCustomBuildWheel.install_custom_build_wheel  sS    00??	) 	) 	) 	) 	)? 	) 	) 	) (4m$$$r'   c                   t           j                            ddi           t                      }d|_        |                                 |                     |           t          |          }|                                 |	                                 t          t          t                                          d                              }d|v sJ d S )N	module.pyrA   r3   
dist/*.whleditable)rC   rD   rE   r   r   set_defaultsr  r   ro  rH   rF   r   r   rp   )rr   
tmpdir_cwdrx   rN   
wheel_files        r%   test_access_plat_namez*TestCustomBuildWheel.test_access_plat_name  s     	;1222~~%''---T""			dffkk,778899
Z''''''r'   N)r   r   r   r  r  r   r'   r%   r  r    s2        4 4 4( ( ( ( (r'   r  c                  p    e Zd Zd Zej                            ej        dk    d          d             Z	dS )TestCustomBuildExtc                B    ddl m}  G d d|          }||j        d<   d S )Nr   )	build_extc                      e Zd ZdS )ITestCustomBuildExt.install_custom_build_ext_distutils.<locals>.MyBuildExtN)r   r   r   r   r'   r%   
MyBuildExtr    s        Dr'   r  r  )distutils.command.build_extr  r  )rr   rx   build_ext_clsr  s       r%   "install_custom_build_ext_distutilsz5TestCustomBuildExt.install_custom_build_ext_distutils  sR    JJJJJJ	 	 	 	 	 	 	 	 &0k"""r'   linuxz(compilers may fail without correct setupr0   c                   t           j                            ddi           dt          ddg          gi}t	          |          }d|_        |                                 |                     |           t          |          }|	                                 |
                                 t          t          t                                          d                              }d|v sJ d t                                          d	          D             }t          |          d
k    sJ |d         j        t#          fdt$          D                       sJ d S )Nzmodule.cr   ext_modulesmoduler3   r  r  c                (    g | ]}|j         d k    |S )z.c)suffix)r   ps     r%   r   zITestCustomBuildExt.test_distutils_leave_inplace_files.<locals>.<listcomp>  s$    HHHqqx47G7G7G7G7Gr'   zmodule.*r   r   c              3  B   K   | ]}                     |          V  d S Nr   )r   extrm   s     r%   r   zHTestCustomBuildExt.test_distutils_leave_inplace_files.<locals>.<genexpr>  s/      DD#4==%%DDDDDDr'   )rC   rD   rE   r   r   r   r  r  r   ro  rH   rF   r   r   rp   rq   rm   anyr   )rr   r  r  rx   rN   r  r2   rm   s          @r%   "test_distutils_leave_inplace_filesz5TestCustomBuildExt.test_distutils_leave_inplace_files  sK    	:r*+++Ih==>
 E""%//555T""			dffkk,778899
Z''''HHDFFKK
33HHH5zzQQx}DDDD1CDDDDDDDDDDr'   N)
r   r   r   r  rf   r   skipifr   r   r  r   r'   r%   r  r    sj        0 0 0 [(R   E E E E Er'   r  c                X   t           j                            ddi           t                      }d|_        |                                 t          |          }|                                 t          dt          fi           }t           |                      }|                    |d|           d}t          j        |          5  t          j        t          |          5  |                                 d	d	d	           n# 1 swxY w Y   d	d	d	           d	S # 1 swxY w Y   d	S )
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   ro  type	Exceptionr
   setattrrf   r  rg   r   rH   )r  rs   rx   rN   r  simulated_failureexpected_msgs          r%   test_debugging_tipsr    s   
K{H-...>>D!D


Cb99L88846GHHHBL	|	$	$  fl>&V&V&V  			                                s6   
D&D;DD	DD	DD#&D#errorc                 R    t          d          } t          | t                    sJ dS )z>Ensure _encode_pth function does not produce encoding warningsu   tkmilan_ç_utf8N)r   
isinstancebytes)contents    r%   test_encode_pthr    s.     +,,Ggu%%%%%%%r'   c                    || z  }|                                  t          j                            ||           g |d}|                    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%   rX  rX    s    oGMMOOO
KeG,,,*T*)*D
((	4is7||KdK    C C<r'   c                    d                     dt          d | D                       z             }| d         dz                      |d           dS )	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  F   K   | ]}d t          j        |          dV  dS )zsite.addsitedir()N)r   fspath)r   new_dirs     r%   r   z_addsitedirs.<locals>.<genexpr>  s8      SSw:29W#5#5:::SSSSSSr'   r   zsitecustomize.pyr>   r?   N)r   tuplerJ   )new_dirsr  s     r%   r   r     se     ii
SS(SSS
S
S	T G a[%%11'G1LLLLLr'   c                    | j         rXt          t          | j                   d           }|r6t          t	          |                                                    |k    sJ d S d S d S r  )__path__r   iterrF   r   r   )rR   r   rD   s      r%   r   r     sr    
| 9D&&-- 	9tDzz))++,,88889 9	9 	988r'   filer   r8  returnNonec                   |                                  rHt          |                                           t          |                                          k    sJ d S |                                 }|                                }|t          j                 |t          j                 k    sJ |t          j                 |t          j                 k    sJ d S r  )
is_symlinkrF   r   statST_INOST_DEV)r  r8  	file_stat
other_stats       r%   rr  rr    s     A4<<>>""c%--//&:&:::::::IIKK	ZZ\\
%DK)@@@@@%DK)@@@@@@@r'   str_with_pathrF   c                    |                                                      t          j        d                              dd          S )N/z//)lowerreplacer   sep)r  s    r%   r~  r~    s6      ((55==dCHHHr'   )r  r   r8  r   r  r  )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   rj  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   rb  r   rO   rV   rY   r[   r   r   r   rH  rJ  re  filterwarningsr  r  r  r  r  r  r  rX  r   r   rr  r~  r   r'   r%   <module>r     s   " " " " " " 				       



       # # # # # # 2 2 2 2 2 2                                              B B B B B B
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 ) ( ( ( ( ( * * * * * * < < < < < < " " " " " " " " $ $ $ $ $ $ ),---  .- f	 < 6	  egg(6!6
 
 "6	 	 %/
 
SD DN 7  3<8+4JKK272J 122 > >  LK>2%* %* %*P#( #( #(L?; ?; ?; ?; ?; ?; ?; ?;Db0 b0 b0 b0 b0 b0 b0 b0J%* %* %*PU= U= U= U= U= U= U= U=p
.Q .Q .Qbu% u% u% u% u% u% u% u%pP1 P1 P1 P1 P1 P1 P1 P1f WXX4 4 YX4@(! (! (!V' ' ' ' ' ' ' 'T( ( ( ( ( ( ( (:E E E E E E E E@  $ G$$& & %$&	 	 	
M 
M 
M 9 9 9A A A AI I I I I Ir'   