Skip to main content

A simple and efficient workflow framework for Python

Project description

Nanoflow

PyPI - Python Version pypi PyPI - Downloads LICENSE
CodSpeed Badge
uv ruff Gitmoji

Nanoflow is a simple and efficient workflow framework for Python. It allows you to define and execute tasks and workflows with ease.

Features

  • Define tasks and workflows using decorators
  • Support for task dependencies
  • Retry functionality for tasks
  • GPU resource management for parallel task execution
  • Support flow matrix and task matrix

Roadmap

  • Split commands into command and args to avoid too long
  • Integration with FastAPI for managing workflows as web APIs
  • Enhance TUI, improve task log display, use terminal-like style
  • Support for multiple configuration files or folders
  • Support for passing parameters and matrix
  • Support to depend on a task that has matrix

Installation Downloads

Installation using pip/pipx/uv

Before this, please ensure that Python 3.10 or above is installed, along with pip.

pip install nanoflow

If you want to try the Nightly version, you can try

pip install git+https://github.com/zrr1999/nanoflow@main

Before this, please ensure that pipx/uv is installed.

pipx install nanoflow
uv tool install nanoflow

Source Installation

git clone https://github.com/zrr1999/nanoflow
cd nanoflow
pip install .

Usage

To use Nanoflow as a package, you can define tasks and workflows using decorators:

from nanoflow import workflow, task

@task
def task_a():
    print("a")

@workflow
async def workflow_a():
    await task_a.submit()


if __name__ == "__main__":
    workflow_a.run()

To use Nanoflow as a cli or tui, you can use the following command:

nanoflow run examples/simple.toml
nanoflow run examples/simple.toml --use-tui

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

nanoflow-0.8.0.tar.gz (22.7 kB view details)

Uploaded Source

Built Distribution

nanoflow-0.8.0-py3-none-any.whl (24.1 kB view details)

Uploaded Python 3

File details

Details for the file nanoflow-0.8.0.tar.gz.

File metadata

  • Download URL: nanoflow-0.8.0.tar.gz
  • Upload date:
  • Size: 22.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for nanoflow-0.8.0.tar.gz
Algorithm Hash digest
SHA256 6e59bc21d51ba14c6079d6457863aea4fd8bcf9c354d30926ced25d4734c8998
MD5 e862c70d629569b46d86e94ee2225b0c
BLAKE2b-256 347dad31e67f5f3a4db8f6d97283f496cfa059529a56b88e053d1b8f672ef28a

See more details on using hashes here.

Provenance

The following attestation bundles were made for nanoflow-0.8.0.tar.gz:

Publisher: release.yml on zrr-lab/nanoflow

Attestations:

File details

Details for the file nanoflow-0.8.0-py3-none-any.whl.

File metadata

  • Download URL: nanoflow-0.8.0-py3-none-any.whl
  • Upload date:
  • Size: 24.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for nanoflow-0.8.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9e4375bc41d75d073e31d9017f1894a0fa6b69f39171c5dbf3a2147e92129a8a
MD5 64e290f29465eefe45721cf3d0dcf6f0
BLAKE2b-256 642fbe39e873801291cf13cf39776d3946d8511db93e49dca3620cdd3c7d701c

See more details on using hashes here.

Provenance

The following attestation bundles were made for nanoflow-0.8.0-py3-none-any.whl:

Publisher: release.yml on zrr-lab/nanoflow

Attestations:

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