Add rule and finding models

This commit is contained in:
2026-01-29 21:26:08 +00:00
parent 5e4cac42a4
commit fcf70753c3

View File

@@ -1,14 +1,10 @@
"""Rule model for validation patterns."""
"""Rule model."""
import re
from dataclasses import dataclass, field
from typing import Optional, Pattern
@dataclass
class Rule:
"""Represents a validation rule."""
id: str
name: str
pattern: str
@@ -19,43 +15,27 @@ class Rule:
_compiled_pattern: Optional[Pattern[str]] = field(default=None, repr=False)
def __post_init__(self):
"""Compile the regex pattern after initialization."""
try:
self._compiled_pattern = re.compile(self.pattern)
except re.error as e:
raise ValueError(f"Invalid regex pattern '{self.pattern}': {e}")
def match(self, text: str) -> Optional[re.Match[str]]:
"""Match the pattern against text."""
def match(self, text: str):
if self._compiled_pattern:
return self._compiled_pattern.search(text)
return None
def matches(self, text: str) -> bool:
"""Check if the pattern matches the text."""
return self.match(text) is not None
def to_dict(self) -> dict:
"""Convert rule to dictionary."""
def to_dict(self):
return {
"id": self.id,
"name": self.name,
"pattern": self.pattern,
"severity": self.severity,
"message": self.message,
"suggestion": self.suggestion,
"enabled": self.enabled,
"id": self.id, "name": self.name, "pattern": self.pattern,
"severity": self.severity, "message": self.message,
"suggestion": self.suggestion, "enabled": self.enabled,
}
@classmethod
def from_dict(cls, data: dict) -> "Rule":
"""Create a Rule from a dictionary."""
def from_dict(cls, data):
return cls(
id=data["id"],
name=data["name"],
pattern=data["pattern"],
severity=data["severity"],
message=data["message"],
suggestion=data.get("suggestion", ""),
enabled=data.get("enabled", True),
id=data["id"], name=data["name"], pattern=data["pattern"],
severity=data["severity"], message=data["message"],
suggestion=data.get("suggestion", ""), enabled=data.get("enabled", True),
)