Source code for nrel.hive.state.simulation_state.update.simulation_update

from __future__ import annotations

from abc import abstractmethod, ABC
from typing import Optional, Tuple, TYPE_CHECKING

if TYPE_CHECKING:
    from nrel.hive.state.simulation_state.simulation_state import SimulationState
    from nrel.hive.runner.environment import Environment


[docs]class SimulationUpdateFunction(ABC):
[docs] @abstractmethod def update( self, simulation_state: SimulationState, env: Environment ) -> Tuple[SimulationState, Optional[SimulationUpdateFunction]]: """ takes a simulation state and modifies it, returning the updated simulation state :param simulation_state: the state to modify :param env: the environmental variables for this run :return: the updated sim state, along with any reporting; as well, an Optionally-updated SimulationUpdate function """