
    vKg4X                     l   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r	S SK
r
S SKJr  S SKrS SKJr  S SKJrJr  S SKJr  S S	KJr  S
SKJr  S
SKJrJrJr  S
SKJr  S SKr  " S S5      r! " S S5      r" " S S5      r# " S S5      r$ " S S5      r% " S S5      r&S r'S r(S r)S r*S r+S r,S  r-S! r.g)"    N)ConfigParser)product)cast)Path)sdist)find_package_pathfind_parent_package)Distribution)PackageDiscoveryError   )quiet)get_sdist_membersget_wheel_membersrun)DALSc                        \ rS rSrS rS rSrg)TestFindParentPackage   c                     US-  R                  SSS9  US-  R                  5         US-  R                  5         / SQn[        USS0U5      S	:X  d   eg )
Nzsrc/namespace/pkg/nestedTexist_okparentsz$src/namespace/pkg/nested/__init__.pyzsrc/namespace/pkg/__init__.py)	namespacenamespace.pkgznamespace.pkg.nested srcr   mkdirtouchr	   )selftmp_pathpackagess      f/var/www/highfloat_scraper/venv/lib/python3.13/site-packages/setuptools/tests/test_config_discovery.pytest_single_package)TestFindParentPackage.test_single_package   s_    	.	.55tT5R	:	:AAC	3	3::<I"8b%[(CVVV    c                     / SQnU H0  nUSU 3-  R                  SSS9  USU S3-  R                  5         M2     [        USS0U5      b   eg )N)pkgpkg1pkg2src/Tr   z/__init__.pyr   r   r   )r    r!   multiplenames       r#   test_multiple_toplevel,TestFindParentPackage.test_multiple_toplevel!   sf     +D$tf%,,dD,I$tfL1188:  #8b%[(CKKKr&    N)__name__
__module____qualname____firstlineno__r$   r.   __static_attributes__r0   r&   r#   r   r      s    WLr&   r   c                      \ rS rSrSrSS0S/S.SSS00S	S/0S
S/0S	SS/00 0 0 0 S.	rSS/SS/SS/S/S/S.rS r\R                  R                  S\R                  5       5      S 5       r\R                  R                  S\R                  5       5      S 5       r\" S5      \" S5      \" S5      \" S5      S.r\R                  R                  S \" / S!QS	S
/\R                  5       5      5      S" 5       r\R                  R                  S#S$/S14S%/SS&14S'/SS(14S)/1 S*k4S+/SS,14S-/S14S./S14/5      S/ 5       r\R                  R                  S0S1/S2//5      S3 5       rS4 rS5 rS6 rS7rg8)9 TestDiscoverPackagesAndPyModules+   zMake sure discovered values for ``packages`` and ``py_modules`` work
similarly to explicit configuration for the simple scenarios.
r   r   r(   )package_dirr"   r9   libr"   
py_modulesnszns.pkg)	zexplicit-srczvariation-libzexplicit-flatzexplicit-single_modulezexplicit-namespacezautomatic-srczautomatic-flatzautomatic-single_modulezautomatic-namespacesrc/pkg/__init__.pyzsrc/pkg/main.pyzlib/pkg/__init__.pyzlib/pkg/main.pyzpkg/__init__.pyzpkg/main.pypkg.pyzns/pkg/__init__.py)r   r:   flatsingle_moduler   c                 l    UR                  S5      u    p#U R                  U   nU R                  U   nXE4$ )N-)	partitionFILESOPTIONS)r    circumstance_layoutfilesoptionss         r#   	_get_info*TestDiscoverPackagesAndPyModules._get_infoF   s:    #--c21

6",,|,~r&   rF   c                 6  ^	 U R                  U5      u  p4[        XU5        [        X5      u  pVUR                  R                   Vs/ sH"  owR                  [        R                  S5      PM$     nnU H  m	[        U	4S jU 5       5      (       a  M   e   g s  snf )N/c              3   B   >#    U H  oR                  T5      v   M     g 7fN)endswith).0ffiles     r#   	<genexpr>GTestDiscoverPackagesAndPyModules.test_sdist_filelist.<locals>.<genexpr>U   s     :Azz$''s   )	rK   _populate_project_dir_run_sdist_programaticallyfilelistrI   replaceossepany)
r    r!   rF   rI   rJ   rG   cmdrS   manifestrT   s
            @r#   test_sdist_filelist4TestDiscoverPackagesAndPyModules.test_sdist_filelistL   s}    5hw7+H>47LL4F4FG4FqIIbffc*4FGD::::::  Hs   (Bc                 t   U R                  U5      u  p4[        XU5        US-  R                  5         US-  R                  5         US-  R                  5         US-  R                  5         US-  R                  5         US-  R                  5         US-  R                  5         US-  R                  5         [	        U5        [        [        UR                  S	5      5      5      n[        S
5        [        SR                  U5      5        U[        U5      :  d   e[        [        UR                  S5      5      5      n[        S5        [        SR                  U5      5        U Vs1 sH$  owR                  SS5      R                  SS5      iM&     nnXh:  d   eU H  n	SU;  d   eSU;  a  M   e   g s  snf )Nbuildz	build/libzbuild/bdist.linux-x86_64z build/bdist.linux-x86_64/file.pyzbuild/lib/__init__.pyzbuild/lib/file.pydistzdist/file.pydist/*.tar.gz~~~~~ sdist_members ~~~~~

dist/*.whl~~~~~ wheel_members ~~~~~r+   r   lib/)rK   rW   r   r   
_run_buildr   nextglobprintjoinsetr   rZ   )
r    r!   rF   rI   rJ   sdist_fileswheel_filesrS   
orig_filesrT   s
             r#   test_project-TestDiscoverPackagesAndPyModules.test_projectW   s   5hw7 
G	""$	K	&&(	.	.557	6	6==?	+	+224	'	'..0	F	!!#	N	"))+8'X]]?-K(LM)*dii$%c%j((('X]]<-H(IJ)*dii$%INOAii+33FB?
O(((  D%'''&&&  	 Ps   (*F5z
            [metadata]
            name = myproj
            version = 0.0.0

            [options]
            {param} =
            z
            __import__('setuptools').setup(
                name="myproj",
                version="0.0.0",
                {param}=[]
            )
            z
            [build-system]
            requires = []
            build-backend = 'setuptools.build_meta'

            [project]
            name = "myproj"
            version = "0.0.0"

            [tool.setuptools]
            {param} = []
            zv
            [build-system]
            requires = []
            build-backend = 'setuptools.build_meta'
            )	setup.cfgsetup.pypyproject.tomltemplate-pyproject.toml)config_fileparamrF   )rv   rw   rx   c                    U R                   U   / SQ-   n[        X0 5        US:X  a  UR                  SS5      nO$U R                  S   nUS-  R	                  USS9  UnU R                  U   R                  US9nX-  R	                  USS9  [        U0 5      n	[        X5      / :X  d   eS	S
S.U   n
[        X5      b   eg )N)zmod.pyzother.pyr=   rx   rG   rB   ry   utf-8encoding)r{   r"   r;   )r;   r"   )rD   rW   rZ   PURPOSEFULLY_EMPY
write_textformat	_get_distgetattr)r    r!   rz   r{   rF   rI   template_param	pyprojectconfigrd   others              r#   test_purposefully_empty8TestDiscoverPackagesAndPyModules.test_purposefully_empty   s     

<(+XXhr2**"]]34N ../HII((44Y4Q"N''4;;.;Q		++FW+E2& t#r))))|DUKt#+++r&   )extra_filespkgszvenv/bin/simulate_venvzpkg-stubs/__init__.pyiz	pkg-stubszother-stubs/__init__.pyizother-stubsz namespace-stubs/pkg/__init__.pyi>   r(   namespace-stubsnamespace-stubs.pkgz&namespace-stubs/pkg-stubs/__init__.pyir   z_hidden/file.pyznews/finalize.pyc                     U R                   S   U-   n[        X0 5        [        U0 5      n[        UR                  5      U:X  d   eg )Nr?   )rD   rW   r   rp   r"   )r    r!   r   r   rI   rd   s         r#   !test_flat_layout_with_extra_filesBTestDiscoverPackagesAndPyModules.test_flat_layout_with_extra_files   sD    * 

6"[0hr22&4==!T)))r&   r   zother/__init__.pyzother/finalize.pyc                     U R                   S   U-   n[        X0 5        [        R                  " [        SS9   [        U0 5        S S S 5        g ! , (       d  f       g = f)Nr?   multiple (packages|modules)matchrD   rW   pytestraisesr   r   )r    r!   r   rI   s       r#   +test_flat_layout_with_dangerous_extra_filesLTestDiscoverPackagesAndPyModules.test_flat_layout_with_dangerous_extra_files   sH     

6"[0hr2]]08UVh# WVVs   A
Ac                     U R                   S   S/-   n[        X0 5        [        U0 5      n[        UR                  5      S1:X  d   eg )Nr@   zinvalid-module-name.pyr(   )rD   rW   r   rp   r;   )r    r!   rI   rd   s       r#   #test_flat_layout_with_single_moduleDTestDiscoverPackagesAndPyModules.test_flat_layout_with_single_module   sH    

?+/G.HHhr22&4??#w...r&   c                     U R                   S   S/-   n[        X0 5        [        R                  " [        SS9   [        U0 5        S S S 5        g ! , (       d  f       g = f)Nr@   zvalid_module_name.pyr   r   r   )r    r!   rI   s      r#   &test_flat_layout_with_multiple_modulesGTestDiscoverPackagesAndPyModules.test_flat_layout_with_multiple_modules   sJ    

?+/E.FFhr2]]08UVh# WVVs   A
Ac                 x   SSK Jn  SnUS-  R                  [        U5      SS9  US-  R	                  5         [
        R                  R                  5       R                  U5         UR                  S5        S	S	S	5        [        [        UR                  S
5      5      5      nSU;   d   eg	! , (       d  f       N:= f)zRegression for issue 3692r   )
build_metaz%[project]
name = "test"
version = "1"rx   r}   r~   zfoo.py.Nz*.whl)
setuptoolsr   r   r   r   jaracopathDirectoryStackcontextbuild_wheelr   rl   rm   )r    r!   r   r   rr   s        r#   %test_py_modules_when_wheel_dir_is_cwdFTestDiscoverPackagesAndPyModules.test_py_modules_when_wheel_dir_is_cwd   s    )=		$	$00i70S	H	##%[['')11(;""3' < (X]]7-C(DE;&&&	 <;s   %B++
B9r0   N)r1   r2   r3   r4   __doc__rE   rD   rK   r   markparametrizekeysr`   rt   r   r   r   r   r   r   r   r   r   r5   r0   r&   r#   r7   r7   +   sM    *,U%IB;
 %ug.#/%"9)D(+;<#%!G &'89%'89"M2"*+E [[^W\\^<; =; [[^W\\^<' ='B 	
 
 
 $($
E)V [[07&JJL	
,,, [[&'%1&'%)=>()E=+AB 44A ::)*
   5'* !E7+	
(*)(* [[ ! !	
$$/$'r&   r7   c                       \ rS rSrSrS/S/SS/SS/S	/S
/S.r\R                  R                  S\R                  5       5      S 5       r
S rSrg)TestNoConfigi  z0.0.0zsrc/pkg1.pyzsrc/pkg2/__init__.pyzsrc/pkg3/__init__.pyzsrc/pkg3-stubs/__init__.pyzpkg4/__init__.pyzpkg4-stubs/__init__.pyzsrc/ns/nested/pkg1/__init__.pyzns/nested/pkg2/__init__.py)r)   r*   pkg3pkg4zns.nested.pkg1zns.nested.pkg2examplec                 z    [        XR                  U   0 5        [        U0 5      nUR                  5       U:X  d   eg rP   )rW   EXAMPLESr   get_name)r    r!   r   rd   s       r#   test_discover_nameTestNoConfig.test_discover_name  s5    hg(>C2&}}')))r&   c                     S/n[        X0 5        [        US5        USU R                   S3-  nUR                  5       (       d   eg )Nzsrc/ns/nested/pkg/__init__.py--sdistzdist/ns_nested_pkg-z.tar.gz)rW   rk   DEFAULT_VERSIONis_file)r    r!   rI   	dist_files       r#   test_build_with_discovered_name,TestNoConfig.test_build_with_discovered_name  sN    01hr28Y'!4T5I5I4J'RR	  """"r&   r0   N)r1   r2   r3   r4   r   r   r   r   r   r   r   r   r5   r0   r&   r#   r   r     si    O '(')EF#%=>;<78H [[Y8* 9*
#r&   r   c                   t    \ rS rSr\R
                  R                  SS0 4SSSS0S.4/5      S 5       rS	 rS
r	g)TestWithAttrDirectivei  )folderoptsr   r:   zfind:where)r"   packages.findc                 @   U S3S/n[        XU5        US-  R                  SS9nUSSS00SSU-   0n[        R                  R	                  XaS	9  [        U0 5      nUR                  5       S:X  d   eUR                  5       S
:X  d   eUR                  (       d   e[        SUR                  U5      n[        R                  R                  U5      (       d   eU[        U5      R                  5       ;   d   e[        US5        US-  n	U	R                  5       (       d   eg )Nz/pkg/__init__.pyrv   r}   r~   r(   __init__.pyversion = 42z'[metadata]
version = attr: pkg.version
prefix42r   zdist/pkg-42.tar.gz)rW   	read_textr   r   rc   r   r   get_versionr9   r   r[   existsr   partsrk   r   )
r    r!   r   r   rI   r   	overwriterd   package_pathr   s
             r#   test_setupcfg_metadata,TestWithAttrDirective.test_setupcfg_metadata  s)    8+,k:ht4[(33W3EU]N;<DvM
	 	)52&}}%'''!T)))(0@0@(Kww~~l++++l+1133338Y'33	  """"r&   c                     [        US/0 5        SSS00SS.n[        R                  R                  X!S9  [	        U0 5      nUR                  5       S:X  d   eUR                  S	S
0:X  d   eg )Nr=   r(   r   r   zh[project]
name = 'pkg'
dynamic = ['version']
[tool.setuptools.dynamic]
version = {attr = 'pkg.version'}
r   rx   r   r   r   r   )rW   r   r   rc   r   r   r9   )r    r!   r   rd   s       r#   test_pyproject_metadata-TestWithAttrDirective.test_pyproject_metadata<  s    h)>(?D M>:;P
	 	)52&!T)))B;...r&   r0   N)
r1   r2   r3   r4   r   r   r   r   r   r5   r0   r&   r#   r   r     sI    [[BKGU;KLM	
##./r&   r   c                   &    \ rS rSrS rS rS rSrg)TestWithCExtensioniM  c                 `    / SQn[        X0 5        SnUS-  R                  [        U5      SS9  g )N)zbenchmarks/file.pyzdocs/Makefilezdocs/requirements.txtzdocs/source/conf.pyzproj/header.hzproj/file.pyzpy/proj.cppzpy/other.cppz
py/file.pyzpy/py.typedzpy/tests/test_proj.pyz
README.rsta^  
            from setuptools import Extension, setup

            ext_modules = [
                Extension(
                    "proj",
                    ["py/proj.cpp", "py/other.cpp"],
                    include_dirs=["."],
                    language="c++",
                ),
            ]
            setup(ext_modules=ext_modules)
        rw   r}   r~   rW   r   r   )r    r!   rI   setup_scripts       r#    _simulate_package_with_extension3TestWithCExtension._simulate_package_with_extensionN  s;    
 	hr2 
J	**4+=*Pr&   c                    U R                  U5        SnUS-  R                  [        U5      SS9  SnUS-  R                  [        U5      SS9  [        U0 5      nUR	                  5       S:X  d   eUR                  5       S:X  d   eUR                  b   eUR                  b   e[        UR                  5      S
:X  d   eUR                  S   R                  S:X  d   eg	)zxEnsure that auto-discovery is not triggered when the project is based on
C-extensions only, for backward compatibility.
zr
            [build-system]
            requires = []
            build-backend = 'setuptools.build_meta'
        rx   r}   r~   zQ
            [metadata]
            name = proj
            version = 42
        rv   projr   Nr   r   )r   r   r   r   r   r   r;   r"   lenext_modulesr-   )r    r!   r   setupcfgrd   s        r#   *test_skip_discovery_with_setupcfg_metadata=TestWithCExtension.test_skip_discovery_with_setupcfg_metadatao  s     	--h7	
 
$	$00i70S
 
K	++DNW+M2&}}&(((!T)))&&&}}$$$4##$)))"''6111r&   c                     U R                  U5        SnUS-  R                  [        U5      SS9  [        R                  " [
        SS9   [        U0 5        SSS5        g! , (       d  f       g= f)af  When opting-in to pyproject.toml metadata, auto-discovery will be active if
the package lists C-extensions, but does not configure py-modules or packages.

This way we ensure users with complex package layouts that would lead to the
discovery of multiple top-level modules/packages see errors and are forced to
explicitly set ``packages`` or ``py-modules``.
zT
            [project]
            name = 'proj'
            version = '42'
        rx   r}   r~   r   r   N)r   r   r   r   r   r   r   )r    r!   r   s      r#   0test_dont_skip_discovery_with_pyproject_metadataCTestWithCExtension.test_dont_skip_discovery_with_pyproject_metadata  s_     	--h7	
 
$	$00i70S]]08UVh# WVVs   	A
A-r0   N)r1   r2   r3   r4   r   r   r   r5   r0   r&   r#   r   r   M  s    QB28$r&   r   c                      \ rS rSrS rSrSrSr\R                  R                  SSS\" \5      04SS	\" \5      04S
S\" \5      04S
S	\" \5      04S
S\" \5      \" S5      -   04S
S	\" \5      \" S5      -   04/5      S 5       rSrg)TestWithPackageDatai  c                 t    U S3U S3U S3/n[        X0 5        SnUS-  R                  [        U5      SS9  g )Nz/proj/__init__.py/proj/file1.txt/proj/nested/file2.txtz/
            global-include *.py *.txt
        zMANIFEST.inr}   r~   r   )r    r!   src_rootrI   r_   s        r#   !_simulate_package_with_data_files5TestWithPackageData._simulate_package_with_data_files  sZ    j)*j(j./

 	hr2 
M	!--d8nw-Or&   zd
    [metadata]
    name = proj
    version = 42

    [options]
    include_package_data = True
    z8
    [project]
    name = "proj"
    version = "42"
    z:
    [tool.setuptools]
    package-dir = {"" = "src"}
    )r   rI   r   rv   rx   r   z
                        packages = find:
                        package_dir =
                            =src

                        [options.packages.find]
                        where = src
                        zv
                        [tool.setuptools]
                        package-dir = {"" = "src"}
                        c                 0   [         R                  R                  U[        U5      S9  U R	                  X5        [
        R                  R                  U S35      R                  [
        R                  S5      [
        R                  R                  U S35      R                  [
        R                  S5      1n[        U5        [        [        UR                  S5      5      5      n[        S5        [        SR                  U5      5        XT:  d   e[        [        UR                  S5      5      5      n[        S	5        [        SR                  U5      5        U Vs1 sH$  owR                  S
S5      R                  SS5      iM&     nnXh:  d   egs  snf )zY
Make sure auto-discovery does not affect package include_package_data.
See issue #3196.
r   r   rN   r   re   rf   rg   rh   ri   r+   r   rj   N)r   r   rc   strr   r[   normpathrZ   r\   rk   r   rl   rm   rn   ro   r   )	r    r!   r   rI   expectedrq   rr   rS   rs   s	            r#   test_include_package_data-TestWithPackageData.test_include_package_data  sC   T 	%H6..xB GGz9:BB2663OGGz)?@AII"&&RUV

 	8'X]]?-K(LM)*dii$%&&&'X]]<-H(IJ)*dii$%IQRAii+33FB?
R((( Ss   *Fr0   N)r1   r2   r3   r4   r   EXAMPLE_SETUPCFGEXAMPLE_PYPROJECTPYPROJECT_PACKAGE_DIRr   r   r   r   r   r5   r0   r&   r#   r   r     s    P
 [[;%5 678#T*;%<=>[$'7"89:%t,='>?@&6!7	
"" $d+<&='+!	
$J)K$J)r&   r   c                     / SQn[        X0 5        [        0 5      n[        5       Ul        UR	                  5         UR
                  b   eUR                  b   eg )N)zdir1/__init__.pyzdir2/__init__.pyzfile.py)rW   r
   objectconfigurationset_defaultsr;   r"   )r!   rI   rd   s      r#   (test_compatible_with_numpy_configurationr      sU    E
 (2.DD??"""==   r&   c                     [         R                  R                  SS05        [        0 5      nS/Ul        UR                  5         UR                  5         UR                  5       S:X  d   eg )Nr>   r   z--namer(   )r   r   rc   r
   script_argsr   parse_command_liner   )
tmpdir_cwdrd   s     r#   $test_name_discovery_doesnt_break_clir    sX    
KKxn%D zD==?e###r&   c                 x  ^^ SSS00[        S5      S.n[        R                  R                  U5        [	        0 5      mTR
                  R                  mUU4S jnUR                  TR
                  SU5        TR                  5         TR                  5       S:X  d   e[        TR                  5      S1:X  d   eg	)
zAccording to #3545 it seems that ``name`` discovery is running,
even when the project already explicitly sets it.
This seems to be related to parsing of dynamic versions (via ``attr`` directive),
which requires the auto-discovery of ``package_dir``.
r(   r   z__version__ = 42
z
            [project]
            name = "myproj"  # purposefully different from package name
            dynamic = ["version"]
            [tool.setuptools.dynamic]
            version = {"attr" = "pkg.__version__"}
            r   c                  @   > T" 5         T R                  5       S:X  d   eg )Nmyproj)r   )rd   orig_analyse_names   r#   spy_analyse_nameJtest_preserve_explicit_name_with_dynamic_version.<locals>.spy_analyse_name/  s     	}}(***r&   analyse_namer   N)r   r   r   rc   r
   r   r  setattrparse_config_filesr   rp   r"   )r  monkeypatchrI   r	  rd   r  s       @@r#   0test_preserve_explicit_name_with_dynamic_versionr    s     M#78
 
	E KKeD))66+ ))>;KL%%%t}}%(((r&   c                    ^  SSSS.n[         R                  R                  UT S9  [        T U5        U 4S jU 5       nU H-  nUR                  R                  SSS9  UR                  5         M/     g )	Nz$import setuptools
setuptools.setup()z# Example PackagezCopyright (c) 2018)rw   z	README.mdLICENSEr   c              3   ,   >#    U H
  nTU-  v   M     g 7frP   r0   )rR   rS   roots     r#   rU   (_populate_project_dir.<locals>.<genexpr>F  s     %u!TAXus   Tr   )r   r   rc   _write_setupcfgparentr   r   )r  rI   rJ   basicpathsr   s   `     r#   rW   rW   ;  sl    
 <('E
 KKeD)D'"%u%E46

 r&   c                    U(       d  [        S5        g [        5       nUR                  S5        UR                  5        H  u  p4US:X  a-  UR                  SU 35        USU 3   R	                  U5        M8  [        U[        5      (       a  SR                  U5      US   U'   Mf  [        U[        5      (       a3  SR                  S UR                  5        5       5      nSU-   US   U'   M  [        U5      US   U'   M     [        U S-  S	S
S9 nUR                  U5        S S S 5        [        S5        [        U S-  R                  S
S95        g ! , (       d  f       N5= f)Nz~~~~~ **NO** setup.cfg ~~~~~rJ   r   zoptions.z, rg   c              3   4   #    U H  u  pS U SU 3v   M     g7f)	z = Nr0   )rR   kvs      r#   rU   "_write_setupcfg.<locals>.<genexpr>Y  s     !K]TQBqcQC.]s   rv   wr}   r~   z~~~~~ setup.cfg ~~~~~)rn   r   add_sectionitemsupdate
isinstancelistro   dictr   openwriter   )r  rJ   r   keyvalue	str_valuerS   s          r#   r  r  L  s5   ,-~H#mmo
/!  8C5!12xu%&--e4t$$'+yy'7HY$t$$		!KU[[]!KKI'+i'7HY$'*5zHY$ & 
d[ #	8Aq 
9	
!"	4+
(
('
(
:; 
9	8s   E
Ec                 \    [         R                  SSS/UQ[        U 5      Pn[        USS0S9$ )Nz-mrc   z--no-isolationDISTUTILS_DEBUGr   )env)sys
executabler   r   )r   flagsr^   s      r#   rk   rk   c  s6    >>4*:
NU
NCI
NCs*B/00r&   c           
         SR                  [        R                  R                  U 5      5      nU S-  nUR	                  5       (       aB  [        U 5         [        [        [        R                  R                  S0 SS95      nS S S 5        O[        U5      nUWl        SUl        [        U 5         UR                  5         S S S 5        UR                  5         U$ ! , (       d  f       NR= f! , (       d  f       N1= f)NrN   rw   init)
stop_after)ro   r[   r   splitr   r   r   r
   	distutilscore	run_setupr   script_namer  r   )	dist_pathattrsr  scriptrd   s        r#   r   r   h  s    88BGGMM),-D#F}})_((RF(KD _ E"DM!D	i! 
 	K _ 
s   .C/C+
C(+
C9c                 z   [        X5      n[        U5      nUR                  5         UR                  R                  (       d  UR                  R
                  (       d   e[        5          [        U 5         UR                  5         S S S 5        S S S 5        X#4$ ! , (       d  f       N= f! , (       d  f       X#4$ = frP   )	r   r   ensure_finalizeddistributionr"   r;   r   r   r   )r9  r:  rd   r^   s       r#   rX   rX   ~  s    Y&D
+C$$(8(8(C(CCC	$y/	 " 9 "/ 9s$   )B*5BB*
B'	#B**
B:)/r[   r.  configparserr   	itertoolsr   typingr   jaraco.pathr   r   r   r   r   setuptools.command.sdistr   setuptools.discoveryr   r	   setuptools.distr
   setuptools.errorsr   contextsr   integration.helpersr   r   r   textwrapr   distutils.corer5  r   r7   r   r   r   r   r   r  r  rW   r  rk   r   rX   r0   r&   r#   <module>rK     s    	 
 %       * G ( 3  J J  L L&T' T'n# #6-/ -/`O$ O$d^) ^)B!$!)H"<.1
,	r&   