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

.. py:module:: leads.dt.device

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

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

Classes
~~~~~~~

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

   * - :py:obj:`Device <leads.dt.device.Device>`
     - .. autodoc2-docstring:: leads.dt.device.Device
          :summary:
   * - :py:obj:`ShadowDevice <leads.dt.device.ShadowDevice>`
     - .. autodoc2-docstring:: leads.dt.device.ShadowDevice
          :summary:

API
~~~

.. py:class:: Device(*pins: int | str)
   :canonical: leads.dt.device.Device

   Bases: :py:obj:`object`

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

   .. rubric:: Initialization

   .. autodoc2-docstring:: leads.dt.device.Device.__init__

   .. py:method:: __str__() -> str
      :canonical: leads.dt.device.Device.__str__

   .. py:method:: level() -> int
      :canonical: leads.dt.device.Device.level

      .. autodoc2-docstring:: leads.dt.device.Device.level

   .. py:method:: tag(tag: str | None = None) -> str | None
      :canonical: leads.dt.device.Device.tag

      .. autodoc2-docstring:: leads.dt.device.Device.tag

   .. py:method:: lock_tag() -> None
      :canonical: leads.dt.device.Device.lock_tag

      .. autodoc2-docstring:: leads.dt.device.Device.lock_tag

   .. py:method:: parent_tags() -> tuple[str, ...]
      :canonical: leads.dt.device.Device.parent_tags

      .. autodoc2-docstring:: leads.dt.device.Device.parent_tags

   .. py:method:: initialize(*parent_tags: str) -> None
      :canonical: leads.dt.device.Device.initialize

      .. autodoc2-docstring:: leads.dt.device.Device.initialize

   .. py:method:: read() -> typing.Any
      :canonical: leads.dt.device.Device.read
      :abstractmethod:

      .. autodoc2-docstring:: leads.dt.device.Device.read

   .. py:method:: write(payload: typing.Any) -> None
      :canonical: leads.dt.device.Device.write
      :abstractmethod:

      .. autodoc2-docstring:: leads.dt.device.Device.write

   .. py:method:: update(data: typing.Any) -> None
      :canonical: leads.dt.device.Device.update
      :abstractmethod:

      .. autodoc2-docstring:: leads.dt.device.Device.update

   .. py:method:: close() -> None
      :canonical: leads.dt.device.Device.close

      .. autodoc2-docstring:: leads.dt.device.Device.close

.. py:class:: ShadowDevice(*pins: int | str)
   :canonical: leads.dt.device.ShadowDevice

   Bases: :py:obj:`leads.dt.device.Device`

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

   .. rubric:: Initialization

   .. autodoc2-docstring:: leads.dt.device.ShadowDevice.__init__

   .. py:method:: loop() -> None
      :canonical: leads.dt.device.ShadowDevice.loop
      :abstractmethod:

      .. autodoc2-docstring:: leads.dt.device.ShadowDevice.loop

   .. py:method:: run() -> None
      :canonical: leads.dt.device.ShadowDevice.run

      .. autodoc2-docstring:: leads.dt.device.ShadowDevice.run

   .. py:method:: initialize(*parent_tags: str) -> None
      :canonical: leads.dt.device.ShadowDevice.initialize

      .. autodoc2-docstring:: leads.dt.device.ShadowDevice.initialize
