skeydula.server.config.schema.base module¶
Base classes and helper functions for defining configuration schemas.
Here is a complete example of defining your own schema module putting the pieces together in this module:
from attrs import define
from skeydula.server.config.schema.base import Config, Defaults, resolve_missing_config
class ThingDefaults(Defaults):
pass
DEFAULTS = ThingDefaults()
@define
class ThingConfig(Config):
@classmethod
def from_env_config(cls, env_config: EnvConfig) -> "ThingConfig":
# and then the most basic implementation is like:
unvalidated_env_config = {"foo": env_config["MY_FOO"]}
return cls(**resolve_missing_config(unvalidated_env_config, DEFAULTS))
- skeydula.server.config.schema.base.resolve_missing_config(unvalidated_env_config, defaults)¶