Module pyfx.internal.configuration.spec
Specification for valid configurations.
This module defines a DSL for checking a configuration is valid.
Functions
def optional_section(section: str) ‑> SectionSpec-
Create a spec for an optional section.
def required_section(section: str) ‑> SectionSpec-
Create a spec for a required section.
Classes
class ComposedSpec (specs: List[Spec])-
Spec composed of multiple specs.
Ancestors
- Spec
- abc.ABC
Subclasses
Methods
def diagnostic(self, config: configparser.ConfigParser) ‑> List[str]-
See
Spec.diagnostic(). def is_valid(self, config: configparser.ConfigParser) ‑> bool-
See
Spec.is_valid().
Inherited members
class ConditionalSectionSpec (section: str, required: bool, condition: Callable[[configparser.ConfigParser], bool])-
Spec for a section that must be validated only when a condition is true.
Ancestors
- SectionSpec
- ComposedSpec
- Spec
- abc.ABC
Inherited members
class ConditionalSpec (spec: Spec, condition: Callable[[configparser.ConfigParser], bool])-
Spec that must be validated only if some other condition is met.
Ancestors
- Spec
- abc.ABC
Methods
def diagnostic(self, config: configparser.ConfigParser) ‑> List[str]-
See
Spec.diagnostic().
Inherited members
class FunctionSpec (condition: Callable[[configparser.ConfigParser], bool], diag_string: str)-
Spec that must be validated only function returns true.
Ancestors
- Spec
- abc.ABC
Methods
def diagnostic(self, config: configparser.ConfigParser) ‑> List[str]-
See
Spec.diagnostic().
Inherited members
class OptionalSpec (spec: Spec)-
Spec of an unitary item that may optionnally be validated.
Non-requirement spec, can be used for documentation purpose
Ancestors
- Spec
- abc.ABC
Methods
def diagnostic(self, config: configparser.ConfigParser) ‑> List[str]-
See
Spec.diagnostic(). def is_valid(self, config: configparser.ConfigParser) ‑> bool-
See
Spec.is_valid().This spec will always return True.
Inherited members
class PossibleValuesSpec (section: str, key: str, values: List[Any])-
Spec validating a section key value is in a given list of possible values if present.
Note that this spec will allow the section or the section key to be missing.
Ancestors
Inherited members
class SectionMustContainKeySpec (section: str, key: str)-
Spec validating a section key is present if section exists.
Note that this spec will allow the section to be missing
Ancestors
Inherited members
class SectionMustExistSpec (section: str)-
Spec validating a section is present.
Ancestors
Inherited members
class SectionSpec (section: str, required: bool = True, specs: Optional[List[Spec]] = None)-
Spec for a section.
Ancestors
- ComposedSpec
- Spec
- abc.ABC
Subclasses
Methods
def may_contains(self, key: str, possible_values: Optional[List[Any]] = None) ‑> SectionSpec-
Add optional key to section spec.
def must_contains(self, key: str, possible_values: Optional[List[Any]] = None) ‑> SectionSpec-
Add required key to section spec.
def when(self, condition: Callable[[configparser.ConfigParser], bool]) ‑> SectionSpec-
Add conditional spec for section.
def when_key_value_is(self, key: str, value: Any) ‑> SectionSpec-
Add spec for section for when a key is at a specific value.
def with_check(self, cond: Callable[[configparser.ConfigParser], bool], diag_msg: str) ‑> SectionSpec-
Add a spec from a function that must be checked.
def with_spec(self, spec: Spec) ‑> SectionSpec-
Add a spec for the section.
Inherited members
class Spec-
Spec that must be followed by a config to build an object.
Ancestors
- abc.ABC
Subclasses
Methods
def diagnostic(self, config: configparser.ConfigParser) ‑> List[str]-
Returns issues with the config regarding the spec.
def is_valid(self, config: configparser.ConfigParser) ‑> bool-
Validate a spec is satisfied.
By default, a spec is validated if there is no diagnostic.
def validate(self, config: configparser.ConfigParser) ‑> None-
Will raise an Error if config does not validate spec.
class SpecError (*args, **kwargs)-
Exception raised when a config does not validate a Spec.
Ancestors
- builtins.Exception
- builtins.BaseException
class UnitSpec (diagnostic: Callable[[configparser.ConfigParser], List[str]])-
Spec of an unitary item that must be validated.
Ancestors
- Spec
- abc.ABC
Subclasses
Methods
def diagnostic(self, config: configparser.ConfigParser) ‑> List[str]-
See
Spec.diagnostic().
Inherited members