Source code for statetracker.operation

"""Operation - Abstract base class for state operations."""

import logging
from abc import ABC, abstractmethod

logger = logging.getLogger(__name__)


[docs] class Operation(ABC): """Base class for state operations."""
[docs] @abstractmethod def compute_num_states(self, parent_num_values: tuple[int, ...]) -> int: """Compute num_values for this node given parent num_values.""" pass
[docs] @abstractmethod def decompose(self, value: int, parent_num_values: tuple[int, ...]) -> tuple[int, ...]: """Decompose this node's value into parent values.""" pass