K ic ddlZddlZddlZddlZddlZdej vZdddZdZd'dZ d(dZ ejjejd k\d Zed Zd Zejj#dd dZdZdZdZejj-dejj/dej0ddeej0ddeej0ddedddgdZdZejj-dejj/d d!ej0degd"Zd#Zejj-dejj/dd$ej0dd%egd&Zy))N__pypy__Tzutf-8)textencodingcd|r-tjdk(rtjd|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 n/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/setuptools/tests/test_distutils_adoption.pywin_srr s- x I-JJ|4L Jc djdit}dd|g}|j|fdt|it|S)Nz+import {imports}; print(distutils.__file__)python-cr)formatlocalsrunr _TEXT_KWARGS)venvimportsrkwargspy_cmdcmds rfind_distutilsrsJ A : A A MFH MF T6 "C 488C CVC[ CL CF 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$sG __ F T6 "C xtxx== = >>r) z-stdlib distutils is removed from Python 3.12+)reasonctd}|jt||jtj vsJt ||dk(sJy)z; Ensure stdlib distutils is used when appropriate. stdlibSETUPTOOLS_USE_DISTUTILSr rNdictnamersplitr sepr$rrs rtest_distutils_stdlibr21sK  1C 99N4S9??G GG G 4S )Q .. .rctd}t|d|}|j|jtj vsJt ||dksJy)z: Ensure local distutils is used when appropriate. localr*zsetuptools, distutils)rrr N)r-rr.r/r r0r$)rrlocs r$test_distutils_local_with_setuptoolsr7;sQ  0C '>C HC 99 "&&) )) ) 4S )Q .. .rIS_PYPYz!pypy imports distutils on startupctd}|jt||jtj vsJt ||dksJy)zZ Even without importing, the setuptools-local copy of distutils is preferred. r4r*r r5Nr,r1s rtest_distutils_localr:EsK  0C 99t5;;BFFC CC C 4S )Q .. .rc:gd}|j|fity)zD Ensure pip can be imported. Regression test for #3002. )rrz import pipN)rr)rrs rtest_pip_importr<Ps )C DHHS!L!rcFtdjjsJy)z= Distutils module spec should have an origin. #2990. distutilsN) __import____spec__originrrrtest_distutils_has_originrBYs k " + + 2 22 2ra8 # 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)r4rF)r4rH)r4rIct|}tj|}dd|g}|j|fdt |it j }|dk(sJy)Nr*rErrrsuccess)r-!ENSURE_IMPORTS_ARE_NOT_DUPLICATEDrrrrstrip)rDrErrscriptroutputs r)test_modules_are_not_duplicated_on_importrQusc (9 :C . 5 5o 5 VF T6 "C TXXc ;vc{ ;l ; A A 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") rDr4ct|}ddtg}|j|fdt|itj }|dk(sJy)Nr*rrrrL)r-#ENSURE_LOG_IMPORT_IS_NOT_DUPLICATEDrrrrN)rDrrrrPs r+test_log_module_is_not_duplicated_on_importrTsQ (9 :C T> ?C TXXc ;vc{ ;l ; A A 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") )r4r>zsetuptools._distutilsct|}ddtj|g}|j|fdt |it j }|dk(sJy)Nr*rrrKrrL)r-(ENSURE_CONSISTENT_ERROR_FROM_MODIFIED_PYrrrrrN)rDrErrrrPs r&test_consistent_error_from_modified_pyrWsi (9 :C 077+ 8  CTXXc ;vc{ ;l ; A A CF Y  r)r>N)N)r r sysr!pytestbuiltin_module_namesr8rrrr$markskipif version_infoskip_without_stdlib_distutilsr2r7xfailr:r<rBrM usefixtures parametrizeparamrQrSrTrVrWrrrrcs   00 0'2  D ?!' 2 2 :!3! ///9%HI/J/"3%!*&, Xz1NO X{2OP X~5RS!   ''#& X%BC' ,(&,  -5R    ' r