:py:mod:`leads.plugin.plugin`
=============================

.. py:module:: leads.plugin.plugin

.. autodoc2-docstring:: leads.plugin.plugin
   :allowtitles:

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

Classes
~~~~~~~

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

   * - :py:obj:`Plugin <leads.plugin.plugin.Plugin>`
     - .. autodoc2-docstring:: leads.plugin.plugin.Plugin
          :summary:
   * - :py:obj:`ESCPlugin <leads.plugin.plugin.ESCPlugin>`
     - .. autodoc2-docstring:: leads.plugin.plugin.ESCPlugin
          :summary:

API
~~~

.. py:class:: Plugin(required_data: tuple[str, ...] = (), required_devices: tuple[str, ...] = ())
   :canonical: leads.plugin.plugin.Plugin

   Bases: :py:obj:`object`

   .. autodoc2-docstring:: leads.plugin.plugin.Plugin

   .. rubric:: Initialization

   .. autodoc2-docstring:: leads.plugin.plugin.Plugin.__init__

   .. py:method:: enabled(enabled: bool | None = None) -> bool | None
      :canonical: leads.plugin.plugin.Plugin.enabled

      .. autodoc2-docstring:: leads.plugin.plugin.Plugin.enabled

   .. py:method:: required_data() -> tuple[str, ...]
      :canonical: leads.plugin.plugin.Plugin.required_data

      .. autodoc2-docstring:: leads.plugin.plugin.Plugin.required_data

   .. py:method:: required_devices() -> tuple[str, ...]
      :canonical: leads.plugin.plugin.Plugin.required_devices

      .. autodoc2-docstring:: leads.plugin.plugin.Plugin.required_devices

   .. py:method:: on_load(context: leads.context.Context) -> None
      :canonical: leads.plugin.plugin.Plugin.on_load

      .. autodoc2-docstring:: leads.plugin.plugin.Plugin.on_load

   .. py:method:: pre_push(context: leads.context.Context, kwargs: dict[str, typing.Any]) -> None
      :canonical: leads.plugin.plugin.Plugin.pre_push

      .. autodoc2-docstring:: leads.plugin.plugin.Plugin.pre_push

   .. py:method:: post_push(context: leads.context.Context, kwargs: dict[str, typing.Any]) -> None
      :canonical: leads.plugin.plugin.Plugin.post_push

      .. autodoc2-docstring:: leads.plugin.plugin.Plugin.post_push

   .. py:method:: pre_update(context: leads.context.Context, kwargs: dict[str, typing.Any]) -> None
      :canonical: leads.plugin.plugin.Plugin.pre_update

      .. autodoc2-docstring:: leads.plugin.plugin.Plugin.pre_update

   .. py:method:: post_update(context: leads.context.Context, kwargs: dict[str, typing.Any]) -> None
      :canonical: leads.plugin.plugin.Plugin.post_update

      .. autodoc2-docstring:: leads.plugin.plugin.Plugin.post_update

.. py:class:: ESCPlugin(required_data: tuple[str, ...] = (), required_devices: tuple[str, ...] = ())
   :canonical: leads.plugin.plugin.ESCPlugin

   Bases: :py:obj:`leads.plugin.plugin.Plugin`

   .. autodoc2-docstring:: leads.plugin.plugin.ESCPlugin

   .. rubric:: Initialization

   .. autodoc2-docstring:: leads.plugin.plugin.ESCPlugin.__init__

   .. py:method:: enabled(enabled: bool | None = None) -> bool | None
      :canonical: leads.plugin.plugin.ESCPlugin.enabled

      .. autodoc2-docstring:: leads.plugin.plugin.ESCPlugin.enabled

   .. py:method:: adjudicate(d: float, base: float, absolute: float, percentage: float) -> bool
      :canonical: leads.plugin.plugin.ESCPlugin.adjudicate
      :staticmethod:

      .. autodoc2-docstring:: leads.plugin.plugin.ESCPlugin.adjudicate
