Skip to content

ConfigModel

Top-level Pydantic model for the PUM configuration file.

Bases: PumCustomBaseModel

ConfigModel represents the main configuration schema for the application.

Attributes:

Name Type Description
pum Optional[PumModel]

The PUM (Project Update Manager) configuration. Defaults to a new PumModel instance.

parameters Optional[List[ParameterDefinitionModel]]

List of parameter definitions. Defaults to an empty list.

migration_hooks Optional[MigrationHooksModel]

Configuration for migration hooks. Defaults to a new MigrationHooksModel instance.

changelogs_directory Optional[str]

Directory path for changelogs. Defaults to "changelogs".

roles Optional[List[RoleModel]]

List of role definitions. Defaults to None.

Source code in pum/config_model.py
class ConfigModel(PumCustomBaseModel):
    """
    ConfigModel represents the main configuration schema for the application.

    Attributes:
        pum: The PUM (Project Update Manager) configuration. Defaults to a new PumModel instance.
        parameters: List of parameter definitions. Defaults to an empty list.
        migration_hooks: Configuration for migration hooks. Defaults to a new MigrationHooksModel instance.
        changelogs_directory: Directory path for changelogs. Defaults to "changelogs".
        roles: List of role definitions. Defaults to None.
    """

    model_config = ConfigDict(extra="forbid")

    pum: Optional[PumModel] = Field(default_factory=PumModel)
    parameters: Optional[List[ParameterDefinitionModel]] = []
    migration_hooks: Optional[MigrationHooksModel] = Field(default_factory=MigrationHooksModel)
    changelogs_directory: Optional[str] = "changelogs"
    roles: Optional[List[RoleModel]] = None