YAML-based approval workflow parser and validator
Project description
ApprovalML
YAML-based approval workflow parser and validator.
Install
pip install approvalml
Or for local development:
git clone https://github.com/yourorg/approvalml
pip install -e ./approvalml
CLI
# Validate a workflow file
approvalml validate my-workflow.yaml
# Validate with step/field details
approvalml validate my-workflow.yaml --verbose
# Print a readable summary
approvalml info my-workflow.yaml
Python API
from approvalml import parse_approvalml_file, parse_approvalml
# From a file
workflow, summary = parse_approvalml_file("leave-request.yaml")
if workflow:
print(workflow.name) # "Employee Leave Request"
print(workflow.workflow.keys()) # step names
else:
print(summary["errors"])
# From a YAML string
yaml_text = open("my-workflow.yaml").read()
workflow, summary = parse_approvalml(yaml_text)
Example Workflow
name: "Leave Request"
description: "Simple leave approval"
form:
fields:
- name: "leave_type"
type: "select"
label: "Type of Leave"
required: true
options:
- value: "vacation"
label: "Vacation"
- value: "sick"
label: "Sick Leave"
- name: "total_days"
type: "number"
label: "Total Days"
required: true
workflow:
manager_approval:
name: "manager_approval"
type: "decision"
approver: "${requestor.manager}"
on_approve:
continue_to: "done"
on_reject:
end_workflow: true
done:
name: "done"
type: "end"
notify_requestor: "Leave request approved"
Example Templates
Browse ready-to-use workflow templates in the examples/ folder:
| Category | Template |
|---|---|
| HR | Leave Request |
| HR | Pre-screening Interview |
| Finance | Purchase Request |
| Finance | Expense Approval |
| Finance | Invoice Processing |
| IT | Equipment Request |
| Procurement | Vendor Purchase Order |
| Procurement | Purchase Order with Signature |
Running Tests
pip install -e ".[dev]"
pytest
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
approvalml-0.1.0.tar.gz
(39.5 kB
view details)
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 approvalml-0.1.0.tar.gz.
File metadata
- Download URL: approvalml-0.1.0.tar.gz
- Upload date:
- Size: 39.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dcb4789db06547a7592999f181792b6af9e0cb2fd8d204b6154e6b983b5b1ebd
|
|
| MD5 |
6849fb6d98f2483b179f26f5ea01fc19
|
|
| BLAKE2b-256 |
294dcfa086e60b1cf416b2d419a61172d092098f5c42b81e9c1975b7a4631b6b
|
File details
Details for the file approvalml-0.1.0-py3-none-any.whl.
File metadata
- Download URL: approvalml-0.1.0-py3-none-any.whl
- Upload date:
- Size: 31.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ff7d39d78d0dda61a527594aabbc53b8e686c83f95e7dda6de5c0897638881b4
|
|
| MD5 |
e425d7adc67f985bda32478071ae5716
|
|
| BLAKE2b-256 |
06e476d351c781d852ec3c7b803fde3c3e6e2c9692ff9cb1816657a8bf11f846
|