#############
API Reference
#############

This page provides an auto-generated reference of all DAMARIS classes, functions, and modules.
It is built from docstrings using Sphinx autodoc and autosummary.

.. toctree::
   :maxdepth: 2
   :caption: Modules:

   damaris/data
   damaris/experiments
   damaris/gui
   damaris/tools


Data Module
===========

The data module contains result types, data handling, and signal processing classes.

.. autosummary::
   :toctree: _autosummary
   :recursive:

   damaris.data.ADC_Result
   damaris.data.Accumulation
   damaris.data.Config_Result
   damaris.data.DamarisFFT
   damaris.data.DataPool
   damaris.data.Drawable
   damaris.data.Errorable
   damaris.data.Error_Result
   damaris.data.FitResult
   damaris.data.MeasurementResult
   damaris.data.Persistance
   damaris.data.Resultable
   damaris.data.Signalpath
   damaris.data.Temperature
   damaris.data.autophase


Experiments Module
==================

The experiments module contains the Experiment class and related utilities for defining pulse sequences.

.. autosummary::
   :toctree: _autosummary
   :recursive:

   damaris.experiments.Experiment
   damaris.experiments.DurationEstimator
   damaris.experiments.dac


GUI Module
==========

The GUI module contains the graphical interface, backend driver, and experiment/result handling.

.. autosummary::
   :toctree: _autosummary
   :recursive:

   damaris.gui.BackendDriver
   damaris.gui.DamarisGUI
   damaris.gui.ExperimentHandling
   damaris.gui.ExperimentWriter
   damaris.gui.ResultHandling
   damaris.gui.ResultReader
   damaris.gui.TemperatureMonitor
   damaris.gui.logging_utils

A short usage example for the font helper of the GUI module (the non-deprecated
replacement for the removed ``Widget.modify_font()``):

.. code-block:: python

   from damaris.gui.DamarisGUI import apply_font_css

   apply_font_css(textview, "Monospace 10")   # pango style font description
   apply_font_css(label, "sans bold 16")

The font string is converted into a CSS rule (``font-family``/``font-size``/
``font-weight``) which is applied to the widget's style context with a
``Gtk.CssProvider``.


Tools Module
============

The tools module contains hardware driver interfaces and utility functions.

.. autosummary::
   :toctree: _autosummary
   :recursive:

   damaris.tools.eurotherm
   damaris.tools.flow_control
   damaris.tools.goniometer
   damaris.tools.lakeshore
   damaris.tools.ranges
   damaris.tools.signal
   damaris.tools.temperature
   damaris.tools.temperature_simulator
