Skip to main content

TidyRun

A tool to orchestrate the compute and storage of Python DAGs

Features

Compute Orchestration

TidyRun provides first-class deferred compute primitives for DAG workflows:

  • Deferred Primitives: Model work with Job, ParametrizedJob, and nested DAG
  • Dependency-Aware Scheduling: Evaluate DAGs with topological execution and fail-fast behavior
  • Execution Modes: Choose subprocess (default), thread, or process
  • Parallel Evaluation: Run independent nodes with DAG.evaluate(max_workers=...)
  • Materialized Plans: Compile reproducible execution plans before running jobs
  • Resumable Runs: Re-run materialized plans with execute_materialized(skip_completed=True)
  • Pluggable Executors: Use local executors, SlurmExecutor, or AwsBatchExecutor

Serialization and Storage

TidyRun also includes a comprehensive serialization system for storing and retrieving Python objects:

  • Type-Aware Encoding: Automatically selects folder, Parquet, HDF5, JSON, or pickle based on value type
  • Lazy Evaluation: Directories deserialize into LazyDict objects that load values on-demand
  • Recursive Concatenation: Aggregate DataFrames across nested structures with LazyDict.concat() (optionally parallel with max_workers)
  • Metadata Sidecars: Each output is tracked with .tidyrun metadata files for format versioning and checksums
  • Checksum Return Value: serialize(...) returns checksum information (algorithm, digest) for the serialized payload
  • Extensible Pipeline: Customize encoders or add support for custom types
  • Intelligent Fallback: Parquet → HDF5 → JSON → Pickle chain ensures robust serialization

Quick Example:

Compute (DAG execution):

from tidyrun import DAG, Job


def square(x: int) -> int:
    return x * x


dag = DAG()
dag["a"] = Job(func=square, kwargs={"x": 3})

# Fast local execution without subprocess spawn overhead
outputs = dag.evaluate("./local_dag", execution_mode="thread", max_workers=4)
print(outputs["a"])  # 9

Serialization and lazy loading:

from tidyrun import serialize, deserialize
import pandas as pd

# Save nested data with smart format selection
serialize({
    "metrics": pd.DataFrame({"score": [9]}),
    "config": {"lr": 0.001},
}, "./results/exp_001")

# Load with lazy evaluation
results = deserialize("./results/exp_001")
df = results["metrics"]  # Loads on access

# Aggregate across nested structures
combined = results.concat(names=["run_id"])

Learn More:

  • Quick Start — Local docs workflow and publishing notes
  • DAG Guide — Jobs, parametrized jobs, executors, and evaluation modes
  • Serialization Guide — Complete API reference, quick reference, and examples

Release files for tidyrun 0.0.8

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

Source distribution (sdist)

Source distribution for tidyrun 0.0.8
File Size Uploaded
tidyrun-0.0.8.tar.gz 48.8 kB Details

Built distribution (wheel)

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

Total release size: 110.3 kB

Release files / tidyrun-0.0.8.tar.gz

Download URL tidyrun-0.0.8.tar.gz
Size 48.8 kB
Tags Source
SHA-256 checksum
How to use checksums
a544101bc8bd667782c761f2bd56b521bf8740513c4856b0e8145405e842889c
BLAKE2b-256 checksum
How to use checksums
bb4d668b4e45f63b1578977d51b76fdea75e2b6527513e4ebc3398184874376c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 14, 2026.

Transparency log

Release files / tidyrun-0.0.8-py3-none-any.whl

Download URL tidyrun-0.0.8-py3-none-any.whl
Size 61.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
bb913fc9a7b83d0dd2721e554d309536f01f1163542167388b13a66d11398d11
BLAKE2b-256 checksum
How to use checksums
ccf54047723f9952ad16adbfa11f3a08f9e26e1b5b26c059cec42a6e8f4ad0fb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 14, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.0.8 This release

2 release files

0.0.7

2 release files

0.0.6

2 release files

0.0.5

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release files

0.0.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