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.11.7.tar.gz (13.0 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.11.7-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (11.6 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

flowtask-5.11.7-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (11.7 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

flowtask-5.11.7-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (11.6 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

File details

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

File metadata

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

File hashes

Hashes for flowtask-5.11.7.tar.gz
Algorithm Hash digest
SHA256 3c51a544cc06ac6ba174c091110f6b44aad41f4861ef1d0499efbc6a3679dac4
MD5 87ac23171436bb1469d3fdf510f1a254
BLAKE2b-256 5ade8b0eab310a5dbd395be4830d1c443ed626124a33ec313a7bf17473d1d745

See more details on using hashes here.

Provenance

The following attestation bundles were made for flowtask-5.11.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.11.7-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for flowtask-5.11.7-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 2f56206d55c6cbbdd26636bcda231ca122eb5676c9f47615a802f31cbbd2fd0b
MD5 ba8919715c0d57ff3449641dc56a24da
BLAKE2b-256 f01a4a159693c3bf9229e71b204dcc827f4bc1c5e31498ebf8bb396b4b09c69d

See more details on using hashes here.

Provenance

The following attestation bundles were made for flowtask-5.11.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.11.7-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for flowtask-5.11.7-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 32987d6253d2a7bc1004d60b05f5b0d527e5ec460d143ce8c7be1918891f3014
MD5 24d6e631feb111fbec9b509dc4f1f9b9
BLAKE2b-256 8a61b105abad2453ef2d8713b3a51eef6be294512c693d7250772cf96186e892

See more details on using hashes here.

Provenance

The following attestation bundles were made for flowtask-5.11.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.11.7-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for flowtask-5.11.7-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 490eb86b3e525a0ce1db9929cf92bf84cfe8027d6b5479aa5ea0ade4cbb7d99d
MD5 69d5514dc60db3cddb3cdbf5ad9901c3
BLAKE2b-256 e9ed41ed03cddaeef59db1754e25fce6a09225c500e11036eb5c09b2ba519e00

See more details on using hashes here.

Provenance

The following attestation bundles were made for flowtask-5.11.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