Skip to main content

EPICS Bridge

Python License

epics-bridge is a Python framework for synchronous, high-availability EPICS daemons over PVA. It provides the control-loop contract, watchdog/heartbeat behavior, logging PVs, and failure handling used by daemon projects built on top of it.

Start here

Build a new daemon

Use the cookiecutter scaffold:

  • Canonical repo: https://gitlab.esss.lu.se/icshwi/pydaemon/cookiecutter-epics-bridge
  • Generate a project:
cookiecutter git@gitlab.esss.lu.se:icshwi/pydaemon/cookiecutter-epics-bridge.git
cd <project_name>
conda env create -f environment.yml
conda activate <project_name>
pre-commit install
pytest -m "not slow" -v

The scaffold is the primary starting point for new daemon development. It creates a standalone Python package, IOC startup files, a test harness, and project-local docs.

Understand the framework

Use these docs when you need framework behavior, design constraints, or the reference example:

What this repo contains

  • epics_bridge/: framework package
  • tests/: framework and example verification
  • examples/echo_daemon/: end-to-end reference daemon + IOC
  • docs/README.md: canonical framework guide

Install and verify

For local framework work:

pip install -e .
pip install -r requirements-test.txt
pytest -m "not slow" -v

For IOC-backed integration work, use the provided conda environment:

conda env create -f environment.yml
conda activate epics-bridge
pip install -e .
pytest -m slow -v

For the full project verifier used in this repo, prefer running the entire suite through the environment directly:

mamba run -n epics-bridge pytest -q

environment.yml uses ess-conda-local and conda-forge. If you are outside ESS, you may need to adjust channel/package availability for the EPICS toolchain.

Architecture summary

epics-bridge uses two threads:

  1. Main thread: synchronous control loop (trigger -> run_task -> reset -> telemetry)
  2. Heartbeat thread: independent watchdog with its own PVA context

If the main loop stalls, the heartbeat stops pulsing. If I/O failures persist past the configured threshold, the daemon exits so an external supervisor can restart it.

For the full EPICS contract, TaskStatus semantics, PV model, and extension points, see docs/README.md.

Metadata

Release files for epics-bridge 5.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for epics-bridge 5.0.0
File Size Uploaded
epics_bridge-5.0.0.tar.gz 24.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for epics-bridge 5.0.0
File Interpreter ABI Platform
epics_bridge-5.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 54.4 kB

Release files / epics_bridge-5.0.0.tar.gz

Download URL epics_bridge-5.0.0.tar.gz
Size 24.6 kB
Tags Source
SHA-256 checksum
How to use checksums
3f055876524041bb644156cf47fd18eb897ba648f331398c806584789ba1618e
BLAKE2b-256 checksum
How to use checksums
6c35132e471e50110be820d48467cacd50d4a25d673ec715742c55e4da6d7df9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.12

Release files / epics_bridge-5.0.0-py3-none-any.whl

Download URL epics_bridge-5.0.0-py3-none-any.whl
Size 29.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
506cdff5f1fe553f531a08d89e362115e75a9e5a9174a1ad778d0fbf2cf081f1
BLAKE2b-256 checksum
How to use checksums
f7ba23a56a3f3cdeea628ad571c651dcc23825ad45200c28ba16ecc3439740b3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.12

Release history Release notifications | RSS feed

This release

5.0.0 This release

2 release files

4.4.2

2 release files

4.4.1

2 release files

4.4.0

2 release files

4.3.0

2 release files

4.2.0

2 release files

4.1.0

2 release files

4.0.0

2 release files

3.4.0

2 release files

3.2.0

2 release files

3.0.0

2 release files

2.1.0

2 release files

2.0.0

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page