Skip to main content

Framework for Task orchestration

Project description

FlowTask

FlowTask is a plugin-based, component-driven task execution framework for create complex Tasks.

FlowTask runs Tasks defined in JSON, YAML or TOML files, any Task is a combination of Components, and every component in the Task run sequentially or depend of others, like a DAG.

Can create a Task combining Commands, Shell scripts and other specific Components (as TableInput: Open a Table using a datasource, DownloadFromIMAP: Download a File from a IMAP Folder, and so on), any Python Callable can be a Component inside a Task, or can extends UserComponent to build your own componets.

Every designed Task can run from CLI, programmatically, via RESTful API (using our aioHTTP-based Handler), called by WebHooks or even dispatched to a external Worker using our built-in Scheduler.

Quickstart

pip install flowtask

Tasks can organizated into directory structure like this:

tasks / ├── programs / ├── test / ├── tasks /

The main reason of this structure, is maintain organized several tasks by tenant/program, avoiding filling a directory with several task files.

FlowTask support "TaskStorage", a Task Storage is the main repository for tasks, main Task Storage is a directory in any filesystem path (optionally you can syncronize that path using git), but Tasks can be saved onto a Database or a S3 bucket.

Dependencies

  • aiohttp (Asyncio Web Framework and Server) (required by navigator)
  • AsyncDB
  • QuerySource
  • Navigator-api
  • (Optional) Qworker (for distributing asyncio Tasks on distributed workers).

Features

  • Component-based Task execution framework with several components covering several actions (download files, create pandas dataframes from files, mapping dataframe columns to a json-dictionary, etc)
  • Built-in API for execution of Tasks.

How I run a Task?

Can run a Task from CLI:

task --program=test --task=example

on CLI, you can pass an ENV (enviroment) to change the environment file on task execution.

ENV=dev task --program=test --task=example

or Programmatically:

from flowtask import Task
import asyncio

task = Task(program='test', task='example')
results = asyncio.run(task.run())
# we can alternatively, using the execution mode of task object:
results = asyncio.run(task())

Requirements

Contribution guidelines

Please have a look at the Contribution Guide

  • Writing tests
  • Code review
  • Other guidelines

Who do I talk to?

  • Repo owner or admin
  • Other community or team contact

License

Navigator is licensed under Apache 2.0 License. See the LICENSE file for more details.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

flowtask-5.12.7.tar.gz (1.3 MB view details)

Uploaded Source

Built Distributions

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

flowtask-5.12.7-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (3.4 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

flowtask-5.12.7-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (3.5 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

flowtask-5.12.7-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (3.4 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

File details

Details for the file flowtask-5.12.7.tar.gz.

File metadata

  • Download URL: flowtask-5.12.7.tar.gz
  • Upload date:
  • Size: 1.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for flowtask-5.12.7.tar.gz
Algorithm Hash digest
SHA256 4825d48a77fcb24d7567255f902200c3b3f0b7a8d361b23b432f07f4c2493849
MD5 6dc3ccc81d3802a2a078a7dd8c1fde80
BLAKE2b-256 1cf29d440b929718701de061342f0d35e99ec4c0cee76045f9c33463fd93ff95

See more details on using hashes here.

Provenance

The following attestation bundles were made for flowtask-5.12.7.tar.gz:

Publisher: release.yml on phenobarbital/flowtask

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

File details

Details for the file flowtask-5.12.7-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for flowtask-5.12.7-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 b4904f52856544c8fd461ca217409f3b200f46e662649806acbb3562bd539639
MD5 1cffc7e80488f7a1c21d62779f434d17
BLAKE2b-256 ea36c2100adbc292fada8259993e90dd5a74b10eb1f92d8e2255276538820508

See more details on using hashes here.

Provenance

The following attestation bundles were made for flowtask-5.12.7-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl:

Publisher: release.yml on phenobarbital/flowtask

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

File details

Details for the file flowtask-5.12.7-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for flowtask-5.12.7-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 647cdaaa41d98aaf6bcd880fad8d5177e4964db3bb1fb833097c628709a4854d
MD5 d68a6aa34f299d7ea9f062d7547b4c15
BLAKE2b-256 c8d1fbe718e8020790d89b0126f59d64418ee2d3792f75de3f5be96df506c854

See more details on using hashes here.

Provenance

The following attestation bundles were made for flowtask-5.12.7-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl:

Publisher: release.yml on phenobarbital/flowtask

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

File details

Details for the file flowtask-5.12.7-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for flowtask-5.12.7-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 0cb88dfce95e3c314f50ddfec1998e5f2119f26459a1fe108642a4b4e6b7361e
MD5 24de31e33497ef6521498e7d4085528b
BLAKE2b-256 46fad3a0e1a795f5306015cbe3ef6adb38f2993b520b919a6d44963c6fc405ff

See more details on using hashes here.

Provenance

The following attestation bundles were made for flowtask-5.12.7-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl:

Publisher: release.yml on phenobarbital/flowtask

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