:py:mod:`leads.dt.registry`
===========================

.. py:module:: leads.dt.registry

.. autodoc2-docstring:: leads.dt.registry
   :allowtitles:

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

Functions
~~~~~~~~~

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

   * - :py:obj:`controller <leads.dt.registry.controller>`
     - .. autodoc2-docstring:: leads.dt.registry.controller
          :summary:
   * - :py:obj:`device <leads.dt.registry.device>`
     - .. autodoc2-docstring:: leads.dt.registry.device
          :summary:
   * - :py:obj:`register_controller <leads.dt.registry.register_controller>`
     - .. autodoc2-docstring:: leads.dt.registry.register_controller
          :summary:
   * - :py:obj:`has_controller <leads.dt.registry.has_controller>`
     - .. autodoc2-docstring:: leads.dt.registry.has_controller
          :summary:
   * - :py:obj:`get_controller <leads.dt.registry.get_controller>`
     - .. autodoc2-docstring:: leads.dt.registry.get_controller
          :summary:
   * - :py:obj:`_register_device <leads.dt.registry._register_device>`
     - .. autodoc2-docstring:: leads.dt.registry._register_device
          :summary:
   * - :py:obj:`has_device <leads.dt.registry.has_device>`
     - .. autodoc2-docstring:: leads.dt.registry.has_device
          :summary:
   * - :py:obj:`get_device <leads.dt.registry.get_device>`
     - .. autodoc2-docstring:: leads.dt.registry.get_device
          :summary:
   * - :py:obj:`release <leads.dt.registry.release>`
     - .. autodoc2-docstring:: leads.dt.registry.release
          :summary:
   * - :py:obj:`initialize_main <leads.dt.registry.initialize_main>`
     - .. autodoc2-docstring:: leads.dt.registry.initialize_main
          :summary:

Data
~~~~

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

   * - :py:obj:`_controllers <leads.dt.registry._controllers>`
     - .. autodoc2-docstring:: leads.dt.registry._controllers
          :summary:
   * - :py:obj:`_devices <leads.dt.registry._devices>`
     - .. autodoc2-docstring:: leads.dt.registry._devices
          :summary:

API
~~~

.. py:data:: _controllers
   :canonical: leads.dt.registry._controllers
   :type: dict[str, leads.dt.controller.Controller]
   :value: None

   .. autodoc2-docstring:: leads.dt.registry._controllers

.. py:data:: _devices
   :canonical: leads.dt.registry._devices
   :type: dict[str, leads.dt.device.Device]
   :value: None

   .. autodoc2-docstring:: leads.dt.registry._devices

.. py:function:: controller(tag: str, parent: str | None = None, args: tuple[typing.Any, ...] = (), kwargs: dict[str, typing.Any] | None = None) -> typing.Callable[[type[leads.dt.controller.Controller]], None]
   :canonical: leads.dt.registry.controller

   .. autodoc2-docstring:: leads.dt.registry.controller

.. py:function:: device(tag: str | typing.Sequence[str], parent: str | typing.Sequence[str], args: tuple[typing.Any, ...] | list[tuple[typing.Any, ...]] = (), kwargs: dict[str, typing.Any] | list[dict[str, typing.Any]] | None = None) -> typing.Callable[[type[leads.dt.device.Device]], None]
   :canonical: leads.dt.registry.device

   .. autodoc2-docstring:: leads.dt.registry.device

.. py:function:: register_controller(tag: str, c: leads.dt.controller.Controller, parent: str | None = None) -> None
   :canonical: leads.dt.registry.register_controller

   .. autodoc2-docstring:: leads.dt.registry.register_controller

.. py:function:: has_controller(tag: str) -> bool
   :canonical: leads.dt.registry.has_controller

   .. autodoc2-docstring:: leads.dt.registry.has_controller

.. py:function:: get_controller(tag: str) -> leads.dt.controller.Controller
   :canonical: leads.dt.registry.get_controller

   .. autodoc2-docstring:: leads.dt.registry.get_controller

.. py:function:: _register_device(prototype: type[leads.dt.device.Device], tag: str, parent: leads.dt.controller.Controller, args: tuple[typing.Any, ...], kwargs: dict[str, typing.Any]) -> None
   :canonical: leads.dt.registry._register_device

   .. autodoc2-docstring:: leads.dt.registry._register_device

.. py:function:: has_device(tag: str) -> bool
   :canonical: leads.dt.registry.has_device

   .. autodoc2-docstring:: leads.dt.registry.has_device

.. py:function:: get_device(tag: str) -> leads.dt.device.Device
   :canonical: leads.dt.registry.get_device

   .. autodoc2-docstring:: leads.dt.registry.get_device

.. py:function:: release() -> None
   :canonical: leads.dt.registry.release

   .. autodoc2-docstring:: leads.dt.registry.release

.. py:function:: initialize_main() -> None
   :canonical: leads.dt.registry.initialize_main

   .. autodoc2-docstring:: leads.dt.registry.initialize_main
