工作流框架和BPMN/DMN处理器
项目描述
SpiffWorkflow
Spiff Workflow 是一个纯 Python 实现的工作流引擎。它基于 Workflow Patterns 初始化计划的良好工作。2020 和 2021 年,为 BPMN / DMN 处理添加了广泛的支持。
动机
我们创建 SpiffWorkflow 以支持使用 Python 开发低代码业务应用。使用 BPMN 将允许非开发者通过可视化图来描述复杂的流程过程,并配合强大的 Python 脚本引擎,该引擎在图中无缝工作。SpiffWorkflow 可以解析这些图并执行它们。企业能够创建清晰、连贯的图来驱动应用程序具有深远的影响。虽然存在多个在 Java 中执行此操作的工具,但我们相信 Python 语言的广泛采用以及其易用性为构建低代码应用程序提供了一个制胜策略。
构建状态
代码风格
依赖关系
我们已经努力最小化外部依赖。我们依赖于 lxml 来解析 XML 文档,仅此而已!构建于
特性
- BPMN - 支持解析 BPMN 图表,包括更复杂的组件,如池、通道、多实例任务、子工作流、计时器事件、信号、消息、边界事件和循环。
- DMN - 我们有 DMN 的基线实现,它与我们的 Python 执行引擎良好集成。
- Python 工作流 - 我们保留了直接在代码中构建工作流或根据内部 JSON 数据结构运行工作流的支持。
最新功能的完整列表可在我们的 1.0 版本 发行说明 中找到。
代码示例和文档
详细文档可在 ReadTheDocs 上找到。此外,请查看我们的 示例应用程序,我们在文档中广泛引用了它。
安装
pip install spiffworkflow
测试
pip install spiffworkflow[dev]
cd tests/SpiffWorkflow
coverage run --source=SpiffWorkflow -m unittest discover -v . "*Test.py"
支持
您可以在 Discord 上找到我们:https://discord.gg/BYHcc7PpUC
SpiffWorkflow 的商业支持由 Sartography 提供
贡献
拉取请求总是受欢迎!
请检查您的格式,确保所有测试都通过,并包含任何可以证明您创建的新代码按预期工作的附加测试。如果适用,请请在您的拉取请求中引用问题编号。
致谢
Samuel Abels (@knipknap) 因创建 SpiffWorkflow 并维持其超过十年而受到赞赏。
Matthew Hampton (@matthewhampton) 因其在 BPMN 解析和执行方面的初始贡献而受到赞赏。
感谢弗吉尼亚大学允许我们承担起构建通用工作流系统(BPMN)的巨大任务,并允许我们将其回馈开源社区。特别是,我们想感谢Ron Hutchins,感谢他的信任和支持。没有他,我们的努力将无法实现。
布鲁斯·西尔弗(Bruce Silver),《BPMN快速简单使用方法与风格》一书的作者,我们在做出实现决策和了解BPMN和DMN标准方面广泛参考了他的工作。
BPMN.js库,没有它,我们就无法有效地构建我们的模型,在我们的应用程序中嵌入编辑器,并整理这个混乱的混乱。
凯利·麦克唐纳(Kelly McDonald,@w4kpm),他比任何人都更深入地研究SpiffWorkflow的核心,并在帮助我们正确地实现一些重大增强方面发挥了关键作用。
还要感谢来自我们社区的许多贡献,无论大小。从早期阶段的Ziad(@ziadsawalha)到最近期的Elizabeth(@essweine)。成为这个历史悠久且强大的社区的一员是件好事。
许可证
GNU LESSER GENERAL PUBLIC LICENSE
项目详情
下载文件
下载您平台上的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。