:py:mod:`leads.sft`
===================

.. py:module:: leads.sft

.. autodoc2-docstring:: leads.sft
   :allowtitles:

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

Classes
~~~~~~~

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

   * - :py:obj:`SystemFailureTracer <leads.sft.SystemFailureTracer>`
     - .. autodoc2-docstring:: leads.sft.SystemFailureTracer
          :summary:

Functions
~~~~~~~~~

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

   * - :py:obj:`mark_device <leads.sft.mark_device>`
     - .. autodoc2-docstring:: leads.sft.mark_device
          :summary:
   * - :py:obj:`read_device_marker <leads.sft.read_device_marker>`
     - .. autodoc2-docstring:: leads.sft.read_device_marker
          :summary:

Data
~~~~

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

   * - :py:obj:`SFT <leads.sft.SFT>`
     - .. autodoc2-docstring:: leads.sft.SFT
          :summary:

API
~~~

.. py:function:: mark_device(device: leads.dt.Device, system: str, *related: str, append: bool = True) -> None
   :canonical: leads.sft.mark_device

   .. autodoc2-docstring:: leads.sft.mark_device

.. py:function:: read_device_marker(device: leads.dt.Device) -> list[str] | None
   :canonical: leads.sft.read_device_marker

   .. autodoc2-docstring:: leads.sft.read_device_marker

.. py:class:: SystemFailureTracer()
   :canonical: leads.sft.SystemFailureTracer

   Bases: :py:obj:`object`

   .. autodoc2-docstring:: leads.sft.SystemFailureTracer

   .. rubric:: Initialization

   .. autodoc2-docstring:: leads.sft.SystemFailureTracer.__init__

   .. py:method:: system_ok(system: str) -> bool
      :canonical: leads.sft.SystemFailureTracer.system_ok

      .. autodoc2-docstring:: leads.sft.SystemFailureTracer.system_ok

   .. py:method:: device_ok(tag: str) -> bool
      :canonical: leads.sft.SystemFailureTracer.device_ok

      .. autodoc2-docstring:: leads.sft.SystemFailureTracer.device_ok

   .. py:method:: fail(device: leads.dt.Device, error: str | Exception) -> None
      :canonical: leads.sft.SystemFailureTracer.fail

      .. autodoc2-docstring:: leads.sft.SystemFailureTracer.fail

   .. py:method:: recover(device: leads.dt.Device) -> None
      :canonical: leads.sft.SystemFailureTracer.recover

      .. autodoc2-docstring:: leads.sft.SystemFailureTracer.recover

.. py:data:: SFT
   :canonical: leads.sft.SFT
   :type: leads.sft.SystemFailureTracer
   :value: 'SystemFailureTracer(...)'

   .. autodoc2-docstring:: leads.sft.SFT
