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
  • Dynamic update resource pool

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.12 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.10.0.tar.gz (23.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nanoflow-0.10.0-py3-none-any.whl (24.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: nanoflow-0.10.0.tar.gz
  • Upload date:
  • Size: 23.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for nanoflow-0.10.0.tar.gz
Algorithm Hash digest
SHA256 8000de7adcaa8e0b8de1298c42853d712b429921953cd4f714b71da3a97b1115
MD5 02347ab2b4bfe288dbe3ac9a75e6b6d5
BLAKE2b-256 9b146846ab830f6c8821e8360b1504d6135cbc068228b47451f17d34bbfb4333

See more details on using hashes here.

Provenance

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

Publisher: release.yml on zrr-lab/nanoflow

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

  • Download URL: nanoflow-0.10.0-py3-none-any.whl
  • Upload date:
  • Size: 24.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for nanoflow-0.10.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bb042151f861e6a7dded6e6041d593c99d3e99294b4b35b0a92c7178cef11a5e
MD5 3fef0ded872f1116956891cccbbf54e9
BLAKE2b-256 72d06d2d620a13ca75b1a31d6580350d976390fda153de1b704914f5f47a9091

See more details on using hashes here.

Provenance

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

Publisher: release.yml on zrr-lab/nanoflow

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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