Skip to main content

Runflow

GitHub release (latest by semver) License Unit Testing Status GitHub contributors GitHub Repo stars Chat on gitter.im

What Runflow is?

Runflow is a tool to define and run workflows. To find out more about Runflow, check out runflow.org.

Runflow supports Python (3.7, 3.8, 3.9). The main audiences are devops, data scientists and hackers.

Runflow is in alpha release stage.

What Runflow is Not?

Runflow is not job scheduler. It does not schedule the job runs for you. However, you can combine Runflow with some existing scheduling solutions to run your job periodically, such as APScheduler, crontab, etc.

Runflow is not a job worker. It does not watch workloads from somewhere such as job queue. When the job run is complete, the program exits. Nonetheless, it's quite easy to integrate Runflow with some existing worker solutions, such as Celery, Python-RQ, etc.

Goals

  • Simple: We want you feel simple when developing and running workflows. No hazzle.
  • Flexible: We want it integrate to many existing solutions to broaden its use cases.

How You Will Use Runflow?

Runflow provides building blocks for defining tasks and workflows, failure recovering, command-line interfaces, etc.

Typically, you will

  • Define your workflows in HCL2 syntax.
  • Run your workflows using a simple command runflow run.

You can choose whatever technology stack you’re familiar with and glue them using Runflow.

Alternatives: Airflow, Prefect, Oozie, Azkaban.

Getting Started

Setup Python Environment

First, prepare a Python environment:

$ python3 -mvenv env
$ source venv/bin/activate

Run pip install runflow to install the latest version from PyPI.

$ pip install runflow

To install the HEAD, run pip install git+https://github.com/soasme/runflow.git.

Write a Flow Spec

Next, write a flow spec. Let’s create a file "example.hcl":

$ mkdir myrunflow
$ cd myrunflow
$ vi example.hcl
# File: example.hcl

flow "example" {
  variable "content" {
    default = "Hello World!"
  }

  task "bash_run" "echo" {
    command = "echo ${var.content}"
  }
}

Run the Flow

At last, let’s run it.

$ runflow run example.hcl
Hello World!

$ runflow run example.hcl --var="content=Hello Runflow!"
Hello Runflow!

What’s Next?

From this point, you have run a minimal example using Runflow.

For more information, please head to the full documentation.

Test

To run all of the test cases, please run: make lint test.

Get in Touch

Please report an issue at: https://github.com/soasme/runflow/issues.

Metadata

Release files for runflow 0.10.0

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

Source distribution (sdist)

Source distribution for runflow 0.10.0
File Size Uploaded
runflow-0.10.0.tar.gz 84.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for runflow 0.10.0
File Interpreter ABI Platform
runflow-0.10.0-py3-none-any.whl Python 3 none any Details

Total release size: 173.8 kB

Release files / runflow-0.10.0.tar.gz

Download URL runflow-0.10.0.tar.gz
Size 84.0 kB
Tags Source
SHA-256 checksum
How to use checksums
4d33adc0ef28802008622221595e97a09ce711582e1aa870b41ab3fcb08ad2cb
BLAKE2b-256 checksum
How to use checksums
90c2d996678eb1d958431ee876f33edf27fac8e3a7323384ff1a4c429127f8a0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.5

Release files / runflow-0.10.0-py3-none-any.whl

Download URL runflow-0.10.0-py3-none-any.whl
Size 89.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
79ee739109604fffbfe25e984e077af5eb32b57d06da9ef5ee68f6f442ef65a3
BLAKE2b-256 checksum
How to use checksums
648e4fb6f819c8effbe8d5fb544100b3c7f766d36f00a96c489509f0bcd3a7c9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.5

Release history Release notifications | RSS feed

This release

0.10.0 This release

2 release files

0.9.0

2 release files

0.8.1

2 release files

0.8.0

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.4

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

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