被动背景任务的模式
traits-futures的Python项目详细描述
特质期货
traits_futures包演示了反应式 从traitsui应用程序触发的后台作业。
激励示例
一位客户要求您将他们的黑盒优化代码包装在一个gui中。
您构建了一个简单的traitsui gui,允许用户设置输入和选项 然后按下绿色的“计算”按钮。需求看起来 像这样:
- 当后台计算时,ui应该保持可用和响应性 正在运行。
- 用户界面应该更新(例如,显示绘图或显示结果)以响应 后台计算正常完成。
- 后台作业应可取消。
- 如果后台作业引发异常,ui应该做出适当的反应。
而且还有一些更易于开发的要求:
- 尽可能地,ui开发人员不应该考虑管理 后台线程或从 后台任务。用户界面开发人员应该能够简单地听取 对来自背景任务的信息做出适当的反应。
- 应该可以在使用后台线程和 后台进程(也可能是协同进程)只需很少的努力。
开始
源存储库中的cihelper包有助于设置 开发环境和运行测试和示例。它需要电火花加工 在python引导环境中安装了click和setuptools。
要创建开发环境,请运行:
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获取有关任何 这些命令。