基于依赖图的自动调整

autodepgraph的Python项目详细描述


自动深度图

PyPIBuild StatusCodacy BadgeCoverage StatusDOI

autodepgraph是一个使用依赖关系图来校准系统的框架。它深受"Physical qubit calibration on a directed acyclic graph"的启发。

概述

autodepgraph由两个主要类组成:calibrationnode和graph。 校准是通过调用要执行的节点来完成的,该节点包含满足其所依赖的节点(父节点)所需的逻辑。

校准节点包含:

  • 参数

    • 国家
      • 良好(绿色):检查通过
      • 需要校准(黄色):校准不再是最新的,需要更新
      • 坏(红色):校准或检查失败
      • 未知(灰色):应运行对节点的检查
      • 活动(蓝色):正在进行校准或检查
    • 父节点:它所依赖的节点
    • 子节点:依赖于此节点的节点
    • check_function:调用check时要执行的函数的名称。这可能是另一种工具的方法。
    • calibrate_function:调用calibrate时要执行的函数的名称。这可能是另一种工具的方法。
    • 校准超时:校准超时的时间。
  • 功能

    • 执行或调用
      • 执行节点逻辑(检查状态,满足要求),目标是移动到“良好”状态
    • 支票
      • 执行检查以确定和确定节点的状态
    • 校准
      • 执行节点的校准例程

图是节点的容器,用于:

  • 可以通过实例化一个图,然后使用add_node方法定义新节点来创建新的图。
  • 加载和保存图形
  • 利用pyqtgraph实现实时可视化
    • 节点的状态决定了节点的颜色
    • 如果一个节点没有定义校准功能,则它是一个手动节点,并以六角形而不是圆形作为符号
    • 鼠标悬停信息列出更多属性(计划中)

Example calibration graph

示例

有关介绍性示例,请参阅示例笔记本。如果要查看如何使用特定函数,请参阅autodepgraph/tests文件夹中的测试。

安装

  • 克隆存储库
  • 安装requirements
  • 导航到存储库并运行pip install -e .
  • 通过运行py.test

n.b.Windows可能有“问题”

在windows上安装有点困难,这主要与pygraphviz的安装有关。要在windows上安装graphviz和pygraphviz,请执行以下步骤:

  • 获取64位版本的graphviz for windows,将其复制到程序文件中,并将bin文件夹添加到系统路径。
  • 64位版本缺少libxml2.dll,您很可能是从其他程序获得的。您可以通过在“程序文件”文件夹中搜索libxml2.dll来找到它。然后复制粘贴到graphviz的bin文件夹。
  • 通过从github下载master来获取pygraphviz。
  • 现在您需要根据https://github.com/Kagami/pygraphviz/tree/py3-windows-iobase处的更改编辑pygraphviz/graphviz.i和pygraphviz/graphviz_wrap.c。可以在“安装”文件夹中找到参考资料
  • 下一次安装时使用
python setup.py install --include-path="C:\Program Files\graphviz-2.38_x64\include" --library-path="C:\Program Files\graphviz-2.38_x64\lib"
  • 然后安装autodepgraph并使用py.test
  • 测试安装

致谢

我要感谢朱利安凯利的想法,使用依赖关系图进行校准和早期的讨论。我要感谢Joe Weston的讨论和对初步设计的帮助。我想感谢livio ciorciaro的讨论和作为这个项目的合著者。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
未处理java Google PubSub-resent消息   java CannotAcquireLockException+LockAcquisitionException   atlassian fisheye如何处理“C:\Program Files\Java\jre7\bin\server\JVM.dll”中缺少“服务器”JVM的问题   jboss 6.3 eap linux环境中ear部署中的java问题   java SQL顺序字符串主键   java ascii shift程序几乎适用于整个字符串   java中excel工作表中的一条记录插入多条记录所需的sql逻辑   java这个方法如何计算Rational(1)。hashCode()?1的分子或分母本身就是1   java为什么在循环中的数组中分配引用后会出现NullPointerException?   java Seam 2中内置工厂的优势是什么   远程运行Java项目的eclipse   标记化Java中的标记化源代码   java从大文件中读取前缀后的值   java使用EntityManager调用PostgreSQL过程   java阅读行每隔一行跳过一行