[docs]classEnvironmentTerminationCondition(TerminationCondition):"""Terminates the current phase when an ::`~Environment` terminates This :class:`~TerminationCondition` examines updates from an :class:`~Environment` and checks whether the environment itself signals termination. When an environment termination signal is received this :class:`~TerminationCondition` the current **episode**. Example ------- The following snipped is a shortened example from palaestrAI’s experiment definition in which an episode is ended when the environment terminates:: definitions: # (Definitions of environment, agents and phase_config are omitted.) simulation: vanilla: name: palaestrai.simulation:Vanilla conditions: - name: palaestrai.simulation:EnvironmentTerminationCondition params: {} # (Definition of the run configuration is also omitted.) """defphase_flow_control(self,run_governor:RunGovernor,message:Optional[Union[SimulationControllerTerminationRequest]],)->Tuple[SimulationFlowControl,Any]:ifnotisinstance(message,SimulationControllerTerminationRequest):returnSimulationFlowControl.CONTINUE,Nonereturn(message.flow_control_data[self.__class__.__name__][0]),Nonedefcheck_termination(self,message,component=None):""" Checks for environment termination. Parameters ---------- message : Any Examines :class:`~EnvironmentUpdateResponse` messages for ::`~EnvironmentUpdateResponse.is_teminal`. component : Any unused Returns ------- bool ``True`` if ``message.is_terminal``. """returnisinstance(message,EnvironmentUpdateResponse)andmessage.done