The labbench
module provides API tools to support python scripting for laboratory automation.
The goal is to simplify the process of developing an experimental procedure into clear, concise, explainable, and reusable code.
These characteristics are necessary to scale up the complexity of large testbeds and experiments.
Features include:
- Expedited development of python device wrappers, including specialized backends for pythonnet, pyvisa, pyserial, subprocess, telnetlib
- Descriptor-driven development: minimize the distance between programming manuals and python wrappers and apply calibrations transparently
- Automated logging of simple device parameters into root CSV or sqlite root tables, pointing to relational data and metadata in json and plain-text
- Simplified multi-threaded concurrency tools for lab applications
- Container objects for nesting device wrappers and snippets of test procedures
- Support for running experiments based on tables of test conditions
The source code was developed at NIST to support complex measurement efforts. Examples of these projects include:
Status
The project is under ongoing development
- API changes have slowed, but deprecation warnings are not yet being provided
- Suggest pinning labbench dependency to an exact version
- Parts of the documentation are in need of updates, and others have not yet been written
Installation
- Prerequisites:
- python (3.9-3.12)
- an installer for python packages (
pip
, conda
, etc.)
- Command-line package install options
conda install conda-forge::labbench
pip install labbench
Resources
Contributing
Contributors