From fcf70753c31a252684250ec1a3953a3554f397ad Mon Sep 17 00:00:00 2001 From: 7000pctAUTO Date: Thu, 29 Jan 2026 21:26:08 +0000 Subject: [PATCH] Add rule and finding models --- src/models/rule.py | 40 ++++++++++------------------------------ 1 file changed, 10 insertions(+), 30 deletions(-) diff --git a/src/models/rule.py b/src/models/rule.py index f1d0b66..ee8f6d9 100644 --- a/src/models/rule.py +++ b/src/models/rule.py @@ -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), )