Skip to main content

No project description provided

Project description

iwf-python-sdk

Python SDK for iWF workflow engine

pip install iwf-python-sdk==0.1.2

See samples for use case examples.

Requirements

Concepts

To implement a workflow, the two most core interfaces are

A workflow can contain any number of WorkflowStates.

See more in https://github.com/indeedeng/iwf#what-is-iwf

Development Plan

1.0 -- the basic and most frequently needed features

  • Start workflow API
  • Executing wait_until/execute APIs and completing workflow
  • Parallel execution of multiple states
  • GetWorkflowResultsWithWait API
  • StateOption: WaitUntil(optional)/Execute API timeout and retry policy
  • Get workflow with wait API
  • Timer command
  • AnyCommandCompleted and AllCommandCompleted waitingType
  • InternalChannel command
  • DataAttribute
  • Stop workflow API
  • Improve workflow uncompleted error return(canceled, failed, timeout, terminated)
  • Support execute API failure policy
  • Support workflow RPC
  • Signal command
  • Reset workflow API
  • Skip timer API for testing/operation

Running iwf-server locally

Option 1: use docker compose

See iwf README

Option 2: VSCode Dev Container

Dev Container is an easy way to get iwf-server running locally. Follow these steps to launch a dev container:

  • Install Docker, VSCode, and VSCode Dev Container plugin.
  • Open the project in VSCode.
    cd iwf-python-sdk
    code .
    
  • Launch the Remote-Containers: Reopen in Container command from Command Palette (Ctrl + Shift + P). You can also click in the bottom left corner to access the remote container menu.
  • Once the dev container starts, iwf-server will be listening on port 8801.

How To Contribute

This project uses Poetry as a dependency manager. Check out Poetry's documentation on how to install it on your system before proceeding.

❗Note: If you use Conda or Pyenv as your environment / package manager, avoid dependency conflicts by doing the following first:

  1. Before installing Poetry, create and activate a new Conda env (e.g. conda create -n langchain python=3.9)
  2. Install Poetry (see above)
  3. Tell Poetry to use the virtualenv python environment (poetry config virtualenvs.prefer-active-python true)
  4. Continue with the following steps.

To install requirements:

poetry install

Update IDL

Initialize the IDL Git submodule

git submodule update --init --recursive

Update IDL to the latest commit.

git submodule update --remote --merge

Generate API client from IDL

This project uses openapi-python-client to generate an API client from the IDL. To update the generated client:

cd iwf && poetry run openapi-python-client update --path ../iwf-idl/iwf-sdk.yaml --config .openapi-python-client-config.yaml

Then run cd .. && cp -R iwf/iwf_api/iwf_api/* iwf/iwf_api && rm -R iwf/iwf_api/iwf_api && poetry update to

  • Fix the api package path
  • Update the local path dependency.

Linting

To run linting for this project:

poetry run pre-commit run --show-diff-on-failure --color=always --all-files

Code of Conduct

This project is governed by the Contributor Covenant v 1.4.1. (Review the Code of Conduct and remove this sentence before publishing your project.)

License

This project uses the Apache 2.0 license. (Update this and the LICENSE file if your project uses a different license.)

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

iwf_python_sdk-0.1.4.tar.gz (66.7 kB view details)

Uploaded Source

Built Distribution

iwf_python_sdk-0.1.4-py3-none-any.whl (146.1 kB view details)

Uploaded Python 3

File details

Details for the file iwf_python_sdk-0.1.4.tar.gz.

File metadata

  • Download URL: iwf_python_sdk-0.1.4.tar.gz
  • Upload date:
  • Size: 66.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.4 CPython/3.9.20 Linux/6.5.0-1025-azure

File hashes

Hashes for iwf_python_sdk-0.1.4.tar.gz
Algorithm Hash digest
SHA256 1cc3e25d61e9ebbb1a507fea4b08c50cf45482e506b75cbc1dba3ec7284ed910
MD5 69c8573af8cf75b425e9f52420d1dce8
BLAKE2b-256 c4e1b22ddc93631b021545a0bd8763b8a08eaef1c42d1d5dc330dc754b8b7fb0

See more details on using hashes here.

File details

Details for the file iwf_python_sdk-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: iwf_python_sdk-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 146.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.4 CPython/3.9.20 Linux/6.5.0-1025-azure

File hashes

Hashes for iwf_python_sdk-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 38867034434b764a09842a84b247cf05c0ba5679c3ab6164ce7d5d79732781e1
MD5 15fe8ce88697f389efc26c8913f60363
BLAKE2b-256 3f95a3db20b340b43ff214db2ca8334e56443d163e166d67d57c3cef2a0ce294

See more details on using hashes here.

Supported by

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