MCPcopy Create free account
hub / github.com/numpy/numpy / EnvironmentConfig

Class EnvironmentConfig

numpy/distutils/fcompiler/environment.py:6–88  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

4__metaclass__ = type
5
6class EnvironmentConfig:
7 def __init__(self, distutils_section='ALL', **kw):
8 self._distutils_section = distutils_section
9 self._conf_keys = kw
10 self._conf = None
11 self._hook_handler = None
12
13 def dump_variable(self, name):
14 conf_desc = self._conf_keys[name]
15 hook, envvar, confvar, convert, append = conf_desc
16 if not convert:
17 convert = lambda x : x
18 print('%s.%s:' % (self._distutils_section, name))
19 v = self._hook_handler(name, hook)
20 print(' hook : %s' % (convert(v),))
21 if envvar:
22 v = os.environ.get(envvar, None)
23 print(' environ: %s' % (convert(v),))
24 if confvar and self._conf:
25 v = self._conf.get(confvar, (None, None))[1]
26 print(' config : %s' % (convert(v),))
27
28 def dump_variables(self):
29 for name in self._conf_keys:
30 self.dump_variable(name)
31
32 def __getattr__(self, name):
33 try:
34 conf_desc = self._conf_keys[name]
35 except KeyError:
36 raise AttributeError(
37 f"'EnvironmentConfig' object has no attribute '{name}'"
38 ) from None
39
40 return self._get_var(name, conf_desc)
41
42 def get(self, name, default=None):
43 try:
44 conf_desc = self._conf_keys[name]
45 except KeyError:
46 return default
47 var = self._get_var(name, conf_desc)
48 if var is None:
49 var = default
50 return var
51
52 def _get_var(self, name, conf_desc):
53 hook, envvar, confvar, convert, append = conf_desc
54 if convert is None:
55 convert = lambda x: x
56 var = self._hook_handler(name, hook)
57 if envvar is not None:
58 envvar_contents = os.environ.get(envvar)
59 if envvar_contents is not None:
60 envvar_contents = convert(envvar_contents)
61 if var and append:
62 if os.environ.get('NPY_DISTUTILS_APPEND_FLAGS', '1') == '1':
63 var.extend(envvar_contents)

Callers 1

FCompilerClass · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected