19 from java.lang.System
import (getProperty
as get_java_property,
20 getProperties
as get_java_properties)
22 get_java_property =
lambda name:
None
23 get_java_properties =
lambda: {}
27 is_dict_like, is_list_like, normalize, DotDict,
30 from .isvar
import validate_var
31 from .notfound
import variable_not_found
48 if identifier
in finder.identifiers:
50 value = finder.find(name)
51 except (KeyError, ValueError):
72 raise VariableError(
"Value of variable '%s' is not dictionary "
73 "or dictionary-like." % name)
86 return self.
_store_store[name[2:-1]]
100 bases = {
'0b': 2,
'0o': 8,
'0x': 16}
101 if number.startswith(tuple(bases)):
102 return int(number[2:], bases[number[:2]])
109 ignore=
'_').__getitem__
117 _match_extended = re.compile(
r'''
118 (.+?) # base name (group 1)
119 ([^\s\w].+) # extended part (group 2)
120 ''', re.UNICODE|re.VERBOSE).match
129 base_name, extended = match.groups()
132 except DataError
as err:
134 % (name, err.message))
136 return eval(
'_BASE_VAR_' + extended, {
'_BASE_VAR_': variable})
146 for getter
in get_env_var, get_java_property:
147 value = getter(name[2:-1])
148 if value
is not None:
151 "Environment variable '%s' not found." % name)
Used when no keyword is found or there is more than one match.
Custom dictionary implementation automatically normalizing keys.
def _get_candidates(self)
def __init__(self, finder)
def _get_int(self, number)
def __init__(self, store)
def _validate_value(self, value, identifier, name)
def __init__(self, variable_store)
def get_error_message()
Returns error message of the last occurred exception.
def normalize(string, ignore=(), caseless=True, spaceless=True)
Normalizes given string according to given spec.
def get_env_vars(upper=os.sep !='/')
def validate_var(string, identifiers='$@&')
def variable_not_found(name, candidates, msg=None, deco_braces=True)
Raise DataError for missing variable name.