Haven
Bluesky tools for beamlines managed by the spectroscopy group
Install / Use
/learn @spc-group/HavenREADME
Haven
Bluesky tools for beamlines managed by the spectroscopy group.
"Don't fly in anything with a Capissen 38 engine, they fall right out of the sky."
Setup and Installation
First, download the package from github:
$ git clone https://github.com/spc-group/haven.git
$ cd haven
Haven uses pixi for managing environments and dependencies, and running tasks.
If pixi is not installed, follow the instructions here.
Configuration
Haven uses configuration files for most of the instrument-specific
details (PV prefixes, etc). Deciding which configuration files to use
is handled by Pixi. Each instrument has a Pixi feature with
environmental variables that point to the correct configuration files
to use. See pixi.toml for existing examples.
Usage
To start an iPython session with all the instrument features loaded, use:
$ pixi run ipython
The default environment does not connect to any real hardware, and is meant for demonstration purposes.
To select a real beamline, provide an environment using -e <beamline> or
--environment <beamline>:
pixi run ipython -e 25idc
Firefly (GUI)
Firefly is a user-facing application for controlling the beamlines managed by the spectroscopy group. It can be started using:
$ pixi run firefly
Firefly uses the same pixi environments described above.
To make changes to the window layouts using Qt Designer, use:
$ pixi run designer
Bluesky Queueserver
A bluesky queueserver instance can be launched using
$ pixi run qserver
The specifics of the queueserver are determined by environmental
variables in the instrument-specific Pixi features (pixi.toml).
Tiled API
Haven's default run-engine configuration requires a Tiled instance for writing data. A Tiled server can be started using
$ pixi run tiled
Configuration is handled by the configuration file referenced by the
$TILED_CONFIG in pixi.toml.
Running Tests
To run tests for a specific package, use:
$ pixi run test-haven
$ pixi run test-firefly
To run all tests as well as linting and type-checking, use:
$ pixi run test-all
Building Documentation
Documentation is stored in docs/ and built using Sphinx:
$ pixi run make-docs
Packaging
Coming soon…
