The main interface¶
-
class
configsuite.
ConfigSuite
(raw_config, schema, layers=(), extract_validation_context=<function ConfigSuite.<lambda>>, extract_transformation_context=<function ConfigSuite.<lambda>>, deduce_required=False)[source]¶ A Suite exposing the functionality of Config Suite in a unified manner.
The intended usage of Config Suite is via this immutable suite. It is constructed with a schema describing the structure of a configuration, together with a raw_config and possibly additional layers.
Parameters: - raw_config – The configuration taking precedence.
- schema – A description of the structure of a valid configuration, together with actions that are to be carried out.
- layers (iterable of layers, optional) – Additional layers of configuration. A layer takes precedence over all other layers following it in the given sequence. Note that raw_config takes precedence over all elements of layers.
- extract_validation_context (callable, optional) – Callable that extracts the context used for validation. The callable is given a snapshot of the configuration as argument. Defaults to the constant function always returning None.
- extract_transformation_context (callable, optional) – Callable that extracts the context used for transformations. The callable is given a snapshot of the configuration as argument. Defaults to the constant function always returning None.
- deduce_required (bool, optional) – Boolean that enables future behaviour of deducing whether a schema entry is required by inspecting allow_none and default. In particular, using required in schemas as well as not setting deduce_required=True is deprecated.
Raises: TypeError, KeyError, ValueError – Approperiate errors are raised if provided with an invalid schema. Note that errors are independent of raw_config and layers and hence not user input responsive.
-
errors
¶ An iterable of configsuite.errors that occurred during validation. Is always empty if valid is True and non-empty otherwise.
-
push
(raw_config)[source]¶ Builds a new suite with raw_config on top of the current suite.
Builds a new suite with the same schema, but with raw_config on top of the layers in the current suite.
Parameters: raw_config – A configuration that is to take precedence over all layers in the current suite. Returns: Return type: A new ConfigSuite with raw_config as the first layer.
-
readable
¶ A boolean indicating whether the resulting configuration was deemed readable. Is always True if valid is True. For the consequences of being readable, see the documentation of snapshot.
-
snapshot
¶ A complete, immutable representation of the resulting configuration.
Raises: AssertionError
– Raised on access if suite is not readable.
-
valid
¶ A boolean indicating whether the resulting configuration was deemed valid according to the schema.