BaseConfig#
- class caf.toolkit.config_base.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
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
Get extra fields set during validation.
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.