HAPPI - Heuristic Access to Positions of Photon Instruments
Background
Happi is a database-backed library that was originally created to hold information about devices along SLAC’s Linac Coherent Light Source beamline. Though initially purpose-built, happi provides a framework for general indexing of devices or things that correspond to Python objects.
Happi will help you create and index your objects, search through them, and provide relevant metadata based on the object type.
Terminology Summary
The happi client communicates with pre-configured database using an internal “backend”. Supported backends include JSON (with a file on disk) and MongoDB currently.
A
HappiItem
container class describes metadata about a Python object and information on how to instantiate it.HappiItem
may be customized for your own purposes through subclassing.Container classes have entries - marked by
EntryInfo
instances - that define the top-level keys and values of the item.The basic
HappiItem
has entries that tell happi how to import and instantiate a specific Python object. The fields required for this aredevice_class
,args
, andkwargs
. In short, the effect of loading this device would be toimport device_class
and instantiate it by way ofdevice_class(*args, **kwargs)
.This resulting object is also referred to as a
Device
, borrowing the name from the library ophyd.
- Release History
- v2.5.0 (2023-12-19)
- v2.4.0 (2023-09-27)
- v2.3.0 (2023-06-30)
- v2.2.0 (2023-05-08)
- v2.1.0 (2023-04-03)
- v2.0.0 (2022-10-20)
- v1.14.0 (2022-07-06)
- v1.13.0 (2022-06-03)
- v1.12.0 (2022-03-31)
- v1.11.0 (2022-02-07)
- v1.10.1 (2021-11-15)
- v1.10.0 (2021-09-27)
- v1.9.0 (2021-02-10)
- v1.8.4 (2021-01-08)
- v1.8.3 (2020-11-17)
- v1.8.2 (2020-10-20)
- v1.8.1 (2020-10-21)
- v1.8.0 (2020-10-07)
- v1.7.2 (2020-09-17)
- v1.7.1 (2020-08-20)
- v1.7.0 (2020-08-18)
- v1.6.1 (2020-07-01)
- v1.6.0 (2020-04-30)
- v1.5.0 (2020-04-06)
- v1.4.0 (2020-03-13)
- v1.3.0 (2019-12-10)
- v1.2.1 (2019-03-07)
- v1.2.0 (2018-12-19)
- v1.1.2 (2018-08-30)
- v1.1.1 (2018-03-08)
- v1.1.0 (2018-02-13)
- v1.0.0 (2018-01-31)
- v0.5.0 (2017-11-11)
- v0.4.0 (2017-04-04)
- v0.3.0 (2017-03-22)
- Upcoming Changes