sartography / SpiffWorkflow

A powerful workflow engine implemented in pure Python
GNU Lesser General Public License v3.0
1.69k stars 313 forks source link

Improvement/better subworkflow management #339

Closed essweine closed 1 year ago

essweine commented 1 year ago

This PR splits adds a simple BpmnSubworkflow class that

The order of execution inside do_engine_steps has changed. Tasks are completed by subprocess, starting with those at the lowest depth. This allows do_engine_steps to refresh waiting tasks whenever all the available tasks in a subprocess are complete. This should make it more intuitive to use.

It also cleans up some methods in both Workflow and BpmnWorkflow, and removes some BPMN related attributes that have migrated into the base Workflow class.