comparison configmix/variables.py @ 697:57fe110c50c8

Implement a new "SYS" namespace with "prefix", "base_prefix" and "platform"
author Franz Glasner <fzglas.hg@dom66.de>
date Wed, 14 Jun 2023 01:11:01 +0200
parents f454889e41fa
children 3a9d661d33b5
comparison
equal deleted inserted replaced
696:8648e0641d60 697:57fe110c50c8
13 __all__ = [] 13 __all__ = []
14 14
15 15
16 import os 16 import os
17 import platform 17 import platform
18 import sys
18 from functools import wraps 19 from functools import wraps
19 20
20 from .compat import PY2, native_os_str_to_text, text_to_native_os_str, u 21 from .compat import PY2, native_os_str_to_text, text_to_native_os_str, u
21 from .constants import REF_NAMESPACE, NONE_FILTER, EMPTY_FILTER 22 from .constants import REF_NAMESPACE, NONE_FILTER, EMPTY_FILTER
22 23
39 """Lookup some process and/or OS state """ 40 """Lookup some process and/or OS state """
40 if name == "cwd": 41 if name == "cwd":
41 return native_os_str_to_text(os.getcwd()) 42 return native_os_str_to_text(os.getcwd())
42 elif name == "node": 43 elif name == "node":
43 return native_os_str_to_text(platform.node()) 44 return native_os_str_to_text(platform.node())
45 else:
46 if default is _MARKER:
47 raise KeyError("key %r not found in the namespace" % name)
48 else:
49 return default
50
51
52 def _syslookup(name, default=_MARKER):
53 """Lookup some variables from Python's :mod:`sys` module"""
54 if name == "prefix":
55 return native_os_str_to_text(sys.prefix)
56 elif name == "base_prefix":
57 val = getattr(sys, name, _MARKER)
58 if val is _MARKER:
59 if default is _MARKER:
60 raise KeyError("key %r not found in the namespace" % name)
61 else:
62 return default
63 return native_os_str_to_text(val)
64 elif name == "platform":
65 return native_os_str_to_text(sys.platform)
44 else: 66 else:
45 if default is _MARKER: 67 if default is _MARKER:
46 raise KeyError("key %r not found in the namespace" % name) 68 raise KeyError("key %r not found in the namespace" % name)
47 else: 69 else:
48 return default 70 return default
268 290
269 # Register the default namespaces 291 # Register the default namespaces
270 add_varns("ENV", _envlookup) 292 add_varns("ENV", _envlookup)
271 add_varns("OS", _oslookup) 293 add_varns("OS", _oslookup)
272 add_varns("PY", _pylookup) 294 add_varns("PY", _pylookup)
295 add_varns("SYS", _syslookup)
273 try: 296 try:
274 from .extras import aws 297 from .extras import aws
275 except ImportError: 298 except ImportError:
276 pass 299 pass
277 else: 300 else: