zmc
2023-10-12 ed135d79df12a2466b52dae1a82326941211dcc9
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
U
P±dD,ã@s"ddlZddlZddlZddlmZmZddlmZmZddl    m
Z
ddl m Z m Z mZddlmZmZddlmZmZmZddlmZdd    lmZmZdd
lmZdd d „ZdatadZdd„ZeƒZGdd„deƒZ Gdd„de ƒZ!Gdd„de ƒZ"Gdd„de ƒZ#Gdd„dƒZ$dd„Z%dS)éN)ÚmkstempÚmkdtemp)ÚPopenÚPIPE)ÚDistutilsError)Úassert_Ú assert_equalÚ assert_raises)Ú    ccompilerÚcustomized_ccompiler)Ú system_infoÚ ConfigParserÚmkl_info)ÚAliasedOptionError)Údefault_lib_dirsÚdefault_include_dirs)Ú _shell_utilsécCstttdœ | ¡t¡}|ƒS)zg
    notfound_action:
      0 - do nothing
      1 - display warning message
      2 - raise error
    )Útemp1Útemp2Úduplicate_options)Ú    Temp1InfoÚ    Temp2InfoÚDuplicateOptionInfoÚgetÚlowerÚ _system_info)ÚnameZnotfound_actionZcl©rú]d:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\numpy/distutils/tests/test_system_info.pyÚ    get_classsþýr a¼
[ALL]
library_dirs = {dir1:s}{pathsep:s}{dir2:s}
libraries = {lib1:s},{lib2:s}
extra_compile_args = -I/fake/directory -I"/path with/spaces" -Os
runtime_library_dirs = {dir1:s}
 
[temp1]
library_dirs = {dir1:s}
libraries = {lib1:s}
runtime_library_dirs = {dir1:s}
 
[temp2]
library_dirs = {dir2:s}
libraries = {lib2:s}
extra_link_args = -Wl,-rpath={lib2_escaped:s}
rpath = {dir2:s}
 
[duplicate_options]
mylib_libs = {lib1:s}
libraries = {lib2:s}
/* This file is generated from numpy/distutils/testing/test_system_info.py */
#include<stdio.h>
void foo(void) {
   printf("Hello foo");
}
void bar(void) {
   printf("Hello bar");
}
c Cs¨tƒ}z
|j}WnLtk
r\z|js0| ¡Wnttfk
rNYYdSX|jg}YnXz.t|t    t    d}|j
  ¡|j   ¡|  ¡Wntk
r¢YdSXdS)z? Return True if there appears to be an executable compiler
    F)ÚstdoutÚstderrT)r ÚcompilerÚAttributeErrorZ initializedZ
initializerÚ
ValueErrorÚccrrr!Úcloser"ÚwaitÚOSError)r#ÚcmdÚprrrÚ have_compiler@s$
 
 
 
 r,c@s$eZdZeedfdd„Zdd„ZdS)rrc    Cs2i|j_g|_dddddddddœ}t|ƒ|_dS)NÚÚ0)Ú library_dirsÚ include_dirsÚruntime_library_dirsÚrpathZsrc_dirsZsearch_static_firstÚextra_compile_argsÚextra_link_args)Ú    __class__ÚinfoZlocal_prefixesr Úcp)ÚselfrrÚ    verbosityÚdefaultsrrrÚ__init__\sùz_system_info.__init__cCs||dœ}|S)z-Override _check_libs to return with all dirs )Ú    librariesr/r)r8Úlib_dirsZlibsZopt_libsÚextsr6rrrÚ _check_libsos
z_system_info._check_libsN)Ú__name__Ú
__module__Ú __qualname__rrr;r?rrrrrZs
ý
rc@seZdZdZdZdS)rúFor testing purposesrN©r@rArBÚ__doc__Úsectionrrrrrusrc@seZdZdZdZdS)rrCrNrDrrrrrzsrc@seZdZdZdZdS)rrCrNrDrrrrr~src@sºeZdZdd„Zdd„Zdd„Zdd„Zd    d
„Zd d „Ze    j
j e d ddd„ƒZ e    j
j e d de    j
j dee ¡ƒkdddd„ƒƒZdeƒ ¡ dg¡kZe    j
jedddd„ƒZdS)ÚTestSystemInfoReadingc
CsXtƒ|_tj |jd¡|_tj |jd¡|_tƒ|_tj |jd¡|_tj |jd¡|_    t
j f|j|j|j|j    tj t j |j    g¡dœŽatƒ\}|_t |¡t|jdƒ}| t¡W5QRXt|jdƒ}| t¡W5QRXt|jdƒ}| t¡W5QRXdd„}|td    ƒ|jƒ|_|td
ƒ|jƒ|_|td ƒ|jƒ|_|td ƒ|jƒ|_d S)z Create the libraries zfoo.cz    libfoo.sozbar.cz    libbar.so)Zdir1Zlib1Zdir2Zlib2ÚpathsepZ lib2_escapedÚwcSs|g|_| ¡|S©N)ÚfilesÚparse_config_files)ÚcÚsite_cfgrrrÚsite_and_parse¤sz:TestSystemInfoReading.setup_method.<locals>.site_and_parseÚdefaultrrrN)rÚ_dir1ÚosÚpathÚjoinÚ_src1Ú_lib1Ú_dir2Ú_src2Ú_lib2Ú simple_siteÚformatrHrZ NativeParserrNrÚ_sitecfgr'ÚopenÚwriteÚfakelib_c_textr Ú    c_defaultÚc_temp1Úc_temp2Ú c_dup_options)r8ÚfdrOrrrÚ setup_method…s:ú     
ÿz"TestSystemInfoReading.setup_methodcCsvzt |j¡Wntk
r$YnXzt |j¡Wntk
rJYnXzt |j¡Wntk
rpYnXdSrJ)ÚshutilÚrmtreerQÚ    ExceptionrWrRÚremover\)r8rrrÚteardown_method®sz%TestSystemInfoReading.teardown_methodcCsd|j}t| ¡|j|jgƒt| ¡|j|jgƒt| ¡|jgƒ|     ¡}t|ddddgƒdS)Nr3z-I/fake/directoryz-I/path with/spacesz-Os)
r`rÚ get_lib_dirsrQrWÚ get_librariesrVrYÚget_runtime_lib_dirsÚcalc_extra_info©r8ÚtsiÚextrarrrÚtest_all½s zTestSystemInfoReading.test_allcCs@|j}t| ¡|jgƒt| ¡|jgƒt| ¡|jgƒdSrJ)rarrkrQrlrVrm©r8rprrrÚ
test_temp1Æsz TestSystemInfoReading.test_temp1cCsb|j}t| ¡|jgƒt| ¡|jgƒt|jdd|jgƒ| ¡}t|dd|jgƒdS)Nr2)Úkeyr4z -Wl,-rpath=)rbrrkrWrlrYrmrnrorrrÚ
test_temp2Ís z TestSystemInfoReading.test_temp2cCsN|j}tt|jddƒt| d|jg¡|jgƒt| d|jg¡|jgƒdS)NZ
mylib_libsr<)rcr    rZget_option_singlerZget_libsrVrYrsrrrÚtest_duplicate_options×sz,TestSystemInfoReading.test_duplicate_optionszMissing compiler)Úreasonc    Cs|tƒ}t ¡}z\t |j¡|jtj |j¡g|jdt    tj 
|j  dd¡¡pdtj 
|j  dd¡¡ƒW5t |¡XdS)N)Ú
output_dirú.cú.oz.obj) r rRÚgetcwdÚchdirrQÚcompilerSÚbasenamerUrÚisfileÚreplace)r8rMÚ previousDirrrrÚ test_compile1Þs ÿz#TestSystemInfoReading.test_compile1ZmsvczFails with MSVC compiler c    Csz|j}tƒ}| ¡d}t ¡}zHt |j¡|jtj     |j
¡g|j|dt tj  |j
  dd¡¡ƒW5t |¡XdS)Nr4)ryZextra_postargsrzr{)rbr rnrRr|r}rWr~rSrrXrr€r)r8rprMr4r‚rrrÚ test_compile2ís  ÿz#TestSystemInfoReading.test_compile2Zmkl_rtr<zD`[DEFAULT]` override doesn't work if numpy is built with MKL supportc    Cs2t ¡}tj |jd¡}t |j|¡zút |j¡t    ƒ}|j
dd  tj ¡}|  ¡|ks`t‚t|dƒ}| ¡ ddd¡}W5QRXt|dƒ}| |¡W5QRXt    ƒ}|  ¡|ks¾t‚t|dƒ}| ¡ dd    d¡}W5QRXt|dƒ}| |¡W5QRXt    ƒ}|  ¡|kst‚W5t |¡XdS)
Nzsite.cfgÚALLr/Úrz[ALL]z[mkl]rrIz    [DEFAULT])rRr|rSrTrQrfÚcopyr\r}rr7ÚsplitrHrkÚAssertionErrorr]Úreadrr^)r8r‚Úcfgr6r=ZfidZmklZdfltrrrÚtest_overridess*     z$TestSystemInfoReading.test_overridesN)r@rArBrerjrrrtrvrwÚpytestÚmarkZskipifÚ HAVE_COMPILERrƒÚreprr
Z new_compilerr„rZcalc_libraries_inforZHAS_MKLZxfailrŒrrrrrGƒs )    
 
ÿ rGc    CsRddlm}d}tdƒ}| |d¡|||ƒ\}}t|ƒdksBt‚|tdƒksRt‚t|ƒdksbt‚| |d    ¡|||ƒ\}}t|ƒdksŒt‚t|ƒdksœt‚d
D]T}| ||›d ¡|||ƒ\}}t|ƒd ksÔt‚|td ƒksät‚t|ƒdks t‚q t t¡| |d¡|||ƒW5QRXt t¡| |d¡|||ƒW5QRXdS)Nr)Ú_parse_env_orderZ#NPY_TESTS_DISTUTILS_PARSE_ENV_ORDERZabcdefzb,i,e,féZbefrr-z^!zb,i,eéZacdfzb,^e,iz!b,^e,i)    Únumpy.distutils.system_infor‘ÚlistZsetenvÚlenr‰rZraisesr%)Z monkeypatchr‘ÚenvZ
base_orderÚorderÚunknownÚprefixrrrÚtest_distutils_parse_env_order$s0       r›)r)&rRrfrÚtempfilerrÚ
subprocessrrÚdistutils.errorsrZ numpy.testingrrr    Znumpy.distutilsr
r r”r r rrrrrr rZrNr_r,rrrrrrGr›rrrrÚ<module>s0   
 "