BaseConfig#

class caf.toolkit.BaseConfig[source]#

Base class for storing model parameters.

Contains functionality for reading / writing parameters to config files in the YAML format.

See also

pydantic.BaseModel

handles converting data to Python types.

pydantic.field_validator

custom validation for attributes.

pydantic.model_validator

custom validation for class.

Examples

Example of creating a config class and initialising it with values, values will be validated and converted to correct type on initialisation.

>>> from pathlib import Path
>>> from caf.toolkit import BaseConfig
>>> class ExampleParameters(BaseConfig):
...    import_folder: Path
...    name: str
...    some_option: bool = True
>>> parameters = ExampleParameters(
...    import_folder="Test Folder",
...    name="Test",
...    some_option=False,
... )

Example of instance of class after initialisation, the path differs depending on operating system.

>>> parameters
ExampleParameters(
    import_folder=WindowsPath('Test Folder'),
    name='Test',
    some_option=False,
)

Config class can be converted to YAML or saved with BaseConfig.save_yaml().

>>> print(parameters.to_yaml())
import_folder: Test Folder
name: Test
some_option: no

Config class data can be loaded from a YAML config file using BaseConfig.load_yaml().

>>> yaml_text = '''
... import_folder: Test Folder
... name: Test
... some_option: no
... '''
>>> loaded_parameters = ExampleParameters.from_yaml(yaml_text)
>>> loaded_parameters == parameters
True

Attributes

model_computed_fields

model_config

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_extra

Get extra fields set during validation.

model_fields

model_fields_set

Returns the set of fields that have been explicitly set on this model instance.

Methods

__init__(**data)

Create a new model by parsing and validating input data from keyword arguments.

construct([_fields_set])

copy(*[, include, exclude, update, deep])

Returns a copy of the model.

dict(*[, include, exclude, by_alias, ...])

from_orm(obj)

from_yaml(text)

Parse class attributes from YAML text.

json(*[, include, exclude, by_alias, ...])

load_yaml(path)

Read YAML file and load the data using from_yaml.

model_construct([_fields_set])

Creates a new instance of the Model class with validated data.

model_copy(*[, update, deep])

!!! abstract "Usage Documentation"

model_dump(*[, mode, include, exclude, ...])

!!! abstract "Usage Documentation"

model_dump_json(*[, indent, include, ...])

!!! abstract "Usage Documentation"

model_json_schema([by_alias, ref_template, ...])

Generates a JSON schema for a model class.

model_parametrized_name(params)

Compute the class name for parametrizations of generic classes.

model_post_init(context, /)

Override this method to perform additional initialization after __init__ and model_construct.

model_rebuild(*[, force, raise_errors, ...])

Try to rebuild the pydantic-core schema for the model.

model_validate(obj, *[, strict, ...])

Validate a pydantic model instance.

model_validate_json(json_data, *[, strict, ...])

!!! abstract "Usage Documentation"

model_validate_strings(obj, *[, strict, ...])

Validate the given object with string data against the Pydantic model.

parse_file(path, *[, content_type, ...])

parse_obj(obj)

parse_raw(b, *[, content_type, encoding, ...])

save_yaml(path[, datetime_comment, ...])

Write data from self to a YAML file.

schema([by_alias, ref_template])

schema_json(*[, by_alias, ref_template])

to_yaml()

Convert attributes from self to YAML string.

update_forward_refs(**localns)

validate(value)

write_example(path_, /[, comment_])

Write examples to a config file.

Attributes Documentation

model_computed_fields = {}#
model_config: ClassVar[ConfigDict] = {}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_extra#

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to “allow”.

model_fields = {}#
model_fields_set#

Returns the set of fields that have been explicitly set on this model instance.

Returns:
A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

Examples using caf.toolkit.BaseConfig#

Using BaseConfig

Using BaseConfig