Source code for crappy.blocks.generator_path.constant

# coding: utf-8

from typing import Union, Dict
import logging

from .meta_path import Path, ConditionType


[docs] class Constant(Path): """The simplest Path, outputs the same constant value until the stop condition is met. .. versionadded:: 1.4.0 """
[docs] def __init__(self, condition: Union[str, ConditionType], value: float = None) -> None: """Sets the args and initializes the parent class. Args: condition: The condition for switching to the next Path. Refer to :class:`~crappy.blocks.generator_path.meta_path.Path` for more information. value: The value to output. .. versionchanged:: 1.5.10 renamed *time* argument to *_last_time* .. versionchanged:: 1.5.10 renamed *cmd* argument to *_last_cmd* .. versionremoved:: 1.5.10 *send_one* argument .. versionremoved:: 2.0.0 *_last_time* and *_last_cmd* arguments """ super().__init__() self._condition = self.parse_condition(condition) if value is None and self.last_cmd is None: raise ValueError('For the first path, a value must be given !') self._value = self.last_cmd if value is None else value
[docs] def get_cmd(self, data: Dict[str, list]) -> float: """Returns the value to send or raises :exc:`StopIteration` if the stop condition is met. .. versionadded:: 1.5.10 """ # Checking if the stop condition is met if self._condition(data): self.log(logging.DEBUG, "Stop condition met") raise StopIteration # Returning the value return self._value