File size: 628 Bytes
19e2683
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
from abc import ABC, abstractmethod

from ci_triage_env.schemas.diagnosis import DiagnosisLabel
from ci_triage_env.schemas.scenario import Scenario


class ScenarioFamilyGenerator(ABC):
    family_name: str
    label: DiagnosisLabel

    @abstractmethod
    def generate(self, seed: int, source_log_hash: str | None = None) -> Scenario: ...

    @abstractmethod
    def informative_tools(self) -> list[str]:
        """Tools that are informative for this family by construction."""

    @abstractmethod
    def minimal_evidence_set(self) -> list[str]:
        """Smallest tool set that uniquely determines correct diagnosis."""