Registry / workflow / adagio

adagio

JSON →
library0.2.6pypypi✓ verified 24d ago

Adagio is a lightweight Python framework for building and managing Directed Acyclic Graphs (DAGs), particularly for data orchestration within Fugue projects. It provides abstractions for defining tasks and composing them into execution flows. Current version is 0.2.6. Releases are infrequent, often coinciding with Fugue updates, focusing on stability and compatibility.

pip install adagio
INSTALL
IMPORT
SIG · ADAGIO
A
adagio
workflowpythonv0.2.6
Install
9.9s avg
Import
Disk
333MB
Pass rate
10/ 10
Env Coverage10 / 10
glibc
3.93.13
musl
3.93.13
Install & Compatibility
Where this runs
tested against v0.2.6 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
musl
py 3.103.95 runs
installs and imports cleanly · install 0.0s · import 0.000s · 351.2MB
glibc
py 3.103.95 runs
installs and imports cleanly · install 9.9s · import 0.000s · 313MB
333MB installed
● package 333MB
Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

Flow
import adagio
from adagio import Flow

This quickstart demonstrates how to define two simple tasks, compose them into a DAG with dependencies, and execute the DAG using Adagio's `Flow`. It shows how to pass initial data and retrieve the final results.

from adagio.dag import DAG from adagio.core import Flow, Task from typing import Any, Dict # Define simple tasks as functions def add_one(value: int) -> int: return value + 1 def multiply_by_two(value: int) -> int: return value * 2 # Wrap functions as Adagio Tasks, defining input and output names task1 = Task(add_one, "add_task", input_names=["initial_value"], output_names=["result_add"]) task2 = Task(multiply_by_two, "mul_task", input_names=["result_add"], output_names=["final_result"]) # Build the DAG by adding tasks and defining edges (dependencies) dag = DAG() dag.add_task(task1) dag.add_task(task2) dag.set_edge("add_task", "mul_task") # Connect tasks: output 'result_add' from task1 becomes input 'result_add' for task2 # Define initial data for the DAG execution initial_data = {"initial_value": 5} # Create a Flow and execute the DAG flow = Flow(dag) result = flow.run(initial_data) # Access results print(f"Initial value: {initial_data['initial_value']}") print(f"After add_one: {result['result_add']}") print(f"Final result: {result['final_result']}") assert result['final_result'] == 12
Debug
Known issues
gotchaAdagio is primarily designed as an internal component for the Fugue project. While it can be used standalone for DAG management, its API and feature set might be more opinionated and less extensive than other general-purpose DAG libraries.
fix
Understand its core purpose as a Fugue-centric DAG framework. For broader, more feature-rich general DAG solutions, consider alternatives like Apache Airflow, Prefect, or Metaflow.
affects: All 0.x.x
breakingBeing in a 0.x.x version, Adagio's API is subject to change in minor releases (e.g., 0.1.x to 0.2.x). While efforts are made to minimize disruption, direct API methods or behavior might be altered without a major version increment.
fix
Always consult release notes for each new minor version. Pin your Adagio version to a specific minor release (e.g., `adagio==0.2.*`) and test thoroughly before upgrading across minor versions.
affects: All 0.x.x
gotchaConnecting tasks requires careful mapping of output names to input names using the `Task` constructor (`output_names` parameter) and `DAG.set_edge()`. Mismatches will result in runtime errors due to missing inputs for downstream tasks, which can be hard to debug.
fix
Thoroughly double-check the `input_names` and `output_names` specified in `Task` definitions. Ensure `set_edge` correctly translates upstream outputs to downstream inputs, matching names precisely.
affects: All 0.x.x
Upgrade
Version history
0.2.6latest on PyPI · released Aug 14, 2024
Audit
Dependencies
triadrequiredProvides core utilities and type checking support.
Agent activity
63 hits · last 30 days
node
54
OpenAI (training)
1
Resources
adagio — pip install adagio · libregistry