Skip to main content

Framework for running Tasks and from CLI and API for orchestation. Component-based Task builder/Runner for non-programmers.

Project description

FlowTask DataIntegration

FlowTask DataIntegration 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 Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

flowtask-5.5.19-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.8 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

flowtask-5.5.19-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.6 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

flowtask-5.5.19-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.4 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

flowtask-5.5.19-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.4 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

File details

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

File metadata

File hashes

Hashes for flowtask-5.5.19-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9867c35388e3d77d0323c21b96c986d7fa38e19794dfaaf638cac9b53c1e1db0
MD5 80dbb17deb1bcdf696fefab4aaecbf18
BLAKE2b-256 2e4d5d9043a197f436770e8390ce9dc437d769e7e8e5e992e357ca9b644e2b35

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flowtask-5.5.19-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4d80dc5714ffd4707e8204ce66d5490f2c1fb742a6ab6196e6ac1f01c4d33cb1
MD5 13b49d5b8ae43f47272cce17454f4005
BLAKE2b-256 f254f0e1189b192a8c04e70966f6208275f11f3c80658d19b80837f37206f4ce

See more details on using hashes here.

File details

Details for the file flowtask-5.5.19-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for flowtask-5.5.19-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7a78c75aaba938c4133e560a7ede2ea8d79ea2aeebc53011c2615d60cdcfef99
MD5 eff63dfd239bcaca285308d1326515b8
BLAKE2b-256 d0c1ff6066a45e4a383c2cfd7daef74c41308172abe59c9d97fd7a1aa86283cd

See more details on using hashes here.

File details

Details for the file flowtask-5.5.19-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for flowtask-5.5.19-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1544e051ed6482668bfa9c5304455c596db3072b13b0e06d88f19799c5390fb1
MD5 734a2b36535185ce93bd8a947828b07e
BLAKE2b-256 1303b8ac5cff036f50cb7c5a643bc01dd2f0d7c317a61c646d6fe335db28a188

See more details on using hashes here.

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