Add patterns module (definitions and manager)
Some checks failed
CI / test (push) Has been cancelled
CI / build (push) Has been cancelled

This commit is contained in:
2026-02-03 06:59:58 +00:00
parent ff9c82b4bb
commit e0c1c6b4ae

View File

@@ -0,0 +1,64 @@
"""Pattern definitions for VibeGuard."""
from dataclasses import dataclass, field
from enum import Enum
from typing import Any
class Severity(Enum):
"""Severity levels for detected issues."""
CRITICAL = "critical"
ERROR = "error"
WARNING = "warning"
INFO = "info"
@dataclass
class Pattern:
"""Definition of an anti-pattern."""
id: str
name: str
description: str
severity: Severity
languages: list[str]
message: str
suggestion: str
query: str = ""
before_example: str = ""
after_example: str = ""
category: str = "general"
@dataclass
class Issue:
"""A detected issue in the code."""
pattern_id: str
file: str
line: int
severity: Severity
message: str
suggestion: str
language: str = ""
column: int = 0
end_line: int = 0
end_column: int = 0
code_snippet: str = ""
def to_dict(self) -> dict[str, Any]:
"""Convert issue to dictionary."""
return {
"pattern": self.pattern_id,
"file": self.file,
"line": self.line,
"severity": self.severity.value,
"message": self.message,
"suggestion": self.suggestion,
"language": self.language,
"column": self.column,
"end_line": self.end_line,
"end_column": self.end_column,
"code_snippet": self.code_snippet,
}