:py:mod:`leads.context`
=======================

.. py:module:: leads.context

.. autodoc2-docstring:: leads.context
   :allowtitles:

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

Classes
~~~~~~~

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

   * - :py:obj:`Context <leads.context.Context>`
     - .. autodoc2-docstring:: leads.context.Context
          :summary:

Functions
~~~~~~~~~

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

   * - :py:obj:`_check_data_type <leads.context._check_data_type>`
     - .. autodoc2-docstring:: leads.context._check_data_type
          :summary:

Data
~~~~

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

   * - :py:obj:`T <leads.context.T>`
     - .. autodoc2-docstring:: leads.context.T
          :summary:

API
~~~

.. py:data:: T
   :canonical: leads.context.T
   :value: '_TypeVar(...)'

   .. autodoc2-docstring:: leads.context.T

.. py:function:: _check_data_type(data: leads.context.T, superclass: type[leads.data.DataContainer] = DataContainer) -> None
   :canonical: leads.context._check_data_type

   .. autodoc2-docstring:: leads.context._check_data_type

.. py:class:: Context(initial_data: leads.context.T | None, data_seq_size: int, num_laps_timed: int)
   :canonical: leads.context.Context

   Bases: :py:obj:`typing.Generic`\ [\ :py:obj:`leads.context.T`\ ]

   .. autodoc2-docstring:: leads.context.Context

   .. rubric:: Initialization

   .. autodoc2-docstring:: leads.context.Context.__init__

   .. py:method:: data() -> leads.context.T
      :canonical: leads.context.Context.data

      .. autodoc2-docstring:: leads.context.Context.data

   .. py:method:: push(data: leads.context.T) -> None
      :canonical: leads.context.Context.push

      .. autodoc2-docstring:: leads.context.Context.push

   .. py:method:: esc_mode(esc_mode: leads.constant.ESCMode | None = None) -> leads.constant.ESCMode | None
      :canonical: leads.context.Context.esc_mode

      .. autodoc2-docstring:: leads.context.Context.esc_mode

   .. py:method:: update() -> None
      :canonical: leads.context.Context.update
      :abstractmethod:

      .. autodoc2-docstring:: leads.context.Context.update

   .. py:method:: intervene(*args, **kwargs) -> None
      :canonical: leads.context.Context.intervene
      :abstractmethod:

      .. autodoc2-docstring:: leads.context.Context.intervene

   .. py:method:: suspend(*args, **kwargs) -> None
      :canonical: leads.context.Context.suspend
      :abstractmethod:

      .. autodoc2-docstring:: leads.context.Context.suspend

   .. py:method:: time_lap() -> None
      :canonical: leads.context.Context.time_lap

      .. autodoc2-docstring:: leads.context.Context.time_lap

   .. py:method:: lap_times() -> list[int]
      :canonical: leads.context.Context.lap_times

      .. autodoc2-docstring:: leads.context.Context.lap_times

   .. py:method:: speed_trend() -> float
      :canonical: leads.context.Context.speed_trend

      .. autodoc2-docstring:: leads.context.Context.speed_trend

   .. py:method:: brake_indicator(brake_indicator: bool | None = None) -> bool | None
      :canonical: leads.context.Context.brake_indicator

      .. autodoc2-docstring:: leads.context.Context.brake_indicator

   .. py:method:: left_indicator(left_indicator: bool | None = None, override: bool = False) -> bool | None
      :canonical: leads.context.Context.left_indicator

      .. autodoc2-docstring:: leads.context.Context.left_indicator

   .. py:method:: right_indicator(right_indicator: bool | None = None, override: bool = False) -> bool | None
      :canonical: leads.context.Context.right_indicator

      .. autodoc2-docstring:: leads.context.Context.right_indicator

   .. py:method:: hazard(hazard: bool | None = None) -> bool | None
      :canonical: leads.context.Context.hazard

      .. autodoc2-docstring:: leads.context.Context.hazard
