Mercurial > hgrepos > Python > libs > ConfigMix
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: |
