Skip to main content

Framework for Task orchestration

Reason this release was yanked:

credential leaked

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.10.tar.gz (13.2 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.10-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (12.0 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

flowtask-5.11.10-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (12.0 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

flowtask-5.11.10-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (11.9 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

File details

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

File metadata

  • Download URL: flowtask-5.11.10.tar.gz
  • Upload date:
  • Size: 13.2 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.10.tar.gz
Algorithm Hash digest
SHA256 72d3edc5a43a674699fc99b1c99f42b66674226ac34d06f78d973ae8e4135bcd
MD5 e0965dc5f1e7127ca4714a0f39c6d9c6
BLAKE2b-256 6026def5b54e9b6d957583c8b20b34fbe4d852d6af5c38b1d8c81d20b3b63270

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for flowtask-5.11.10-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 8fc40285f4f5041f39c2755a1f3ce09caf97bdabc6caf83c43a6054d19ad6b65
MD5 6bcbf0db277c9ad02cbd227ee27ded52
BLAKE2b-256 af556da5a90d47fc644df3cbec94fbb126cd63b7a8fc0214182d34b842a490a7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for flowtask-5.11.10-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 ac7643772100a2c73aad1e649e1ac3e75d77a8931cd7e69122e19d2075eadf6c
MD5 a7ec3fb85d27df5635bd7e0ea6973b90
BLAKE2b-256 8a40833c7f74044aa29a22332f66494344697e56ac5fcd3dc5f3b29f16cd64f1

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for flowtask-5.11.10-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 4bc2bece0d32093b0af22d914e60ebfa153011f79e9bb938b7067cd3c0b479e5
MD5 718754e153700eeb9dd0dc61903710c7
BLAKE2b-256 947661d916ffb4759e2bcafe41fa7369923138dc82a18d48c32f9353e6a0c00c

See more details on using hashes here.

Provenance

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