
    |g              
       Z   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                  j                  ej                  d	k\  d
      Zed        Zd Zej                  j#                  dd      d        Zd Zd ZdZej                  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                  j-                  dd  ej.                  de      g      d!        Zy)$    N__pypy__Tzutf-8)textencodingc                 d    | 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    e/var/www/html/pythonbot/venv/lib/python3.12/site-packages/setuptools/tests/test_distutils_adoption.pywin_srr      s-     x I-JJ|4LJ    c                      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      sJ    A:AAMFHMFT6
"C488CCVC[CLCF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$      sG    __	F T6
"Cxtxx===>>r   )      z-stdlib distutils is removed from Python 3.12+)reasonc                     t        d      }| j                  t        | |      j                  t        j
                        vsJ t        | |      dk(  sJ y)z;
    Ensure stdlib distutils is used when appropriate.
    stdlibSETUPTOOLS_USE_DISTUTILSr   r   Ndictnamer   splitr   sepr$   r   r   s     r   test_distutils_stdlibr2   1   sK    
 
1C99N4S9??GGGG4S)Q...r   c                     t        d      }t        | d|      }| j                  |j                  t        j
                        v sJ t        | |      dk  sJ y)z:
    Ensure local distutils is used when appropriate.
    localr*   zsetuptools, distutils)r   r   r      N)r-   r   r.   r/   r   r0   r$   )r   r   locs      r   $test_distutils_local_with_setuptoolsr7   ;   sQ     
0C
'>C
HC99		"&&))))4S)Q...r   IS_PYPYz!pypy imports distutils on startupc                     t        d      }| j                  t        | |      j                  t        j
                        v sJ t        | |      dk  sJ y)zZ
    Even without importing, the setuptools-local copy of distutils is
    preferred.
    r4   r*   r   r5   Nr,   r1   s     r   test_distutils_localr:   E   sK     
0C99t5;;BFFCCCC4S)Q...r   c                 :    g d} | j                   |fi t         y)zD
    Ensure pip can be imported.
    Regression test for #3002.
    )r   r   z
import pipN)r   r   )r   r   s     r   test_pip_importr<   P   s    
 )CDHHS!L!r   c                  F    t        d      j                  j                  sJ y)z=
    Distutils module spec should have an origin. #2990.
    	distutilsN)
__import____spec__originr   r   r   test_distutils_has_originrB   Y   s     k"++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)r4   rC   )r4   rE   )r4   rF   c                     t        |       }t        j                  |      }dd|g} |j                  |fdt	        |      it
        j                         }|dk(  sJ y )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   u   sc     (9
:C.55o5VFT6
"CTXXc;vc{;l;AA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   r4   c                     t        |       }ddt        g} |j                  |fdt        |      it        j                         }|dk(  sJ y )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      sQ     (9
:CT>
?CTXXc;vc{;l;AACFYr   )r>   N)N)r   r	   sysr!   pytestbuiltin_module_namesr8   r   r   r   r$   markskipifversion_infoskip_without_stdlib_distutilsr2   r7   xfailr:   r<   rB   rJ   parametrizeparamrP   rR   rS   r   r   r   <module>r^      st   	  
  
00
0'2	D	? !' 2 2: !3 !  / // 9%HI/ J/"3% !* (Xz1NOX{2OPX~5RS!

' # X%BCr   