comparison DEPENDENCIES/mingw32/Python27/Lib/site-packages/numpy/distutils/environment.py @ 87:2a2c65a20a8b

Add Python libs and headers
author Chris Cannam
date Wed, 25 Feb 2015 14:05:22 +0000
parents
children
comparison
equal deleted inserted replaced
86:413a9d26189e 87:2a2c65a20a8b
1 from __future__ import division, absolute_import, print_function
2
3 import os
4 from distutils.dist import Distribution
5
6 __metaclass__ = type
7
8 class EnvironmentConfig(object):
9 def __init__(self, distutils_section='ALL', **kw):
10 self._distutils_section = distutils_section
11 self._conf_keys = kw
12 self._conf = None
13 self._hook_handler = None
14
15 def dump_variable(self, name):
16 conf_desc = self._conf_keys[name]
17 hook, envvar, confvar, convert = conf_desc
18 if not convert:
19 convert = lambda x : x
20 print('%s.%s:' % (self._distutils_section, name))
21 v = self._hook_handler(name, hook)
22 print(' hook : %s' % (convert(v),))
23 if envvar:
24 v = os.environ.get(envvar, None)
25 print(' environ: %s' % (convert(v),))
26 if confvar and self._conf:
27 v = self._conf.get(confvar, (None, None))[1]
28 print(' config : %s' % (convert(v),))
29
30 def dump_variables(self):
31 for name in self._conf_keys:
32 self.dump_variable(name)
33
34 def __getattr__(self, name):
35 try:
36 conf_desc = self._conf_keys[name]
37 except KeyError:
38 raise AttributeError(name)
39 return self._get_var(name, conf_desc)
40
41 def get(self, name, default=None):
42 try:
43 conf_desc = self._conf_keys[name]
44 except KeyError:
45 return default
46 var = self._get_var(name, conf_desc)
47 if var is None:
48 var = default
49 return var
50
51 def _get_var(self, name, conf_desc):
52 hook, envvar, confvar, convert = conf_desc
53 var = self._hook_handler(name, hook)
54 if envvar is not None:
55 var = os.environ.get(envvar, var)
56 if confvar is not None and self._conf:
57 var = self._conf.get(confvar, (None, var))[1]
58 if convert is not None:
59 var = convert(var)
60 return var
61
62 def clone(self, hook_handler):
63 ec = self.__class__(distutils_section=self._distutils_section,
64 **self._conf_keys)
65 ec._hook_handler = hook_handler
66 return ec
67
68 def use_distribution(self, dist):
69 if isinstance(dist, Distribution):
70 self._conf = dist.get_option_dict(self._distutils_section)
71 else:
72 self._conf = dist