aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/hrc/config.py
blob: b6458b238af9f4f0aaa38ace26294d492f4ab8ec (plain) (blame)
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
from typing import Set, Union

from pydantic import BaseModel, ConfigDict, DirectoryPath, Field


class ConfigModel(BaseModel):
    model_config = ConfigDict(extra="allow")

    __config_name__: str = ""


class LogConfig(ConfigModel):
    level: Union[str, int] = "DEBUG"
    verbose_exception: bool = False


class CoreConfig(ConfigModel):
    rules: Set[str] = Field(default_factory=set)
    rule_dirs: Set[DirectoryPath] = Field(default_factory=set)
    log: LogConfig = LogConfig()


class RuleConfig(ConfigModel):
    """rule configuration."""


class MainConfig(ConfigModel):
    core: CoreConfig = CoreConfig()
    rule: RuleConfig = RuleConfig()