Source code for leads.event

from typing import Any as _Any, override as _override, overload as _overload

from leads.callback import CallbackChain
from leads.context import Context
from leads.data import DataContainer


[docs] class Event(object): @_overload def __init__(self, *args, **kwargs) -> None: # real signature unknown raise NotImplementedError def __init__(self, t: str, context: Context) -> None: self.t: str = t self.context: Context = context
[docs] @_override def __str__(self) -> str: return f"[{self.t}] {self.context.data()}"
[docs] class DataPushedEvent(Event): def __init__(self, context: Context, data: DataContainer) -> None: super().__init__("DATA PUSHED", context) self.data: DataContainer = data
[docs] class UpdateEvent(Event): def __init__(self, context: Context) -> None: super().__init__("UPDATE", context)
[docs] class SystemEvent(Event): def __init__(self, t: str, context: Context, system: str) -> None: super().__init__(t, context) self.system: str = system
[docs] class InterventionEvent(SystemEvent): def __init__(self, context: Context, system: str, *data: _Any) -> None: super().__init__("INTERVENTION", context, system) self.data: tuple[_Any, ...] = data
[docs] class InterventionExitEvent(InterventionEvent): pass
[docs] class SuspensionEvent(SystemEvent): def __init__(self, context: Context, system: str, cause: str, fatal: bool = False) -> None: super().__init__("SUSPENSION", context, system) self.cause: str = cause self.fatal: bool = fatal
[docs] class SuspensionExitEvent(SuspensionEvent): pass
[docs] class EventListener(CallbackChain):
[docs] @_override def super(self, e: Event) -> None: super().super(e)
[docs] def pre_push(self, event: DataPushedEvent) -> None: ...
[docs] def post_push(self, event: DataPushedEvent) -> None: ...
[docs] def on_update(self, event: UpdateEvent) -> None: ...
[docs] def pre_intervene(self, event: InterventionEvent) -> None: ...
[docs] def post_intervene(self, event: InterventionExitEvent) -> None: ...
[docs] def pre_suspend(self, event: SuspensionEvent) -> None: ...
[docs] def post_suspend(self, event: SuspensionExitEvent) -> None: ...
[docs] def brake_indicator(self, event: Event, state: bool) -> None: ...
[docs] def left_indicator(self, event: Event, state: bool) -> None: ...
[docs] def right_indicator(self, event: Event, state: bool) -> None: ...
[docs] def hazard(self, event: Event, state: bool) -> None: ...