Skip to content

block_interface

Defines the contract for all logic blocks in the safety analysis.

BlockInterface

Bases: ABC

Abstract interface defining the mandatory structure for all logic blocks.

Every block in the system must implement this interface to ensure modularity and nesting capabilities within the safety analysis.

Source code in src/ecc_analyzer/interfaces/block_interface.py
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
class BlockInterface(ABC):
    """Abstract interface defining the mandatory structure for all logic blocks.

    Every block in the system must implement this interface to ensure modularity
    and nesting capabilities within the safety analysis.
    """

    @abstractmethod
    def compute_fit(self, spfm_rates: dict[FaultType, float], lfm_rates: dict[FaultType, float]) -> tuple[dict[FaultType, float], dict[FaultType, float]]:
        """Transforms the input fault rate dictionaries according to the block's specific logic.

        Args:
            spfm_rates (dict[FaultType, float]): Dictionary mapping fault types to
                their current residual (SPFM) failure rates (FIT).
            lfm_rates (dict[FaultType, float]): Dictionary mapping fault types to
                their current latent (LFM) failure rates (FIT).

        Returns:
            tuple[dict[FaultType, float], dict[FaultType, float]]: A tuple containing:
                - Updated SPFM rates dictionary.
                - Updated LFM rates dictionary.
        """
        pass

compute_fit(spfm_rates, lfm_rates) abstractmethod

Transforms the input fault rate dictionaries according to the block's specific logic.

Parameters:

Name Type Description Default
spfm_rates dict[FaultType, float]

Dictionary mapping fault types to their current residual (SPFM) failure rates (FIT).

required
lfm_rates dict[FaultType, float]

Dictionary mapping fault types to their current latent (LFM) failure rates (FIT).

required

Returns:

Type Description
tuple[dict[FaultType, float], dict[FaultType, float]]

tuple[dict[FaultType, float], dict[FaultType, float]]: A tuple containing: - Updated SPFM rates dictionary. - Updated LFM rates dictionary.

Source code in src/ecc_analyzer/interfaces/block_interface.py
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
@abstractmethod
def compute_fit(self, spfm_rates: dict[FaultType, float], lfm_rates: dict[FaultType, float]) -> tuple[dict[FaultType, float], dict[FaultType, float]]:
    """Transforms the input fault rate dictionaries according to the block's specific logic.

    Args:
        spfm_rates (dict[FaultType, float]): Dictionary mapping fault types to
            their current residual (SPFM) failure rates (FIT).
        lfm_rates (dict[FaultType, float]): Dictionary mapping fault types to
            their current latent (LFM) failure rates (FIT).

    Returns:
        tuple[dict[FaultType, float], dict[FaultType, float]]: A tuple containing:
            - Updated SPFM rates dictionary.
            - Updated LFM rates dictionary.
    """
    pass