Skip to main content

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


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)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

approvalml-0.1.0-py3-none-any.whl (31.4 kB view details)

Uploaded Python 3

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

Hashes for approvalml-0.1.0.tar.gz
Algorithm Hash digest
SHA256 dcb4789db06547a7592999f181792b6af9e0cb2fd8d204b6154e6b983b5b1ebd
MD5 6849fb6d98f2483b179f26f5ea01fc19
BLAKE2b-256 294dcfa086e60b1cf416b2d419a61172d092098f5c42b81e9c1975b7a4631b6b

See more details on using hashes here.

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

Hashes for approvalml-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ff7d39d78d0dda61a527594aabbc53b8e686c83f95e7dda6de5c0897638881b4
MD5 e425d7adc67f985bda32478071ae5716
BLAKE2b-256 06e476d351c781d852ec3c7b803fde3c3e6e2c9692ff9cb1816657a8bf11f846

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page