|
|
|
@ -102,14 +102,14 @@ cdef class Params: |
|
|
|
|
return cast(value) |
|
|
|
|
raise TypeError(f"Type mismatch while writing param {key}: {proposed_type=} {expected_type=} {value=}") |
|
|
|
|
|
|
|
|
|
def cpp2python(self, t, value, default, key): |
|
|
|
|
def _cpp2python(self, t, value, default, key): |
|
|
|
|
if value is None: |
|
|
|
|
return None |
|
|
|
|
try: |
|
|
|
|
return CPP_2_PYTHON[t](value) |
|
|
|
|
except (KeyError, TypeError, ValueError): |
|
|
|
|
cloudlog.warning(f"Failed to cast param {key} with {value=} from type {t=}") |
|
|
|
|
return self.cpp2python(t, default, None, key) |
|
|
|
|
return self._cpp2python(t, default, None, key) |
|
|
|
|
|
|
|
|
|
def get(self, key, bool block=False, bool return_default=False): |
|
|
|
|
cdef string k = self.check_key(key) |
|
|
|
@ -126,8 +126,8 @@ cdef class Params: |
|
|
|
|
# it means we got an interrupt while waiting |
|
|
|
|
raise KeyboardInterrupt |
|
|
|
|
else: |
|
|
|
|
return self.cpp2python(t, default_val, None, key) |
|
|
|
|
return self.cpp2python(t, val, default_val, key) |
|
|
|
|
return self._cpp2python(t, default_val, None, key) |
|
|
|
|
return self._cpp2python(t, val, default_val, key) |
|
|
|
|
|
|
|
|
|
def get_bool(self, key, bool block=False): |
|
|
|
|
cdef string k = self.check_key(key) |
|
|
|
@ -188,4 +188,9 @@ cdef class Params: |
|
|
|
|
cdef string k = self.check_key(key) |
|
|
|
|
cdef ParamKeyType t = self.p.getKeyType(k) |
|
|
|
|
cdef optional[string] default = self.p.getKeyDefaultValue(k) |
|
|
|
|
return self.cpp2python(t, default.value(), None, key) if default.has_value() else None |
|
|
|
|
return self._cpp2python(t, default.value(), None, key) if default.has_value() else None |
|
|
|
|
|
|
|
|
|
def cpp2python(self, key, value): |
|
|
|
|
cdef string k = self.check_key(key) |
|
|
|
|
cdef ParamKeyType t = self.p.getKeyType(k) |
|
|
|
|
return self._cpp2python(t, value, None, key) |
|
|
|
|