
    7f              
       J   d dl Z d dlZd dlZd dlZd dlZdej        v ZdddZd Zd#dZ	d$d	Z
ej                            ej        d
k    d          Zed             Zd Zej                            dd          d             Zd Zd ZdZej                            d ej        dde           ej        dde           ej        dde          dddg          d             ZdZej                            d d! ej        de          g          d"             ZdS )%    N__pypy__Tzutf-8)textencodingc                 b    | r,t          j                    dk    rt          j        d         | d<   | S )z
    On Windows, SYSTEMROOT must be present to avoid

    > Fatal Python error: _Py_HashRandomization_Init: failed to
    > get random numbers to initialize Python
    Windows
SYSTEMROOT)platformsystemosenvironenvs    f/home/feoh/.local/pipx/shared/lib/python3.11/site-packages/setuptools/tests/test_distutils_adoption.pywin_srr      s4      5x  I--J|4LJ    	distutilsc                      dj         di t                      }dd|g} | j        |fdt          |          it          |S )Nz+import {imports}; print(distutils.__file__)python-cr    )formatlocalsrunr   _TEXT_KWARGS)venvimportsr   kwargspy_cmdcmds         r   find_distutilsr       sU    A:AMMFHHMMFT6
"C48CCCVC[[CLCFCCCr   c           	          t          j        d          }dd|g}t           | j        |fdt	          |          it
                    S )Nz
        import sys
        is_distutils = lambda finder: finder.__class__.__name__ == "DistutilsMetaFinder"
        print(len(list(filter(is_distutils, sys.meta_path))))
        r   r   r   )textwrapdedentintr   r   r   )r   r   r   r   s       r   count_meta_pathr%       sS    _	 F T6
"Cxtx=====>>>r   )      z-stdlib distutils is removed from Python 3.12+)reasonc                     t          d          }| j        t          | |                              t          j                  vsJ t          | |          dk    sJ dS )z;
    Ensure stdlib distutils is used when appropriate.
    stdlibSETUPTOOLS_USE_DISTUTILSr   r   Ndictnamer    splitr   sepr%   r   r   s     r   test_distutils_stdlibr3   2   sh    
 
1
1
1C9N4S999??GGGGGG4S)))Q......r   c                     t          d          }t          | d|          }| j        |                    t          j                  v sJ t          | |          dk    sJ dS )z:
    Ensure local distutils is used when appropriate.
    localr+   zsetuptools, distutils)r   r   r      N)r.   r    r/   r0   r   r1   r%   )r   r   locs      r   $test_distutils_local_with_setuptoolsr8   <   sn     
0
0
0C
'>C
H
H
HC9		"&))))))4S)))Q......r   IS_PYPYz!pypy imports distutils on startupc                     t          d          }| j        t          | |                              t          j                  v sJ t          | |          dk    sJ dS )zZ
    Even without importing, the setuptools-local copy of distutils is
    preferred.
    r5   r+   r   r6   Nr-   r2   s     r   test_distutils_localr;   F   sh     
0
0
0C9t555;;BFCCCCCC4S)))Q......r   c                 4    g d} | j         |fi t           dS )zD
    Ensure pip can be imported.
    Regression test for #3002.
    )r   r   z
import pipN)r   r   )r   r   s     r   test_pip_importr=   Q   s/    
 )
(
(CDHS!!L!!!!!r   c                  <    t          d          j        j        sJ dS )z=
    Distutils module spec should have an origin. #2990.
    r   N)
__import____spec__originr   r   r   test_distutils_has_originrB   Z   s$     k""+222222r   a8  
# Depending on the importlib machinery and _distutils_hack, some imports are
# duplicated resulting in different module objects being loaded, which prevents
# patches as shown in #3042.
# This script provides a way of verifying if this duplication is happening.

from distutils import cmd
import distutils.command.sdist as sdist

# import last to prevent caching
from distutils import {imported_module}

for mod in (cmd, sdist):
    assert mod.{imported_module} == {imported_module}, (
        f"\n{{mod.dir_util}}\n!=\n{{{imported_module}}}"
    )

print("success")
z"distutils_version, imported_moduler*   dir_util)marks	file_utilarchive_util)r5   rC   )r5   rE   )r5   rF   c                     t          |           }t                              |          }dd|g} |j        |fdt	          |          it
                                          }|dk    sJ d S )Nr+   )imported_moduler   r   r   success)r.   !ENSURE_IMPORTS_ARE_NOT_DUPLICATEDr   r   r   r   strip)distutils_versionrH   
tmpdir_cwdr   r   scriptr   outputs           r   )test_modules_are_not_duplicated_on_importrP   v   s~     (9
:
:
:C.55o5VVFT6
"CTXc;;vc{{;l;;AACCFYr   z
import types
import distutils.dist as dist
from distutils import log
if isinstance(dist.log, types.ModuleType):
    assert dist.log == log, f"\n{dist.log}\n!=\n{log}"
print("success")
rL   r5   c                     t          |           }ddt          g} |j        |fdt          |          it                                          }|dk    sJ d S )Nr+   r   r   r   rI   )r.   #ENSURE_LOG_IMPORT_IS_NOT_DUPLICATEDr   r   r   rK   )rL   rM   r   r   r   rO   s         r   +test_log_module_is_not_duplicated_on_importrS      si     (9
:
:
:CT>
?CTXc;;vc{{;l;;AACCFYr   )r   N)N)r   sysr	   r"   pytestbuiltin_module_namesr9   r   r   r    r%   markskipifversion_infoskip_without_stdlib_distutilsr3   r8   xfailr;   r=   rB   rJ   parametrizeparamrP   rR   rS   r   r   r   <module>r^      s"   				 



    0
0'22	 	 	D D D D	? 	? 	? 	? !' 2 2: !3 ! !  / / // / / 9%HII/ / JI/" " "3 3 3% !* (Xz1NOOOX{2OPPPX~5RSSS!
 
 
 
' # X%BCCC     r   