Source code for precept.events._event

import enum
import time


from .._tools import AutoNameEnum
from .._immutable import ImmutableDict


[docs]class Event: """ Event with payload and stop property. """
[docs] def __init__(self, name: str, payload: dict): self.name = name self.stop: bool = False self.num = 0 self.payload = ImmutableDict(**payload) self.timestamp = time.time()
def __str__(self): # pragma: no cover return self.name def __repr__(self): # pragma: no cover return f'<{self.__class__.__name__} {self.name} {self.timestamp}>'
[docs]class PreceptEvent(AutoNameEnum): """Precept cli events.""" BEFORE_CLI_START = enum.auto() CLI_PARSED = enum.auto() CLI_STARTED = enum.auto() CLI_STOPPED = enum.auto() # pylint: disable=comparison-with-callable def __eq__(self, other): # pragma: no cover if isinstance(other, PreceptEvent): return self.value == other.value if isinstance(other, str): return other in (self.value, self.name, str(self)) if isinstance(other, Event): return other.name == self.value return False def __hash__(self): return hash(self.value) def __str__(self): # pylint: disable=invalid-str-returned return self.value