A workflow automation tool
Project description
Buffalo
Buffalo is a powerful workflow management tool designed for quickly creating and managing project workflows. It provides a simple and flexible way to define, track, and manage tasks and workflows within projects.
Key Features
- 🚀 Quick project creation and management
- 📋 YAML-based workflow definition
- 🔄 Work status tracking and management
- 📁 Project template support
- 🔍 Flexible work retrieval mechanism
- 💾 Automatic project state saving and loading
- 📊 Ordered workflow execution with index-based sorting
Installation
pip install buffalo-workflow
Quick Start
- Create a workflow template file (e.g.,
workflow_template.yml):
workflow:
works:
- name: "task_1"
status: not_started
comment: "First task"
index: 1
- name: "task_2"
status: not_started
comment: "Second task"
index: 2
Note: Each work in the workflow must have an
indexfield, which is used to determine the execution order. Works will be automatically sorted by their index values, regardless of their order in the template file.
- Use Buffalo to create and manage projects:
from pathlib import Path
from buffalo import Buffalo
# Initialize Buffalo
base_dir = Path("./projects")
template_path = Path("./workflow_template.yml")
buffalo = Buffalo(base_dir, template_path)
# Create a new project
project = buffalo.create_project("my_project")
# Get a pending task
project, work = buffalo.get_a_job("task_1")
# Update task status
buffalo.update_work_status(project.folder_name, work, "in_progress")
Project Structure
my_project/
├── buffalo.yml # Project configuration file
└── workflow_description.yml # Workflow description file
Requirements
- Python >= 3.8
- PyYAML >= 5.1
License
MIT License
Contributing
Issues and Pull Requests are welcome!
Links
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file buffalo_workflow-0.1.6.tar.gz.
File metadata
- Download URL: buffalo_workflow-0.1.6.tar.gz
- Upload date:
- Size: 14.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
58f36df324630b0697a417615bd4c8a8c2025ace7035e8b9d9fc6d740fc966b6
|
|
| MD5 |
975d8256b033c560fc4c1f41e4fc557f
|
|
| BLAKE2b-256 |
2d5395b41ba64498eabce5031a642b99d28ac607ff4481ae29a6f86167d3dcf6
|
File details
Details for the file buffalo_workflow-0.1.6-py3-none-any.whl.
File metadata
- Download URL: buffalo_workflow-0.1.6-py3-none-any.whl
- Upload date:
- Size: 12.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8c86734ce397899e0e0f61dacc43f84e3b7b41e5f9989db661fe955fa59ccff0
|
|
| MD5 |
d7af4a87037c0ad1eec1c215cec77914
|
|
| BLAKE2b-256 |
4b6b352e4ac41e3bd563f6747f35a7e7e08446b1f1592b7452ee0c35f9012d3c
|