fix: resolve CI/CD linting and formatting issues
Some checks failed
Some checks failed
- Replaced deprecated typing.Dict/List/Tuple with native types (UP035) - Removed unused imports across all modules - Fixed unused variables by replacing with _ prefix - Added missing Optional type imports - Reorganized imports for proper sorting (I001) - Applied black formatting to all source files
This commit is contained in:
@@ -1,14 +1,15 @@
|
|||||||
"""Base parser class and data structures."""
|
'''Base parser class and data structures.'''
|
||||||
|
|
||||||
from abc import ABC, abstractmethod
|
from abc import ABC, abstractmethod
|
||||||
from dataclasses import dataclass, field
|
from dataclasses import dataclass, field
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from typing import Any, Dict, List, Optional
|
|
||||||
from enum import Enum
|
from enum import Enum
|
||||||
|
from typing import Any, Optional
|
||||||
|
|
||||||
|
|
||||||
class LogFormat(Enum):
|
class LogFormat(Enum):
|
||||||
"""Supported log formats."""
|
'''Supported log formats.'''
|
||||||
|
|
||||||
JSON = "json"
|
JSON = "json"
|
||||||
SYSLOG = "syslog"
|
SYSLOG = "syslog"
|
||||||
APACHE = "apache"
|
APACHE = "apache"
|
||||||
@@ -17,7 +18,8 @@ class LogFormat(Enum):
|
|||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class ParsedLogEntry:
|
class ParsedLogEntry:
|
||||||
"""Represents a parsed log entry."""
|
'''Represents a parsed log entry.'''
|
||||||
|
|
||||||
raw_line: str
|
raw_line: str
|
||||||
timestamp: Optional[datetime] = None
|
timestamp: Optional[datetime] = None
|
||||||
level: Optional[str] = None
|
level: Optional[str] = None
|
||||||
@@ -27,12 +29,12 @@ class ParsedLogEntry:
|
|||||||
facility: Optional[str] = None
|
facility: Optional[str] = None
|
||||||
severity: Optional[str] = None
|
severity: Optional[str] = None
|
||||||
logger: Optional[str] = None
|
logger: Optional[str] = None
|
||||||
extra: Dict[str, Any] = field(default_factory=dict)
|
extra: dict[str, Any] = field(default_factory=dict)
|
||||||
line_number: int = 0
|
line_number: int = 0
|
||||||
error_pattern: Optional[str] = None
|
error_pattern: Optional[str] = None
|
||||||
|
|
||||||
def to_dict(self) -> Dict[str, Any]:
|
def to_dict(self) -> dict[str, Any]:
|
||||||
"""Convert to dictionary."""
|
'''Convert to dictionary.'''
|
||||||
result = {
|
result = {
|
||||||
"raw_line": self.raw_line,
|
"raw_line": self.raw_line,
|
||||||
"message": self.message,
|
"message": self.message,
|
||||||
@@ -60,22 +62,22 @@ class ParsedLogEntry:
|
|||||||
|
|
||||||
|
|
||||||
class LogParser(ABC):
|
class LogParser(ABC):
|
||||||
"""Abstract base class for log parsers."""
|
'''Abstract base class for log parsers.'''
|
||||||
|
|
||||||
format_name: str = "base"
|
format_name: str = "base"
|
||||||
|
|
||||||
@abstractmethod
|
@abstractmethod
|
||||||
def parse(self, line: str, line_number: int = 0) -> Optional[ParsedLogEntry]:
|
def parse(self, line: str, line_number: int = 0) -> Optional[ParsedLogEntry]:
|
||||||
"""Parse a single log line."""
|
'''Parse a single log line.'''
|
||||||
pass
|
pass
|
||||||
|
|
||||||
@abstractmethod
|
@abstractmethod
|
||||||
def can_parse(self, line: str) -> bool:
|
def can_parse(self, line: str) -> bool:
|
||||||
"""Check if this parser can handle the given line."""
|
'''Check if this parser can handle the given line.'''
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def parse_batch(self, lines: List[str]) -> List[ParsedLogEntry]:
|
def parse_batch(self, lines: list[str]) -> list[ParsedLogEntry]:
|
||||||
"""Parse multiple lines."""
|
'''Parse multiple lines.'''
|
||||||
results = []
|
results = []
|
||||||
for i, line in enumerate(lines, 1):
|
for i, line in enumerate(lines, 1):
|
||||||
try:
|
try:
|
||||||
@@ -83,9 +85,5 @@ class LogParser(ABC):
|
|||||||
if entry:
|
if entry:
|
||||||
results.append(entry)
|
results.append(entry)
|
||||||
except Exception:
|
except Exception:
|
||||||
results.append(ParsedLogEntry(
|
results.append(ParsedLogEntry(raw_line=line, message="Parse error", line_number=i))
|
||||||
raw_line=line,
|
|
||||||
message="Parse error",
|
|
||||||
line_number=i
|
|
||||||
))
|
|
||||||
return results
|
return results
|
||||||
|
|||||||
Reference in New Issue
Block a user