Skip to main content

OmniTask

A powerful, pure Python workflow automation engine designed for simplicity and scalability.

Overview

OmniTask is a modern workflow automation engine that allows you to build complex data processing pipelines with ease. It provides a clean API for defining tasks, managing dependencies, and executing workflows with features like streaming, caching, and parallel execution.

Key Features

  • Pure Python: Built entirely in Python with no external dependencies beyond PyYAML
  • Async/Await Support: Full asynchronous execution for maximum performance
  • Streaming Tasks: Real-time data processing with streaming capabilities
  • Intelligent Caching: Memory, file-based, and Redis distributed caching for optimized performance
  • Dependency Management: Automatic dependency resolution and execution ordering
  • Task Groups: Parallel execution with configurable concurrency limits
  • Conditional Execution: Execute tasks based on conditions and previous results
  • Progress Tracking: Built-in progress monitoring and callbacks
  • Error Handling: Comprehensive error handling with retry mechanisms
  • Workflow Validation: Static analysis and validation of workflow definitions
  • YAML Configuration: Define workflows using simple YAML files

Installation

pip install omniTask

Quick Start

Creating a Simple Workflow

from omniTask import Workflow, Task, TaskResult

class DataProcessorTask(Task):
    task_name = "data_processor"
    
    async def execute(self):
        data = self.config.get('data', [])
        result = sum(data)
        return TaskResult(success=True, output={"sum": result})

async def main():
    # Create workflow
    workflow = Workflow("example")
    workflow.registry.register(DataProcessorTask)

    # Add task
    task = workflow.create_task("data_processor", "process", {"data": [1, 2, 3, 4, 5]})

    # Execute
    results = await workflow.run()
    print(results["process"].output)  # {"sum": 15}

if __name__ == "__main__":
    import asyncio
    asyncio.run(main())

Using YAML Configuration

name: data_pipeline
tasks:
  load_data:
    type: file_reader
    config:
      file_path: "data.csv"
  
  process_data:
    type: data_processor
    config:
      operation: "aggregate"
  
  save_results:
    type: file_writer
    config:
      file_path: "results.json"

dependencies:
  process_data:
    - load_data
  save_results:
    - process_data
from omniTask import WorkflowTemplate

template = WorkflowTemplate("workflow.yaml")
workflow = template.create_workflow()
results = await workflow.run()

Why OmniTask?

Simple Yet Powerful

  • Minimal Learning Curve: Start with basic tasks and grow into complex workflows
  • Intuitive API: Clean, Pythonic interface that feels natural
  • Flexible Configuration: Support for both code and YAML-based workflow definitions

Built for Scale

  • Async-First Design: Handle thousands of concurrent tasks efficiently
  • Smart Caching: Avoid redundant computations with intelligent caching
  • Streaming Support: Process data in real-time as it becomes available

Production Ready

  • Comprehensive Testing: Extensive test coverage and validation
  • Error Resilience: Built-in retry mechanisms and error handling
  • Monitoring: Progress tracking and detailed logging
  • Validation: Static analysis of workflow definitions

Architecture

OmniTask follows a clean, modular architecture:

  • Core Engine: Task execution, dependency resolution, and workflow management
  • Task System: Extensible task framework with streaming support
  • Caching Layer: Pluggable caching system for performance optimization
  • Validation System: Static analysis and runtime validation
  • Utility Layer: Logging, path parsing, and helper functions

Documentation

For comprehensive documentation, visit our documentation site:

Examples

Explore our comprehensive examples:

License

OmniTask is released under the MIT License. See LICENSE for details.

Support

Metadata

Release files for omniTask 1.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for omniTask 1.1.0
File Size Uploaded
omnitask-1.1.0.tar.gz 33.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for omniTask 1.1.0
File Interpreter ABI Platform
omnitask-1.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 71.1 kB

Release files / omnitask-1.1.0.tar.gz

Download URL omnitask-1.1.0.tar.gz
Size 33.1 kB
Tags Source
SHA-256 checksum
How to use checksums
0ad6a164054917cb522519197fb9f8717de6e9f813054f5eb38c9fd0d62e9dce
BLAKE2b-256 checksum
How to use checksums
0f9921f24ce4365afe4645e565499faa548df69672c1c757d39b67f849beb4dd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 15, 2025.

Transparency log

Release files / omnitask-1.1.0-py3-none-any.whl

Download URL omnitask-1.1.0-py3-none-any.whl
Size 37.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9a7b227572ccc7fc79aad21993808f6b2e376cafeb2883abb79d3f9742e06ba4
BLAKE2b-256 checksum
How to use checksums
f42d596c602a186f008848758b0664084ff82b1200af45ecbe398b99f8ed153c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 15, 2025.

Transparency log

Release history Release notifications | RSS feed

This release

1.1.0 This release

2 release files

1.0.0

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page