被动背景任务的模式

traits-futures的Python项目详细描述


特质期货

traits_futures包演示了反应式 从traitsui应用程序触发的后台作业。

激励示例

一位客户要求您将他们的黑盒优化代码包装在一个gui中。

您构建了一个简单的traitsui gui,允许用户设置输入和选项 然后按下绿色的“计算”按钮。需求看起来 像这样:

  • 当后台计算时,ui应该保持可用和响应性 正在运行。
  • 用户界面应该更新(例如,显示绘图或显示结果)以响应 后台计算正常完成。
  • 后台作业应可取消。
  • 如果后台作业引发异常,ui应该做出适当的反应。

而且还有一些更易于开发的要求:

  • 尽可能地,ui开发人员不应该考虑管理 后台线程或从 后台任务。用户界面开发人员应该能够简单地听取 对来自背景任务的信息做出适当的反应。
  • 应该可以在使用后台线程和 后台进程(也可能是协同进程)只需很少的努力。

开始

源存储库中的cihelper包有助于设置 开发环境和运行测试和示例。它需要电火花加工 在python引导环境中安装了clicksetuptools

要创建开发环境,请运行:

python -m ci build

从存储库的顶层,在python引导环境中。

要运行traits\u futures edm环境的测试,请执行:

python -m ci test

在覆盖范围内运行测试:

python -m ci coverage

运行样式检查:

python -m ci flake8

构建文档:

python -m ci doc

示例脚本可以使用以下命令运行:

python -m ci example <example-name>

运行python -m ci example查看可用示例的列表。

以上所有命令都有两个选项。--python-version选项 允许您指定用于开发环境的python版本。这个 --toolkit选项允许您在使用pyqt和pyside之间进行选择 Python2。运行python -m ci <command> --help获取有关任何 这些命令。

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

推荐PyPI第三方库


热门话题
java如何通过解决错误“活动无法转换为片段”将片段传递给类构造函数?   Java中清理Code39条码数据的regex帮助   将java转换为C++   java无法在Android Studio中生成签名的apk,出现错误   从数学方程出发   MySQL和Java内存问题   如何强制Java抛出算术异常?   java为什么JDBC将零端口视为空(默认)端口?   java如何在没有“changelog主题”的情况下加入KStream和KTable   排序我尝试合并两个排序的数组,但得到的是java。lang.ArrayIndexOutofBounds异常:5无法找出原因   如何在java中求大长度矩阵的逆?   基于maven构建的java生成类路径字符串   java每20个字符分割一个字符串,然后将每个部分打印到控制台   将字符串数字字转换为字符串数字:Java   在特定区域使用混合类型的java填充字节数组   尽管java类在开关块中实例化,但它只能调用接口方法