API
Cascading configuration from the CLI and config files.
- class cascade_config.CascadeConfig(validation_schema=None, none_overrides_value=False)
Bases:
object
Cascading configuration.
- Parameters:
validation_schema (str, path-like, dict, or cascade_config.ValidationSchema, optional) – JSON Schema to validate fully cascaded configuration
none_overrides_value (bool) – If True, a None value overrides a not-None value from the previous configuration. If False, None values will never override not-None values.
Examples
>>> cascade_conf = CascadeConfig(validation_schema="config_schema.json") >>> cascade_conf.add_json("config_default.json") >>> cascade_conf.add_json("config_user.json") >>> config = cascade_conf.parse()
- property validation_schema
JSON Schema to validate fully cascaded configuration.
- add_dict(*args, **kwargs)
Add dictionary configuration source to source list.
*args
and**kwargs
are passed tocascade_config.DictConfigSource()
.
- add_argumentparser(*args, **kwargs)
Add argumentparser configuration source to source list.
*args
and**kwargs
are passed tocascade_config.ArgumentParserConfigSource()
.
- add_namespace(*args, **kwargs)
Add argparse Namespace configuration source to source list.
*args
and**kwargs
are passed tocascade_config.NamespaceConfigSource()
.
- add_json(*args, **kwargs)
Add JSON configuration source to source list.
*args
and**kwargs
are passed tocascade_config.JSONConfigSource()
.
- parse()
Parse all sources, cascade, validate, and return cascaded configuration.
- Return type:
Dict
- class cascade_config.DictConfigSource(source, validation_schema=None, subkey=None)
Bases:
_ConfigSource
Initialize a single configuration source.
- Parameters:
source (str, path-like, dict, argparse.ArgumentParser) – source for the configuration, either a dictionary, path to a file, or argument parser.
validation_schema (str, path-like, dict, or cascade_config.ValidationSchema, optional) – JSON Schema to validate single configuration
subkey (str) – adds the configuration to a subkey of the final cascased configuration; e.g. specifying a subkey “user” for a configuration source, would add it under the key “user” in the cascaded configuration, instead of updating the root of the existing configuration
- load()
load the configuration from the source and return it as a dictionary
- class cascade_config.JSONConfigSource(source, validation_schema=None, subkey=None)
Bases:
_ConfigSource
Initialize a single configuration source.
- Parameters:
source (str, path-like, dict, argparse.ArgumentParser) – source for the configuration, either a dictionary, path to a file, or argument parser.
validation_schema (str, path-like, dict, or cascade_config.ValidationSchema, optional) – JSON Schema to validate single configuration
subkey (str) – adds the configuration to a subkey of the final cascased configuration; e.g. specifying a subkey “user” for a configuration source, would add it under the key “user” in the cascaded configuration, instead of updating the root of the existing configuration
- load()
load the configuration from the source and return it as a dictionary
- class cascade_config.ArgumentParserConfigSource(source, validation_schema=None, subkey=None)
Bases:
_ConfigSource
Initialize a single configuration source.
- Parameters:
source (str, path-like, dict, argparse.ArgumentParser) – source for the configuration, either a dictionary, path to a file, or argument parser.
validation_schema (str, path-like, dict, or cascade_config.ValidationSchema, optional) – JSON Schema to validate single configuration
subkey (str) – adds the configuration to a subkey of the final cascased configuration; e.g. specifying a subkey “user” for a configuration source, would add it under the key “user” in the cascaded configuration, instead of updating the root of the existing configuration
- load()
load the configuration from the source and return it as a dictionary
- class cascade_config.NamespaceConfigSource(source, validation_schema=None, subkey=None)
Bases:
_ConfigSource
Initialize a single configuration source.
- Parameters:
source (str, path-like, dict, argparse.ArgumentParser) – source for the configuration, either a dictionary, path to a file, or argument parser.
validation_schema (str, path-like, dict, or cascade_config.ValidationSchema, optional) – JSON Schema to validate single configuration
subkey (str) – adds the configuration to a subkey of the final cascased configuration; e.g. specifying a subkey “user” for a configuration source, would add it under the key “user” in the cascaded configuration, instead of updating the root of the existing configuration
- load()
load the configuration from the source and return it as a dictionary