Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

IOMATE-PKG-WORKFLOW

Control-flow and error-handling Actions for IOMate.

iomate-pkg-workflow is an IOMate Package built on top of iomate-base.

It provides Actions for controlling execution flow and handling errors inside IOMate Automations.


Features

The Package provides two main Action Groups:

Workflow
├── workflow.if
├── workflow.else_if
└── workflow.else

Error Handling
├── error_handling.try
├── error_handling.except
└── error_handling.finally

These Actions are designed to integrate with the IOMate runtime and follow the Action, Variable, and Contract abstractions provided by iomate-pkg-workflow.


Requirements

  • Python 3.12+
  • Poetry
  • iomate-base

The supported Python version range is defined in pyproject.toml.


Installation

Install from PyPI:

pip install iomate-pkg-workflow

Or add it to a Poetry project:

poetry add iomate-pkg-workflow

The Package requires a compatible version of:

iomate-base

Development Setup

Clone the repository and install the development dependencies:

poetry install

Run commands through Poetry:

poetry run <command>

Project Structure

iomate-pkg-workflow/
├── pyproject.toml
├── poetry.lock
│
├── src/
│   └── iomate_pkg_workflow/
│       ├── actions/
│       │   ├── workflow/
│       │   └── error_handling/
│       ├── package.py
│       └── ...
│
├── tests/
│   ├── workflow/
│   ├── error_handling/
│   └── ...
│
├── README.md
├── CONTRIBUTING.md
└── CODE_OF_CONDUCT.md

The exact internal structure may evolve as the Package grows, but Package-specific implementation must remain isolated from iomate-base.


Action Groups

Workflow

The Workflow group provides conditional control-flow Actions.

workflow.if
workflow.else_if
workflow.else

These Actions allow an Automation to select execution paths based on conditions evaluated during runtime.

Conceptually:

workflow.if
    │
    ├── condition = true
    │       ↓
    │    execute branch
    │
    └── condition = false
            ↓
       evaluate else_if / else

Error Handling

The Error Handling group provides Actions for defining error-handling execution scopes.

error_handling.try
error_handling.except
error_handling.finally

Conceptually:

try
 │
 ├── Action
 ├── Action
 └── Action
      │
      ├── success → continue
      │
      └── error → except
                    │
                    └── finally

The actual execution semantics are defined by the IOMate runtime and the Action Contracts exposed by this Package.


Action Contracts

Each Action has a stable key and a versioned contract.

Examples:

workflow.if
workflow.else_if
workflow.else
error_handling.try
error_handling.except
error_handling.finally

Action Contracts define the interface consumed by the IOMate runtime, including:

  • Inputs
  • Outputs
  • Type constraints
  • Variable flags
  • Contract version
  • Execution metadata

Example:

{
  "key": "workflow.if",
  "version": "1.0.0",
  "inputs": [
    {
      "name": "condition",
      "type": "boolean",
      "required": true
    }
  ],
  "outputs": []
}

Contract changes must preserve backward compatibility whenever possible.

Breaking changes require an appropriate contract version change.


iomate-pkg-workflow

This Package depends on iomate-base for the core IOMate abstractions.

The dependency direction must remain:

iomate-base
     ↑
     │
iomate-pkg-workflow

iomate-pkg-workflow must not implement its own versions of:

  • Variables
  • Type Definitions
  • Actions
  • Action Contracts
  • Package Registry
  • Runtime abstractions

These capabilities must come from iomate-base.


Package Interoperability

The Package must remain independent of other IOMate Packages.

For example, iomate-pkg-workflow must not directly depend on:

iomate-pkg-selenium
iomate-pkg-http
iomate-pkg-claude

Interoperability between Packages is achieved through the shared IOMate runtime and Variables defined by iomate-base.

iomate-base
        │
        │ Variables
        ▼
    IOMate Runtime
        ▲
        │
        │ Variables
        │
iomate-pkg-workflow

This keeps Packages independently installable and reusable.


Testing

Run the complete test suite:

poetry run pytest

Run tests with coverage:

poetry run pytest --cov=src/iomate_pkg_workflow --cov-report=term

The project requires a minimum coverage of:

80%

Tests should cover:

  • Action registration
  • Action discovery
  • Action metadata
  • Input validation
  • Output definitions
  • Action Contracts
  • Conditional behavior
  • Error-handling behavior
  • Contract compatibility

Code Quality

Run Ruff:

poetry run ruff check .

Check formatting:

poetry run ruff format --check .

Format the project:

poetry run ruff format .

Run MyPy:

poetry run mypy src

Pre-commit

Install the project's pre-commit hooks:

poetry run pre-commit install

Run all hooks:

poetry run pre-commit run --all-files

Run tests and type checking separately:

poetry run pytest
poetry run mypy src

Documentation

Documentation should be updated when changes affect:

  • Action behavior
  • Action Contracts
  • Inputs
  • Outputs
  • Type constraints
  • Error handling
  • Control-flow semantics
  • Package configuration
  • Compatibility requirements

Public Actions should include clear documentation and type annotations.


Versioning

iomate-pkg-workflow follows Semantic Versioning:

MAJOR.MINOR.PATCH

Examples:

1.0.0
1.1.0
1.1.1

MAJOR

Breaking changes to public Package behavior or Action Contracts.

MINOR

Backward-compatible functionality, such as:

  • New Actions
  • New optional inputs
  • New Action Groups

PATCH

Backward-compatible fixes, such as:

  • Bug fixes
  • Internal implementation corrections
  • Documentation corrections

Contributing

See CONTRIBUTING.md for:

  • Branching strategy
  • Development workflow
  • Pull Request requirements
  • Testing requirements
  • Commit conventions
  • Release process

See CODE_OF_CONDUCT.md for the project's community standards.


Release Process

Releases are prepared from staging.

The general release flow is:

feature branch
      ↓
Pull Request
      ↓
staging
      ↓
release preparation
      ↓
release
      ↓
version/tag
      ↓
PyPI

Before publishing a release:

  • All CI checks must pass
  • Version must be updated according to Semantic Versioning
  • Action Contract compatibility must be reviewed
  • Package dependencies must be validated
  • Release notes should be prepared
  • Package artifacts must be validated
  • The final version must be tagged in Git

The release artifact is published to PyPI as:

iomate-pkg-workflow

License

See LICENSE for licensing information.


Architecture

iomate-pkg-workflow provides control-flow capabilities to the IOMate execution system while relying on iomate-pkg-workflow for its core contracts.

                    IOMate Runtime
                          │
                          │
                    iomate-pkg-workflow
                          │
                          ▼
              iomate-pkg-workflow
                    │           │
                    │           │
              Workflow      Error Handling
                    │           │
              ┌─────┴─────┐ ┌───┴─────────┐
              │     │     │ │      │      │
             if  else_if else try  except finally

The core principles are:

iomate-pkg-workflow → Core Contracts
Package     → Workflow Capabilities
Actions     → Executable Behavior
Variables   → Interoperability
Contracts   → Compatibility

Metadata

Release files for iomate-pkg-workflow 0.1.0a0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for iomate-pkg-workflow 0.1.0a0
File Size Uploaded
iomate_pkg_workflow-0.1.0a0.tar.gz 5.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for iomate-pkg-workflow 0.1.0a0
File Interpreter ABI Platform
iomate_pkg_workflow-0.1.0a0-py3-none-any.whl Python 3 none any Details

Total release size: 13.3 kB

Release files / iomate_pkg_workflow-0.1.0a0.tar.gz

Download URL iomate_pkg_workflow-0.1.0a0.tar.gz
Size 5.8 kB
Tags Source
SHA-256 checksum
How to use checksums
6120120677da066423300e519293ec621f0a37c6a65beffe3cea0e8cf47c6839
BLAKE2b-256 checksum
How to use checksums
798c517dfff3da52e6f2d87946e9f0f3ee04eb2b4f5d319fe490b0d3b9d046b2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 8, 2026.

Transparency log

Release files / iomate_pkg_workflow-0.1.0a0-py3-none-any.whl

Download URL iomate_pkg_workflow-0.1.0a0-py3-none-any.whl
Size 7.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c204e6cc41cf2c67e7a609f0ee0e4cf0af01507e22acb4252ade4df83843ead3
BLAKE2b-256 checksum
How to use checksums
dd1e69278793aa21ce4a8ad153f92c7c93ec37247d635c26aa517655639bbf29
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 8, 2026.

Transparency log

Release history Release notifications | RSS feed

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

This release

0.1.0a0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page