ConfigDict🔗
Pydantic's ConfigDict dictionary🔗
A Pydantic model's internal ConfigDict dictionary controls many aspects of its functionality.
An exhaustive list can be found in Pydantic's documentation.
The DriConfigConfigDict dictionary, as it inherits from Pydantic's BaseModel, has all these configuration options available.
However, we have added some new configuration options, and modified some of its defaults.
DriConfigConfigDict's dictionary.🔗
New configurations🔗
| Field | Type (default) | Description | 
|---|---|---|
| config_folder | str("config") | Path to the folder where the YAML file is placed. | 
| config_file_name | str("config.yaml") | YAML file name. | 
| config_file_encoding | Optional[str](None) | YAML file encoding. If None, thePyYAMLdefault is used. | 
| config_prefix | str("") | Prefix for configuration variable names. | 
| case_sensitive | bool(False) | Whether to be case sensitive when reading variables from the YAML configuration file. | 
Tip
The config_prefix is useful when working with environments, so that configurations can be named e.g. after
DEV_, PRE_ or PRO_ prefixes, but accessed with their root names within the code.
Note that the prefix only affects first-level names in the YAML file. Names in nested configurations should not be prefixed.
# config.yaml
PRE_PARENT_CONFIG:
    CHILD_CONFIG_A: 1
    CHILD_CONFIG_B: 1.2
# main.py
from typing import Dict
from driconfig import DriConfig, DriConfigConfigDict
class AppConfig(DriConfig):
    """Configuration class to parse the config.yaml file contents."""
    """Configure AppConfig to point at the config.yaml file."""
    model_config = DriConfigConfigDict(
        config_folder=".",
        config_file_name="config.yaml",
        config_prefix = "PRE_",
    )
    PARENT_CONFIG: Dict[str, float]
app_config = AppConfig()
print(app_config.model_dump_json(indent=4))
"""
{
    "PARENT_CONFIG": {
        "CHILD_CONFIG_A": 1.0,
        "CHILD_CONFIG_B": 1.2
    }
}
"""
Modified configurations🔗
| Field | Type (default) | Description | 
|---|---|---|
| validate_default | bool(True) | Defaults to Trueso that validation is done in YAML file parsing. | 
| arbitrary_types_allowed | bool(True) | Allow arbitrary types by default. | 
| extra | str(forbid) | Forbid extra arguments on initialization by default. |