Happi数据库访问LCLS光束线设备
项目描述
HAPPI
光子仪器定位启发式访问
动机
LCLS端站处理动态的仪器集。信息如端口、触发器和别名对于运行非常重要,但分散在众多应用中难以管理。Happi通过创建一个访问LCLS仪器所需所有元数据的单个访问点来解决此问题。使用基于灵活的容器
的系统,Happi允许强制执行特定约定,同时仍允许在需要的地方进行灵活的数据输入。
功能
- 使用容器管理特定设备类型的信息
- 输入与特定设备相关联的任意元数据
- 支持多种类型数据库的灵活后端;MongoDB、JSON等
- 轻松搜索数据库条目以查找匹配一组键的设备/
安装
安装最新标记的构建: conda install happi -c pcds-tag -c conda-forge
安装最新开发版本: conda install happi -c pcds-dev -c conda-forge
基本用法
happi.Client
是您访问底层设备数据库的主要接口。您可以选择手动创建数据库后端,或者使用环境变量 $HAPPI_BACKEND
创建对数据库类型的持久引用。默认情况下,Client
假设为 JSON
文件数据库。
import happi
client = happi.Client(path='path/to/my_db.json')
如果您的数据库有记录,您应该能够通过键变量对单个或多个设备进行搜索。
client.find_device(name="My Device")
client.search(stand='DG2')
一旦您获得了所需的设备,您就可以像任何其他 Python 对象一样编辑信息。使用 .show_info
方法以方便的表格形式查看设备信息。
dev = client.find_device(name="My Device")
dev.z = 432.1
dev.show_info()
输出
+--------------+----------------------+
| EntryInfo | Value |
+--------------+----------------------+
| active | True |
| beamline | LCLS |
| name | My Device |
| parent | None |
| prefix | MY:DEV:01 |
| stand | None |
| system | None |
| z | 432.10000 |
+--------------+----------------------+
在您对更改满意后,使用 .save
方法将信息推回数据库。如果这是一个新设备,您将需要调用 Client.add_device
。在数据库中的条目被修改之前,happi.Client
会确认新的更改符合容器指定的所有要求。
dev.save()
项目详情
下载文件
下载适用于您平台文件的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源分布
happi-2.5.0.tar.gz (108.1 kB 查看散列值)
构建分布
happi-2.5.0-py3-none-any.whl (91.5 kB 查看散列值)
关闭
happi-2.5.0.tar.gz 的散列值
算法 | 散列摘要 | |
---|---|---|
SHA256 | 4b5684f9964952d91c1c68d2039644b0f5df3c0a54d91132f63db98e9faec82a |
|
MD5 | 78dc2261e7d5415afc7c24e007593b7e |
|
BLAKE2b-256 | 8a76bb2705eafaf4f1726d9219518fd652b07a22288a764623a7d17dd30ef0bc |
关闭
happi-2.5.0-py3-none-any.whl 的散列值
算法 | 散列摘要 | |
---|---|---|
SHA256 | b5af3d8accdd5e0555291820fba09a8e3d635a89f4f9c3e6084948f3000c9e37 |
|
MD5 | 3088fdd7068451b95373700ec24d0585 |
|
BLAKE2b-256 | fe07700f27b68ec1c6e58140b34b7575ebc4382e31bea29def3ff22e397cc92c |