\bgc |ddlZddlZddlZddlZddlZdejvZdddZdZd(dZ d)d Z ej ej d kd Zed ZdZej dd dZdZdZdZej dej dejddeejddeejddedddgdZd Zej dej d!d"ejdegd#Zd$Zej dej dd%ejdd&egd'ZdS)*N__pypy__Tzutf-8)textencodingcb|r,tjdkrtjd|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)platformsystemosenvironenvs y/builddir/build/BUILD/cloudlinux-venv-1.0.7/venv/lib/python3.11/site-packages/setuptools/tests/test_distutils_adoption.pywin_srr s4 5x  I--J|4L J distutilsc djdit}dd|g}|j|fdt|it|S)Nz+import {imports}; print(distutils.__file__)python-cr)formatlocalsrunr _TEXT_KWARGS)venvimportsrkwargspy_cmdcmds rfind_distutilsr sU A : A M MFHH M MF T6 "C 48C C CVC[[ CL CF C CCrc tjd}dd|g}t|j|fdt |it S)Nz import sys is_distutils = lambda finder: finder.__class__.__name__ == "DistutilsMetaFinder" print(len(list(filter(is_distutils, sys.meta_path)))) rrr)textwrapdedentintrrr)rrrrs rcount_meta_pathr%sS _ F T6 "C xtx=== == > >>r) z-stdlib distutils is removed from Python 3.12+)reasonctd}|jt||tjvsJt ||dksJdS)z; Ensure stdlib distutils is used when appropriate. stdlibSETUPTOOLS_USE_DISTUTILSr rNdictnamer splitr sepr%rrs rtest_distutils_stdlibr31sh  1 1 1C 9N4S999??GG G G G G 4S ) ) )Q . . . . . .rctd}t|d|}|j|tjvsJt ||dksJdS)z: Ensure local distutils is used when appropriate. localr+zsetuptools, distutils)rrr N)r.r r/r0r r1r%)rrlocs r$test_distutils_local_with_setuptoolsr8;sn  0 0 0C '>C H H HC 9 "&)) ) ) ) ) 4S ) ) )Q . . . . . .rIS_PYPYz!pypy imports distutils on startupctd}|jt||tjvsJt ||dksJdS)zZ Even without importing, the setuptools-local copy of distutils is preferred. r5r+r r6Nr-r2s rtest_distutils_localr;Esh  0 0 0C 9t555;;BFCC C C C C 4S ) ) )Q . . . . . .rc4gd}|j|fitdS)zD Ensure pip can be imported. Regression test for #3002. )rrz import pipN)rr)rrs rtest_pip_importr=Ps/ ) ( (C DHS!!L!!!!!rc<tdjjsJdS)z= Distutils module spec should have an origin. #2990. rN) __import____spec__originrrrtest_distutils_has_originrBYs$ k " " + 222 222ra8 # 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") tmpdir_cwd)distutils_versionimported_moduler*dir_util)marks file_util archive_util)r5rF)r5rH)r5rIct|}t|}dd|g}|j|fdt |it }|dksJdS)Nr+rErrrsuccess)r.!ENSURE_IMPORTS_ARE_NOT_DUPLICATEDrrrrstrip)rDrErrscriptroutputs r)test_modules_are_not_duplicated_on_importrQus~ (9 : : :C . 5 5o 5 V VF T6 "C TXc ; ;vc{{ ;l ; ; A A C CF Y      rz 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") rDr5ct|}ddtg}|j|fdt|it}|dksJdS)Nr+rrrrL)r.#ENSURE_LOG_IMPORT_IS_NOT_DUPLICATEDrrrrN)rDrrrrPs r+test_log_module_is_not_duplicated_on_importrTsi (9 : : :C T> ?C TXc ; ;vc{{ ;l ; ; A A C CF Y      rz from setuptools.modified import newer from {imported_module}.errors import DistutilsError # Can't use pytest.raises in this context try: newer("", "") except DistutilsError: print("success") else: raise AssertionError("Expected to raise") )r5rzsetuptools._distutilsct|}ddt|g}|j|fdt |it }|dksJdS)Nr+rrrKrrL)r.(ENSURE_CONSISTENT_ERROR_FROM_MODIFIED_PYrrrrrN)rDrErrrrPs r&test_consistent_error_from_modified_pyrWs (9 : : :C 077+ 8   CTXc ; ;vc{{ ;l ; ; A A C CF Y      r)rN)N)r r sysr"pytestbuiltin_module_namesr9rrr r%markskipif version_infoskip_without_stdlib_distutilsr3r8xfailr;r=rBrM usefixtures parametrizeparamrQrSrTrVrWrrrrcs   0 0'22    DDDD ? ? ? ?!' 2 2 :!3!! //////9%HII//JI/"""333%!*&&, Xz1NOOO X{2OPPP X~5RSSS!     '&'#&& X%BCCC'& ,(&&,  -5R         '&   r