mirror of
https://github.com/dtomlinson91/panaetius.git
synced 2025-12-22 04:55:44 +00:00
adding latest working config complete
This commit is contained in:
@@ -55,23 +55,7 @@ class Config:
|
||||
section, name = key.lower().split(".")
|
||||
return self.config[self.header_variable][section][name]
|
||||
|
||||
def _get_config_value_missing_key_value_is_none(self, default: Any):
|
||||
pass
|
||||
|
||||
def _get_config_value(
|
||||
self, env_key: str, key: str, default: Any, mask: bool, coerce: bool = False
|
||||
) -> Any:
|
||||
try:
|
||||
# look under top header
|
||||
if len(key.split(".")) == 1:
|
||||
value = self._get_config_value_key_split_once(key, mask)
|
||||
elif len(key.split(".")) == 2:
|
||||
value = self._get_config_value_key_split_twice(key, mask)
|
||||
return value
|
||||
|
||||
except (KeyError, TypeError):
|
||||
value = os.environ.get(env_key.replace("-", "_"))
|
||||
if value is None:
|
||||
def _get_config_value_missing_key_value_is_none(self, default: Any) -> Any:
|
||||
if isinstance(default, str):
|
||||
# if default is a string, wrap TOML value in quotes
|
||||
return toml.loads(f'value = "{default}"')["value"]
|
||||
@@ -79,17 +63,35 @@ class Config:
|
||||
# if default is a bool, convert to lower case for TOML syntax
|
||||
default = str(default).lower() if isinstance(default, bool) else default
|
||||
return (
|
||||
toml.loads(f"value = {default}")["value"]
|
||||
if default is not None
|
||||
else None
|
||||
toml.loads(f"value = {default}")["value"] if default is not None else None
|
||||
)
|
||||
# if env var, coerce value if flag is set, else return a TOML string
|
||||
|
||||
def _get_config_value_missing_key_value_is_not_none(
|
||||
self, value: str, coerce: bool
|
||||
) -> Any:
|
||||
return (
|
||||
toml.loads(f"value = {value}")["value"]
|
||||
if coerce
|
||||
else toml.loads(f'value = "{value}"')["value"]
|
||||
)
|
||||
|
||||
def _get_config_value(
|
||||
self, env_key: str, key: str, default: Any, mask: bool, coerce: bool = False
|
||||
) -> Any:
|
||||
try:
|
||||
# look under top header
|
||||
if len(key.split(".")) == 1:
|
||||
return self._get_config_value_key_split_once(key, mask)
|
||||
if len(key.split(".")) == 2:
|
||||
return self._get_config_value_key_split_twice(key, mask)
|
||||
|
||||
except (KeyError, TypeError):
|
||||
value = os.environ.get(env_key.replace("-", "_"))
|
||||
if value is None:
|
||||
return self._get_config_value_missing_key_value_is_none(default)
|
||||
# if env var, coerce value if flag is set, else return a TOML string
|
||||
return self._get_config_value_missing_key_value_is_not_none(value, coerce)
|
||||
|
||||
def _get_env_value( # noqa
|
||||
self, env_key: str, default: Any, coerce: bool = False
|
||||
) -> Any:
|
||||
|
||||
Reference in New Issue
Block a user