Padmanav's picture
fixed lint
a79668c
Raw
History Blame Contribute Delete
1.6 kB
from pydantic import BaseModel, model_validator, field_validator
from typing import List, Optional, Any
class Bug(BaseModel):
description: str
file: str = "unknown"
line: Optional[int] = None
severity: str = "critical"
@field_validator("file", mode="before")
@classmethod
def coerce_file(cls, v: Any) -> str:
if isinstance(v, list):
return ", ".join(str(f) for f in v) if v else "unknown"
return v or "unknown"
class Warning(BaseModel):
description: str
file: str = "unknown"
line: Optional[int] = None
@field_validator("file", mode="before")
@classmethod
def coerce_file(cls, v: Any) -> str:
if isinstance(v, list):
return ", ".join(str(f) for f in v) if v else "unknown"
return v or "unknown"
class Suggestion(BaseModel):
description: str
file: str = "unknown"
@field_validator("file", mode="before")
@classmethod
def coerce_file(cls, v: Any) -> str:
if isinstance(v, list):
return ", ".join(str(f) for f in v) if v else "unknown"
return v or "unknown"
class IssueReport(BaseModel):
critical: List[Bug] = []
warnings: List[Warning] = []
suggestions: List[Suggestion] = []
total_critical: int = 0
total_warnings: int = 0
total_suggestions: int = 0
@model_validator(mode="after")
def compute_totals(self) -> "IssueReport":
self.total_critical = len(self.critical)
self.total_warnings = len(self.warnings)
self.total_suggestions = len(self.suggestions)
return self