upsies.utils.config.base
Base classes for configuration models
Classes
- class upsies.utils.config.base.ConfigBase[source]
Bases:
ConfigDictBaseRoot-level configuration model
Instances map section names to
SectionBasesubclass instances.From a user perspective, a section is a file name without the file extension, e.g. “clients” for “~/.config/upsies/clients.ini”.
- validate_config()[source]
Pass this
ConfigBaseinstance toSectionBase.validate_config()on all sections- Returns:
the
ConfigBaseinstance (i.e. the first argument self)
- property files
Mappingof section names to file pathsSection names should be file stems, i.e. file names without extensions.
- read(section_name, filepath, *, ignore_missing=False)[source]
Read filepath and make its contents available as section
- Raises:
ConfigError – if reading, parsing or validating filepath fails
- write(*sections, include_defaults=False)[source]
Save current configuration to
filesList values use
"\n "(newline followed by two spaces) as separators between items.- Parameters:
- Raises:
ConfigError – if writing fails
- defaults = ConfigBaseDefaults()
Class property that holds an instance of this class with default values
See
_CreateDefaults.
- model_config = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'validate_assignment': True, 'validate_default': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class upsies.utils.config.base.ConfigDictBase[source]
Bases:
MutableMapping,BaseModelpydantic.BaseModelthat provides dictionary field access- model_config = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'validate_assignment': True, 'validate_default': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class upsies.utils.config.base.SectionBase[source]
Bases:
ConfigDictBaseConfiguration model of one section
Instances map subsection names to
SubsectionBaseinstances.From a user perspective, a subsection a section in an INI file, e.g. “[qbittorrent]” in ~/.config/upsies/clients.ini.
- validate_config(config)[source]
Called by
ConfigBase.validate_config()with its own instance after validationThis method does nothing by default. Subclasses can override it if access to sibling sections is required for validation.
- model_config = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'validate_assignment': True, 'validate_default': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class upsies.utils.config.base.SubsectionBase[source]
Bases:
ConfigDictBaseConfiguration model of one subsection
Instances map option names to values.
From a user perspective, an option is a single key-value pair in a section in an INI file, e.g. “foo = bar”.
- as_ini(*, include_defaults=False, comment_defaults=True)[source]
Return option-value pairs in INI file format
- model_config = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'validate_assignment': True, 'validate_default': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].