No project description provided
Project description
python-workflow
A small framework to do workflows with threadable tasks
Documentation : https://anthonykgross.fr/python-workflow/
Install
From PyPI
pip install python-workflow
From source
rm build/ python_workflow.egg-info dist -Rf
python3 setup.py bdist_wheel
pip3 install -I dist/python_workflow-*-py3-none-any.whl
How it works
sequenceDiagram
Workflow->>+Step: Step1 is starting ...
Step->>+Task: Task1 is starting ...
Step->>+Task: Task2 is starting ...
Task->>-Step: Task2 is done
Task->>-Step: Task1 is done
Step->>+Task: Task3 is starting ...
Task->>-Step: Task3 is done
Step->>-Workflow: Step1 is done
Note right of Step: Tasks are running in concurrency (thread)
Note right of Workflow: Step is done when all its tasks are done
Each Step is running when the previous one is done. A Step is done when all its tasks are completed or raise exceptions. Workflow will be stopped when a Step crashes or complete them.
kwargs | default | description |
---|---|---|
nb_thread | 4 | The number of tasks to execute simultaneously. e.g. : 10 tasks on 2 threads = 5 loops |
raise_error | True | If one of tasks crashes, the whole Step is considered as failed. |
How to use
from python_workflow import Task, Step, Workflow
class MyTask1(Task):
def __init__(self):
super().__init__('my_task_1')
def run(self):
return 'It works 1!'
class MyTask2(Task):
def __init__(self):
super().__init__('my_task_2')
def run(self):
return 'It works 2!'
class MyTask3(Task):
def __init__(self):
super().__init__('my_task_3')
def run(self):
return 'It works 3!'
step1 = Step(
'my_step_1', tasks=[
MyTask1(),
MyTask2(),
MyTask3(),
],
nb_thread=2
)
workflow = Workflow('my_workflow', steps=[step1])
workflow.start()
workflow.duration
# 3
workflow.steps[0].duration
# 3
workflow.steps[0].tasks[0].duration
# 2
workflow.steps[0].tasks[1].duration
# 1
workflow.steps[0].tasks[2].duration
# 1
Contributors
Anthony K GROSS
Copyright and license
Code and documentation copyright 2024. Code released under the MIT license.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
No source distribution files available for this release.See tutorial on generating distribution archives.
Built Distribution
File details
Details for the file python_workflow-1.0.2-py3-none-any.whl
.
File metadata
- Download URL: python_workflow-1.0.2-py3-none-any.whl
- Upload date:
- Size: 8.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | bd469b56900574fd0ae5502469184f426e0fadc548f3c926f839963ab0483666 |
|
MD5 | 625b2879f35cfbe6bcb53ac4c5ff8dc1 |
|
BLAKE2b-256 | 3c8095759dfcf209f0a339b451cc4a3cdacf684239b93334f01de10ed0474a8f |