跳转到主要内容

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 查看散列值)

上传时间 Python 3

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面