configmodel package

Submodules

configmodel.ConfigModel module

class configmodel.ConfigModel.ConfigModel(filename=None, **kwargs)[source]

Bases: object

Base class for Config Models

class configmodel.ConfigModel.FieldInstance[source]

Bases: object

definition: FieldBase | Any | None
get_path()[source]

Get path to this field

get_value()[source]
name: str | None
serializer: SerializerBase | None
set_value(value)[source]
class configmodel.ConfigModel.MetaConfigModel[source]

Bases: type

Metaclass for Config Models

configmodel.Decorators module

configmodel.Decorators.config_file(filename)[source]

Decorator for ConfigModel classes to set the config file

configmodel.Decorators.nested_field(field_name)[source]

Decorator for nested ConfigModel classes to define the field name in the parent class

configmodel.FieldBase module

class configmodel.FieldBase.FieldBase(name, default_value=None)[source]

Bases: object

configmodel.Logger module

class configmodel.Logger.Log[source]

Bases: object

classmethod debug(message)[source]
classmethod error(message)[source]
logging_enabled = False

configmodel.MixinCachedValues module

class configmodel.MixinCachedValues.MixinCachedValues[source]

Bases: object

Mixin for caching values

class CachedValue(path, value, is_dirty=False)[source]

Bases: object

Cached value

assign_cached_values(cached_values)[source]

Assign cached values

get_cached_value(path)[source]

Get cached value

set_cached_value(path, value, is_dirty=True)[source]

Set cached value

configmodel.MixinDelayedWrite module

class configmodel.MixinDelayedWrite.InterruptibleTimer(timeout_seconds, callback)[source]

Bases: object

Performs a callback after a specified timeout. The timer can be restarted by calling prolong() method.

cancel()[source]
restart(timeout_seconds)[source]
class configmodel.MixinDelayedWrite.MixinDelayedWrite(delayed_write_enabled=False, delay_seconds=1.0)[source]

Bases: object

Mixin for delayed write

DEFAULT_DELAY_SECONDS = 1.0

configmodel.SerializerBase module

class configmodel.SerializerBase.SerializerBase(filename)[source]

Bases: object

class FieldDefaultValue(path, value)[source]

Bases: object

get_value(path)[source]
set_value(path, value)[source]
write_default_values_from_model(default_values: List[FieldDefaultValue])[source]

Initialize default values

configmodel.SerializerIni module

class configmodel.SerializerIni.SerializerIni(filename)[source]

Bases: SerializerBase, MixinCachedValues, MixinDelayedWrite

DEFAULT_SECTION = 'Global'
class ParameterLocation[source]

Bases: object

property full_name
get_value(path)[source]
set_value(path, value)[source]
write_default_values_from_model(default_values)[source]

Write default values to configuration file, if they are not already set

configmodel.SerializersFactory module

class configmodel.SerializersFactory.SerializersFactory[source]

Bases: object

SUPPORTED_SERIALIZERS = [[<class 'configmodel.SerializerIni.SerializerIni'>, ['.ini']]]
classmethod get_all_supported_extensions()[source]

Get all supported extensions

classmethod get_serializer_by_filename(filename)[source]

Get serializer by filename

configmodel.Utils module

configmodel.Utils.pascal_case_to_snake_case(pascal_case_string)[source]

Convert PascalCase string to snake_case string

Module contents

class configmodel.ConfigModel(filename=None, **kwargs)[source]

Bases: object

Base class for Config Models

configmodel.config_file(filename)[source]

Decorator for ConfigModel classes to set the config file

configmodel.nested_field(field_name)[source]

Decorator for nested ConfigModel classes to define the field name in the parent class