aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/hrc/config.py
diff options
context:
space:
mode:
Diffstat (limited to 'hrc/config.py')
-rw-r--r--hrc/config.py28
1 files changed, 28 insertions, 0 deletions
diff --git a/hrc/config.py b/hrc/config.py
index e69de29..7db4efe 100644
--- a/hrc/config.py
+++ b/hrc/config.py
@@ -0,0 +1,28 @@
+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() \ No newline at end of file