Metadata-Version: 2.4
Name: leaf-framework
Version: 0.10.15
Summary: Lightweight Adapter Framework (LEAF)
License: Apache-2.0
License-File: LICENSE
Author: Matthew Crowther
Author-email: nmc215@ncl.ac.uk
Requires-Python: >=3.12,<3.15
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Requires-Dist: aioredis (>=2.0.1,<2.1.0)
Requires-Dist: cairosvg (>=2.8.2,<3.0.0)
Requires-Dist: dateparser (>=1.3.0,<1.4.0)
Requires-Dist: httpx (>=0.28.1,<0.29.0)
Requires-Dist: influxobject (>=0.0.13)
Requires-Dist: nicegui (>=3.7.1,<3.8.0)
Requires-Dist: paho-mqtt (>=2.1.0,<2.2.0)
Requires-Dist: pillow (>=12.1.1,<13.0.0)
Requires-Dist: pyyaml (>=6.0.3,<6.1.0)
Requires-Dist: redis (>=7.2.0,<7.3.0)
Requires-Dist: requests (>=2.32.5,<2.33.0)
Requires-Dist: watchdog (>=6.0.0,<6.1.0)
Project-URL: Documentation, https://leaf-framework.org
Project-URL: Repository, https://gitlab.com/leaf-framework/leaf
Description-Content-Type: text/markdown

# Adapter Framework for Equipment Monitoring and Control

The Lightweight Equipment Adapter Framework (LEAF) implements an **Adapter Architecture** designed to monitor and control various equipment types (e.g., bioreactors). The core principle of LEAF is to reduce the barrier to entry as much as possible to develop and deploy adapters for new equipment. The **EquipmentAdapters** are the functional equipment monitors composed of the rest of the **modules** (ProcessModules, PhaseModules, etc.) that perform specific tasks such as event monitoring, data processing, and output transmission.

## Quick Start

```bash
# Install LEAF
pip install leaf-framework

# Run with desktop GUI (auto-opens browser)
leaf
```

LEAF automatically shows a **desktop control panel** on desktop systems, making it easy to see if the application is running and where to access it.

## Updating

LEAF checks PyPI for a newer release one hour after it starts, and weekly from then on -- never at startup, so a restart simply re-arms the one-hour delay. When a newer version exists, an **update badge** appears next to the version number in the web interface header; clicking it offers to install the update and restart LEAF.

To check without waiting for the schedule, **click the version number** in the header. The result appears as a banner: green when this install is current, amber when a newer release exists, red when PyPI could not be reached.

Set `LEAF_DISABLE_UPDATE_CHECK=1` to switch the check off entirely. Installs running from a source checkout are told about the new version but never overwritten -- update those with `git pull`. To update by hand:

```bash
pip install --upgrade leaf-framework
```

## Documentation

The complete documentation can be found [here](https://leaf-framework.org).
