Skip to content

supaernova.configs.globals

[docs] module supaernova.configs.globals

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# Copyright 2025 Patrick Armstrong

from typing import Any, Self

from pydantic import (
    BaseModel,
    JsonValue,
    StrictBool,
)


class GlobalConfig(BaseModel):
    verbose: StrictBool
    force: StrictBool

    @classmethod
    def from_config(
        cls,
        input_config: dict[str, JsonValue],
        *,  # Force keyword-only arguments
        verbose: StrictBool = False,
        force: StrictBool = False,
    ) -> Self:
        config = {**cls.default_config(verbose=verbose, force=force), **input_config}
        return cls.model_validate(config)

    @classmethod
    def default_config(
        cls,
        *,  # Force keyword-only arguments
        verbose: StrictBool = False,
        force: StrictBool = False,
    ) -> dict[str, Any]:
        return {"verbose": verbose, "force": force}