File size: 655 Bytes
f18435c | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | import re
from error_taxonomy import ERROR_CATEGORIES
COMPILED_PATTERNS = {
cat: [re.compile(p) for p in pats]
for cat, pats in ERROR_CATEGORIES.items()
}
def extract_error_features(log_text: str) -> dict:
result = {
"category": "unknown",
"matched_signals": [],
"line_numbers": []
}
for category, patterns in COMPILED_PATTERNS.items():
for pattern in patterns:
if pattern.search(log_text):
result["category"] = category
result["matched_signals"].append(pattern.pattern)
result["line_numbers"] = re.findall(r"line (\d+)", log_text)
return result
|