47 lines
1.3 KiB
Python
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)
|
|
|