:py:mod:`leads.data_persistence.analyzer.inference`
===================================================

.. py:module:: leads.data_persistence.analyzer.inference

.. autodoc2-docstring:: leads.data_persistence.analyzer.inference
   :allowtitles:

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

Classes
~~~~~~~

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

   * - :py:obj:`Inference <leads.data_persistence.analyzer.inference.Inference>`
     - .. autodoc2-docstring:: leads.data_persistence.analyzer.inference.Inference
          :summary:
   * - :py:obj:`SpeedInferenceBase <leads.data_persistence.analyzer.inference.SpeedInferenceBase>`
     - .. autodoc2-docstring:: leads.data_persistence.analyzer.inference.SpeedInferenceBase
          :summary:
   * - :py:obj:`SafeSpeedInference <leads.data_persistence.analyzer.inference.SafeSpeedInference>`
     - .. autodoc2-docstring:: leads.data_persistence.analyzer.inference.SafeSpeedInference
          :summary:
   * - :py:obj:`SpeedInferenceByAcceleration <leads.data_persistence.analyzer.inference.SpeedInferenceByAcceleration>`
     - .. autodoc2-docstring:: leads.data_persistence.analyzer.inference.SpeedInferenceByAcceleration
          :summary:
   * - :py:obj:`SpeedInferenceByMileage <leads.data_persistence.analyzer.inference.SpeedInferenceByMileage>`
     - .. autodoc2-docstring:: leads.data_persistence.analyzer.inference.SpeedInferenceByMileage
          :summary:
   * - :py:obj:`SpeedInferenceByGPSGroundSpeed <leads.data_persistence.analyzer.inference.SpeedInferenceByGPSGroundSpeed>`
     - .. autodoc2-docstring:: leads.data_persistence.analyzer.inference.SpeedInferenceByGPSGroundSpeed
          :summary:
   * - :py:obj:`SpeedInferenceByGPSPosition <leads.data_persistence.analyzer.inference.SpeedInferenceByGPSPosition>`
     - .. autodoc2-docstring:: leads.data_persistence.analyzer.inference.SpeedInferenceByGPSPosition
          :summary:
   * - :py:obj:`ForwardAccelerationInferenceBase <leads.data_persistence.analyzer.inference.ForwardAccelerationInferenceBase>`
     - .. autodoc2-docstring:: leads.data_persistence.analyzer.inference.ForwardAccelerationInferenceBase
          :summary:
   * - :py:obj:`ForwardAccelerationInferenceBySpeed <leads.data_persistence.analyzer.inference.ForwardAccelerationInferenceBySpeed>`
     - .. autodoc2-docstring:: leads.data_persistence.analyzer.inference.ForwardAccelerationInferenceBySpeed
          :summary:
   * - :py:obj:`MileageInferenceBase <leads.data_persistence.analyzer.inference.MileageInferenceBase>`
     - .. autodoc2-docstring:: leads.data_persistence.analyzer.inference.MileageInferenceBase
          :summary:
   * - :py:obj:`MileageInferenceBySpeed <leads.data_persistence.analyzer.inference.MileageInferenceBySpeed>`
     - .. autodoc2-docstring:: leads.data_persistence.analyzer.inference.MileageInferenceBySpeed
          :summary:
   * - :py:obj:`MileageInferenceByGPSPosition <leads.data_persistence.analyzer.inference.MileageInferenceByGPSPosition>`
     - .. autodoc2-docstring:: leads.data_persistence.analyzer.inference.MileageInferenceByGPSPosition
          :summary:
   * - :py:obj:`VisualDataRealignmentByLatency <leads.data_persistence.analyzer.inference.VisualDataRealignmentByLatency>`
     - .. autodoc2-docstring:: leads.data_persistence.analyzer.inference.VisualDataRealignmentByLatency
          :summary:
   * - :py:obj:`InferredDataset <leads.data_persistence.analyzer.inference.InferredDataset>`
     - .. autodoc2-docstring:: leads.data_persistence.analyzer.inference.InferredDataset
          :summary:

API
~~~

.. py:class:: Inference(required_depth: tuple[int, int] = (0, 0), required_header: tuple[str, ...] = DEFAULT_HEADER)
   :canonical: leads.data_persistence.analyzer.inference.Inference

   Bases: :py:obj:`object`

   .. autodoc2-docstring:: leads.data_persistence.analyzer.inference.Inference

   .. rubric:: Initialization

   .. autodoc2-docstring:: leads.data_persistence.analyzer.inference.Inference.__init__

   .. py:method:: depth() -> tuple[int, int]
      :canonical: leads.data_persistence.analyzer.inference.Inference.depth

      .. autodoc2-docstring:: leads.data_persistence.analyzer.inference.Inference.depth

   .. py:method:: header() -> tuple[str, ...]
      :canonical: leads.data_persistence.analyzer.inference.Inference.header

      .. autodoc2-docstring:: leads.data_persistence.analyzer.inference.Inference.header

   .. py:method:: complete(*rows: dict[str, typing.Any], backward: bool = False) -> dict[str, typing.Any] | None
      :canonical: leads.data_persistence.analyzer.inference.Inference.complete
      :abstractmethod:

      .. autodoc2-docstring:: leads.data_persistence.analyzer.inference.Inference.complete

.. py:class:: SpeedInferenceBase(required_depth: tuple[int, int] = (0, 0), required_header: tuple[str, ...] = DEFAULT_HEADER)
   :canonical: leads.data_persistence.analyzer.inference.SpeedInferenceBase

   Bases: :py:obj:`leads.data_persistence.analyzer.inference.Inference`

   .. autodoc2-docstring:: leads.data_persistence.analyzer.inference.SpeedInferenceBase

   .. rubric:: Initialization

   .. autodoc2-docstring:: leads.data_persistence.analyzer.inference.SpeedInferenceBase.__init__

   .. py:method:: skip(row: dict[str, typing.Any]) -> bool
      :canonical: leads.data_persistence.analyzer.inference.SpeedInferenceBase.skip
      :staticmethod:

      .. autodoc2-docstring:: leads.data_persistence.analyzer.inference.SpeedInferenceBase.skip

.. py:class:: SafeSpeedInference()
   :canonical: leads.data_persistence.analyzer.inference.SafeSpeedInference

   Bases: :py:obj:`leads.data_persistence.analyzer.inference.SpeedInferenceBase`

   .. autodoc2-docstring:: leads.data_persistence.analyzer.inference.SafeSpeedInference

   .. rubric:: Initialization

   .. autodoc2-docstring:: leads.data_persistence.analyzer.inference.SafeSpeedInference.__init__

   .. py:method:: complete(*rows: dict[str, typing.Any], backward: bool = False) -> dict[str, typing.Any] | None
      :canonical: leads.data_persistence.analyzer.inference.SafeSpeedInference.complete

.. py:class:: SpeedInferenceByAcceleration()
   :canonical: leads.data_persistence.analyzer.inference.SpeedInferenceByAcceleration

   Bases: :py:obj:`leads.data_persistence.analyzer.inference.SpeedInferenceBase`

   .. autodoc2-docstring:: leads.data_persistence.analyzer.inference.SpeedInferenceByAcceleration

   .. rubric:: Initialization

   .. autodoc2-docstring:: leads.data_persistence.analyzer.inference.SpeedInferenceByAcceleration.__init__

   .. py:method:: complete(*rows: dict[str, typing.Any], backward: bool = False) -> dict[str, typing.Any] | None
      :canonical: leads.data_persistence.analyzer.inference.SpeedInferenceByAcceleration.complete

.. py:class:: SpeedInferenceByMileage()
   :canonical: leads.data_persistence.analyzer.inference.SpeedInferenceByMileage

   Bases: :py:obj:`leads.data_persistence.analyzer.inference.SpeedInferenceBase`

   .. autodoc2-docstring:: leads.data_persistence.analyzer.inference.SpeedInferenceByMileage

   .. rubric:: Initialization

   .. autodoc2-docstring:: leads.data_persistence.analyzer.inference.SpeedInferenceByMileage.__init__

   .. py:method:: complete(*rows: dict[str, typing.Any], backward: bool = False) -> dict[str, typing.Any] | None
      :canonical: leads.data_persistence.analyzer.inference.SpeedInferenceByMileage.complete

.. py:class:: SpeedInferenceByGPSGroundSpeed()
   :canonical: leads.data_persistence.analyzer.inference.SpeedInferenceByGPSGroundSpeed

   Bases: :py:obj:`leads.data_persistence.analyzer.inference.SpeedInferenceBase`

   .. autodoc2-docstring:: leads.data_persistence.analyzer.inference.SpeedInferenceByGPSGroundSpeed

   .. rubric:: Initialization

   .. autodoc2-docstring:: leads.data_persistence.analyzer.inference.SpeedInferenceByGPSGroundSpeed.__init__

   .. py:method:: complete(*rows: dict[str, typing.Any], backward: bool = False) -> dict[str, typing.Any] | None
      :canonical: leads.data_persistence.analyzer.inference.SpeedInferenceByGPSGroundSpeed.complete

.. py:class:: SpeedInferenceByGPSPosition()
   :canonical: leads.data_persistence.analyzer.inference.SpeedInferenceByGPSPosition

   Bases: :py:obj:`leads.data_persistence.analyzer.inference.SpeedInferenceBase`

   .. autodoc2-docstring:: leads.data_persistence.analyzer.inference.SpeedInferenceByGPSPosition

   .. rubric:: Initialization

   .. autodoc2-docstring:: leads.data_persistence.analyzer.inference.SpeedInferenceByGPSPosition.__init__

   .. py:method:: complete(*rows: dict[str, typing.Any], backward: bool = False) -> dict[str, typing.Any] | None
      :canonical: leads.data_persistence.analyzer.inference.SpeedInferenceByGPSPosition.complete

.. py:class:: ForwardAccelerationInferenceBase(required_depth: tuple[int, int] = (0, 0), required_header: tuple[str, ...] = DEFAULT_HEADER)
   :canonical: leads.data_persistence.analyzer.inference.ForwardAccelerationInferenceBase

   Bases: :py:obj:`leads.data_persistence.analyzer.inference.Inference`

   .. autodoc2-docstring:: leads.data_persistence.analyzer.inference.ForwardAccelerationInferenceBase

   .. rubric:: Initialization

   .. autodoc2-docstring:: leads.data_persistence.analyzer.inference.ForwardAccelerationInferenceBase.__init__

   .. py:method:: skip(row: dict[str, typing.Any]) -> bool
      :canonical: leads.data_persistence.analyzer.inference.ForwardAccelerationInferenceBase.skip
      :staticmethod:

      .. autodoc2-docstring:: leads.data_persistence.analyzer.inference.ForwardAccelerationInferenceBase.skip

.. py:class:: ForwardAccelerationInferenceBySpeed()
   :canonical: leads.data_persistence.analyzer.inference.ForwardAccelerationInferenceBySpeed

   Bases: :py:obj:`leads.data_persistence.analyzer.inference.ForwardAccelerationInferenceBase`

   .. autodoc2-docstring:: leads.data_persistence.analyzer.inference.ForwardAccelerationInferenceBySpeed

   .. rubric:: Initialization

   .. autodoc2-docstring:: leads.data_persistence.analyzer.inference.ForwardAccelerationInferenceBySpeed.__init__

   .. py:method:: complete(*rows: dict[str, typing.Any], backward: bool = False) -> dict[str, typing.Any] | None
      :canonical: leads.data_persistence.analyzer.inference.ForwardAccelerationInferenceBySpeed.complete

.. py:class:: MileageInferenceBase(required_depth: tuple[int, int] = (0, 0), required_header: tuple[str, ...] = DEFAULT_HEADER)
   :canonical: leads.data_persistence.analyzer.inference.MileageInferenceBase

   Bases: :py:obj:`leads.data_persistence.analyzer.inference.Inference`

   .. autodoc2-docstring:: leads.data_persistence.analyzer.inference.MileageInferenceBase

   .. rubric:: Initialization

   .. autodoc2-docstring:: leads.data_persistence.analyzer.inference.MileageInferenceBase.__init__

   .. py:method:: skip(row: dict[str, typing.Any]) -> bool
      :canonical: leads.data_persistence.analyzer.inference.MileageInferenceBase.skip
      :staticmethod:

      .. autodoc2-docstring:: leads.data_persistence.analyzer.inference.MileageInferenceBase.skip

.. py:class:: MileageInferenceBySpeed()
   :canonical: leads.data_persistence.analyzer.inference.MileageInferenceBySpeed

   Bases: :py:obj:`leads.data_persistence.analyzer.inference.MileageInferenceBase`

   .. autodoc2-docstring:: leads.data_persistence.analyzer.inference.MileageInferenceBySpeed

   .. rubric:: Initialization

   .. autodoc2-docstring:: leads.data_persistence.analyzer.inference.MileageInferenceBySpeed.__init__

   .. py:method:: complete(*rows: dict[str, typing.Any], backward: bool = False) -> dict[str, typing.Any] | None
      :canonical: leads.data_persistence.analyzer.inference.MileageInferenceBySpeed.complete

.. py:class:: MileageInferenceByGPSPosition()
   :canonical: leads.data_persistence.analyzer.inference.MileageInferenceByGPSPosition

   Bases: :py:obj:`leads.data_persistence.analyzer.inference.MileageInferenceBase`

   .. autodoc2-docstring:: leads.data_persistence.analyzer.inference.MileageInferenceByGPSPosition

   .. rubric:: Initialization

   .. autodoc2-docstring:: leads.data_persistence.analyzer.inference.MileageInferenceByGPSPosition.__init__

   .. py:method:: complete(*rows: dict[str, typing.Any], backward: bool = False) -> dict[str, typing.Any] | None
      :canonical: leads.data_persistence.analyzer.inference.MileageInferenceByGPSPosition.complete

.. py:class:: VisualDataRealignmentByLatency(*channels: typing.Literal[front, left, right, rear])
   :canonical: leads.data_persistence.analyzer.inference.VisualDataRealignmentByLatency

   Bases: :py:obj:`leads.data_persistence.analyzer.inference.Inference`

   .. autodoc2-docstring:: leads.data_persistence.analyzer.inference.VisualDataRealignmentByLatency

   .. rubric:: Initialization

   .. autodoc2-docstring:: leads.data_persistence.analyzer.inference.VisualDataRealignmentByLatency.__init__

   .. py:method:: complete(*rows: dict[str, typing.Any], backward: bool = False) -> dict[str, typing.Any] | None
      :canonical: leads.data_persistence.analyzer.inference.VisualDataRealignmentByLatency.complete

.. py:class:: InferredDataset(file: str, chunk_size: int = 100)
   :canonical: leads.data_persistence.analyzer.inference.InferredDataset

   Bases: :py:obj:`leads.data_persistence.core.CSVDataset`

   .. autodoc2-docstring:: leads.data_persistence.analyzer.inference.InferredDataset

   .. rubric:: Initialization

   .. autodoc2-docstring:: leads.data_persistence.analyzer.inference.InferredDataset.__init__

   .. py:method:: __len__() -> int
      :canonical: leads.data_persistence.analyzer.inference.InferredDataset.__len__

      .. autodoc2-docstring:: leads.data_persistence.analyzer.inference.InferredDataset.__len__

   .. py:method:: merge(raw: dict[str, typing.Any], inferred: dict[str, typing.Any]) -> None
      :canonical: leads.data_persistence.analyzer.inference.InferredDataset.merge
      :staticmethod:

      .. autodoc2-docstring:: leads.data_persistence.analyzer.inference.InferredDataset.merge

   .. py:method:: _complete(inferences: tuple[leads.data_persistence.analyzer.inference.Inference, ...], enhanced: bool, backward: bool) -> int
      :canonical: leads.data_persistence.analyzer.inference.InferredDataset._complete

      .. autodoc2-docstring:: leads.data_persistence.analyzer.inference.InferredDataset._complete

   .. py:method:: load() -> None
      :canonical: leads.data_persistence.analyzer.inference.InferredDataset.load

      .. autodoc2-docstring:: leads.data_persistence.analyzer.inference.InferredDataset.load

   .. py:method:: assume_initial_zeros() -> None
      :canonical: leads.data_persistence.analyzer.inference.InferredDataset.assume_initial_zeros

      .. autodoc2-docstring:: leads.data_persistence.analyzer.inference.InferredDataset.assume_initial_zeros

   .. py:method:: complete(*inferences: leads.data_persistence.analyzer.inference.Inference, enhanced: bool = False, assume_initial_zeros: bool = False) -> int
      :canonical: leads.data_persistence.analyzer.inference.InferredDataset.complete

      .. autodoc2-docstring:: leads.data_persistence.analyzer.inference.InferredDataset.complete

   .. py:method:: __iter__() -> typing.Generator[dict[str, typing.Any], None, None]
      :canonical: leads.data_persistence.analyzer.inference.InferredDataset.__iter__

      .. autodoc2-docstring:: leads.data_persistence.analyzer.inference.InferredDataset.__iter__

   .. py:method:: close() -> None
      :canonical: leads.data_persistence.analyzer.inference.InferredDataset.close

      .. autodoc2-docstring:: leads.data_persistence.analyzer.inference.InferredDataset.close
