Skip to main content

Python SDK for the Arcaflow workflow engine (WIP)

How this SDK works

In order to create an Arcaflow plugin, you must specify a schema for each step you want to support. This schema describes two things:

  1. What your input parameters are and what their type is
  2. What your output parameters are and what their type is

Note, that you can specify several possible outputs, depending on what the outcome of your plugin execution is. You should, however, never raise exceptions that bubble outside your plugin. If you do, your plugin will crash and Arcaflow will not be able to retrieve the result data, including the error, from it.

With the schema, the plugin can run in the following modes:

  1. CLI mode, where a file with the data is loaded and the plugin is executed
  2. GRPC mode (under development) where the plugin works in conjunction with the Arcaflow Engine to enable more complex workflows

For a detailed description please see the Arcalot website.


Requirements

In order to use this SDK you need at least Python 3.9.


Run the example plugin

In order to run the example plugin run the following steps:

  1. Checkout this repository
  2. Create a venv in the current directory with python3 -m venv $(pwd)/venv
  3. Activate the venv by running source venv/bin/activate
  4. Run pip install -r requirements.txt
  5. Run ./example_plugin.py -f example.yaml

This should result in the following placeholder result being printed:

output_id: success
output_data:
  message: Hello, Arca Lot!

Generating a JSON schema file

Arcaflow plugins can generate their own JSON schema for both the input and the output schema. You can run the schema generation by calling:

./example_plugin.py --json-schema input
./example_plugin.py --json-schema output

If your plugin defines more than one step, you may need to pass the --step parameter.

Note: The Arcaflow schema system supports a few features that cannot be represented in JSON schema. The generated schema is for editor integration only.

Generating documentation

  1. Checkout this repository
  2. Create a venv in the current directory with python3 -m venv $(pwd)/venv
  3. Activate the venv by running source venv/bin/activate
  4. Run pip install -r requirements.txt
  5. Run pip install sphinx
  6. Run pip install sphinx-rtd-theme
  7. Run sphinx-apidoc -o docs/ -f -a -e src/ --doc-project "Python SDK for Arcaflow"
  8. Run make -C docs html

Developing your plugin

We have a detailed guide on developing Python plugins on the Arcalot website.

Release files for arcaflow-plugin-sdk 0.14.5

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

Source distribution (sdist)

Source distribution for arcaflow-plugin-sdk 0.14.5
File Size Uploaded
arcaflow_plugin_sdk-0.14.5.tar.gz 61.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for arcaflow-plugin-sdk 0.14.5
File Interpreter ABI Platform
arcaflow_plugin_sdk-0.14.5-py3-none-any.whl Python 3 none any Details

Total release size: 126.8 kB

Release files / arcaflow_plugin_sdk-0.14.5.tar.gz

Download URL arcaflow_plugin_sdk-0.14.5.tar.gz
Size 61.4 kB
Tags Source
SHA-256 checksum
How to use checksums
c196ebce251f7381260eac5e9e42d876802df29855a28a2993e92cb77cc76f35
BLAKE2b-256 checksum
How to use checksums
cb20ee281cadf352772b5fa046efe503e91c9e7591e36bd401bdea6491ef02d3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / arcaflow_plugin_sdk-0.14.5-py3-none-any.whl

Download URL arcaflow_plugin_sdk-0.14.5-py3-none-any.whl
Size 65.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a83756bf058380abdc02eaa7b493af64301bf6e9c79da9192b6ead0c1b91fa14
BLAKE2b-256 checksum
How to use checksums
df9b983ebd05993d9fd9fbe9c35966094fd0d85a7c6746215aa63f9a3b3c8bdb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3
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