/ custom_types / rules_rulesets.py
rules_rulesets.py
1 from typing import Literal 2 3 from pydantic import BaseModel, ConfigDict 4 5 type RuleType = Literal["network", "moderation", "semantic"] 6 7 8 class Rule(BaseModel): 9 model_config = ConfigDict(extra="forbid") 10 11 id: str 12 type: "RuleType" 13 output: Literal["binary", "probability"] 14 command: str | None = None 15 requirements: list[str] 16 name: str 17 description: str 18 spec_ref: str 19 20 21 class RuleSet(BaseModel): 22 model_config = ConfigDict(extra="forbid") 23 24 ruleset_id: str 25 version: str 26 ruleset_type: "RuleType" 27 source_spec: str 28 name: str 29 description: str 30 rules: list[Rule]