Files

47 lines
1.3 KiB
Python

from __future__ import annotations
from dataclasses import asdict, dataclass, field
from typing import Any, Dict, List, Optional
VERDICTS = {"implemented", "partial", "missing", "conflict", "uncertain"}
@dataclass
class RequirementSnapshot:
requirement_uid: str
title: str
description: str
acceptance_criteria: List[str] = field(default_factory=list)
requirement_type: Optional[str] = None
section_title: Optional[str] = None
interface_name: Optional[str] = None
interface_type: Optional[str] = None
data_source: Optional[str] = None
data_destination: Optional[str] = None
def to_dict(self) -> Dict[str, Any]:
return asdict(self)
@dataclass
class ConsistencyResultItem:
requirement_uid: str
requirement_title: str
requirement_type: Optional[str]
requirement_text: str
verdict: str
coverage_score: float
confidence: float
matched_functions: List[Dict[str, Any]]
covered_points: List[str] = field(default_factory=list)
missing_points: List[str] = field(default_factory=list)
conflict_points: List[str] = field(default_factory=list)
call_chain_evidence: List[str] = field(default_factory=list)
suggestion: str = ""
raw_judgment: Dict[str, Any] = field(default_factory=dict)
def to_dict(self) -> Dict[str, Any]:
return asdict(self)