/ 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]