:py:mod:`leads.event`
=====================

.. py:module:: leads.event

.. autodoc2-docstring:: leads.event
   :allowtitles:

Module Contents
---------------

Classes
~~~~~~~

.. list-table::
   :class: autosummary longtable
   :align: left

   * - :py:obj:`Event <leads.event.Event>`
     - .. autodoc2-docstring:: leads.event.Event
          :summary:
   * - :py:obj:`DataPushedEvent <leads.event.DataPushedEvent>`
     - .. autodoc2-docstring:: leads.event.DataPushedEvent
          :summary:
   * - :py:obj:`UpdateEvent <leads.event.UpdateEvent>`
     - .. autodoc2-docstring:: leads.event.UpdateEvent
          :summary:
   * - :py:obj:`SystemEvent <leads.event.SystemEvent>`
     - .. autodoc2-docstring:: leads.event.SystemEvent
          :summary:
   * - :py:obj:`InterventionEvent <leads.event.InterventionEvent>`
     - .. autodoc2-docstring:: leads.event.InterventionEvent
          :summary:
   * - :py:obj:`InterventionExitEvent <leads.event.InterventionExitEvent>`
     - .. autodoc2-docstring:: leads.event.InterventionExitEvent
          :summary:
   * - :py:obj:`SuspensionEvent <leads.event.SuspensionEvent>`
     - .. autodoc2-docstring:: leads.event.SuspensionEvent
          :summary:
   * - :py:obj:`SuspensionExitEvent <leads.event.SuspensionExitEvent>`
     - .. autodoc2-docstring:: leads.event.SuspensionExitEvent
          :summary:
   * - :py:obj:`EventListener <leads.event.EventListener>`
     - .. autodoc2-docstring:: leads.event.EventListener
          :summary:

API
~~~

.. py:class:: Event(t: str, context: leads.context.Context)
   :canonical: leads.event.Event

   Bases: :py:obj:`object`

   .. autodoc2-docstring:: leads.event.Event

   .. rubric:: Initialization

   .. autodoc2-docstring:: leads.event.Event.__init__

   .. py:method:: __str__() -> str
      :canonical: leads.event.Event.__str__

.. py:class:: DataPushedEvent(context: leads.context.Context, data: leads.data.DataContainer)
   :canonical: leads.event.DataPushedEvent

   Bases: :py:obj:`leads.event.Event`

   .. autodoc2-docstring:: leads.event.DataPushedEvent

   .. rubric:: Initialization

   .. autodoc2-docstring:: leads.event.DataPushedEvent.__init__

.. py:class:: UpdateEvent(context: leads.context.Context)
   :canonical: leads.event.UpdateEvent

   Bases: :py:obj:`leads.event.Event`

   .. autodoc2-docstring:: leads.event.UpdateEvent

   .. rubric:: Initialization

   .. autodoc2-docstring:: leads.event.UpdateEvent.__init__

.. py:class:: SystemEvent(t: str, context: leads.context.Context, system: str)
   :canonical: leads.event.SystemEvent

   Bases: :py:obj:`leads.event.Event`

   .. autodoc2-docstring:: leads.event.SystemEvent

   .. rubric:: Initialization

   .. autodoc2-docstring:: leads.event.SystemEvent.__init__

.. py:class:: InterventionEvent(context: leads.context.Context, system: str, *data: typing.Any)
   :canonical: leads.event.InterventionEvent

   Bases: :py:obj:`leads.event.SystemEvent`

   .. autodoc2-docstring:: leads.event.InterventionEvent

   .. rubric:: Initialization

   .. autodoc2-docstring:: leads.event.InterventionEvent.__init__

.. py:class:: InterventionExitEvent(context: leads.context.Context, system: str, *data: typing.Any)
   :canonical: leads.event.InterventionExitEvent

   Bases: :py:obj:`leads.event.InterventionEvent`

   .. autodoc2-docstring:: leads.event.InterventionExitEvent

   .. rubric:: Initialization

   .. autodoc2-docstring:: leads.event.InterventionExitEvent.__init__

.. py:class:: SuspensionEvent(context: leads.context.Context, system: str, cause: str, fatal: bool = False)
   :canonical: leads.event.SuspensionEvent

   Bases: :py:obj:`leads.event.SystemEvent`

   .. autodoc2-docstring:: leads.event.SuspensionEvent

   .. rubric:: Initialization

   .. autodoc2-docstring:: leads.event.SuspensionEvent.__init__

.. py:class:: SuspensionExitEvent(context: leads.context.Context, system: str, cause: str, fatal: bool = False)
   :canonical: leads.event.SuspensionExitEvent

   Bases: :py:obj:`leads.event.SuspensionEvent`

   .. autodoc2-docstring:: leads.event.SuspensionExitEvent

   .. rubric:: Initialization

   .. autodoc2-docstring:: leads.event.SuspensionExitEvent.__init__

.. py:class:: EventListener(chain: typing.Self | None = None)
   :canonical: leads.event.EventListener

   Bases: :py:obj:`leads.callback.CallbackChain`

   .. autodoc2-docstring:: leads.event.EventListener

   .. rubric:: Initialization

   .. autodoc2-docstring:: leads.event.EventListener.__init__

   .. py:method:: super(e: leads.event.Event) -> None
      :canonical: leads.event.EventListener.super

   .. py:method:: pre_push(event: leads.event.DataPushedEvent) -> None
      :canonical: leads.event.EventListener.pre_push

      .. autodoc2-docstring:: leads.event.EventListener.pre_push

   .. py:method:: post_push(event: leads.event.DataPushedEvent) -> None
      :canonical: leads.event.EventListener.post_push

      .. autodoc2-docstring:: leads.event.EventListener.post_push

   .. py:method:: on_update(event: leads.event.UpdateEvent) -> None
      :canonical: leads.event.EventListener.on_update

      .. autodoc2-docstring:: leads.event.EventListener.on_update

   .. py:method:: pre_intervene(event: leads.event.InterventionEvent) -> None
      :canonical: leads.event.EventListener.pre_intervene

      .. autodoc2-docstring:: leads.event.EventListener.pre_intervene

   .. py:method:: post_intervene(event: leads.event.InterventionExitEvent) -> None
      :canonical: leads.event.EventListener.post_intervene

      .. autodoc2-docstring:: leads.event.EventListener.post_intervene

   .. py:method:: pre_suspend(event: leads.event.SuspensionEvent) -> None
      :canonical: leads.event.EventListener.pre_suspend

      .. autodoc2-docstring:: leads.event.EventListener.pre_suspend

   .. py:method:: post_suspend(event: leads.event.SuspensionExitEvent) -> None
      :canonical: leads.event.EventListener.post_suspend

      .. autodoc2-docstring:: leads.event.EventListener.post_suspend

   .. py:method:: brake_indicator(event: leads.event.Event, state: bool) -> None
      :canonical: leads.event.EventListener.brake_indicator

      .. autodoc2-docstring:: leads.event.EventListener.brake_indicator

   .. py:method:: left_indicator(event: leads.event.Event, state: bool) -> None
      :canonical: leads.event.EventListener.left_indicator

      .. autodoc2-docstring:: leads.event.EventListener.left_indicator

   .. py:method:: right_indicator(event: leads.event.Event, state: bool) -> None
      :canonical: leads.event.EventListener.right_indicator

      .. autodoc2-docstring:: leads.event.EventListener.right_indicator

   .. py:method:: hazard(event: leads.event.Event, state: bool) -> None
      :canonical: leads.event.EventListener.hazard

      .. autodoc2-docstring:: leads.event.EventListener.hazard
