Skip to main content

High-performance Python pipeline tool with automatic code change detection

Project description

Pivot: High-Performance Python Pipeline Tool

Change your code. Pivot knows what to run.

Pivot is a Python pipeline tool with automatic code change detection. Define stages with typed Python functions and annotations, and Pivot figures out what needs to re-run — no manual dependency declarations, no stale caches.

  • Automatic code change detection using Python introspection
  • Per-stage lock files for fast parallel writes
  • Warm worker pools with preloaded imports
  • Content-addressable caching with S3 remote storage
  • DVC compatibility via YAML export

Python: 3.13+ | Platform: Unix (Linux/macOS)

Quick Start

pip install pivot

Define stages as pure, typed functions:

# pipeline.py
from typing import Annotated, TypedDict

import pandas
import pivot


class PreprocessOutputs(TypedDict):
    clean: Annotated[pandas.DataFrame, pivot.Out("processed.csv", pivot.loaders.CSV())]


def preprocess(
    raw: Annotated[pandas.DataFrame, pivot.Dep("data.csv", pivot.loaders.CSV())],
) -> PreprocessOutputs:
    return PreprocessOutputs(clean=raw.dropna())


pipeline = pivot.Pipeline("my_pipeline")
pipeline.register(preprocess)

Then run the pipeline — Pivot resolves the DAG from artifact dependencies:

pivot repro           # Run the entire pipeline
pivot repro           # Instant - nothing changed
pivot repro --watch   # Re-run automatically on file changes

Learn More

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pivot-0.1.0.tar.gz (277.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pivot-0.1.0-py3-none-any.whl (332.9 kB view details)

Uploaded Python 3

File details

Details for the file pivot-0.1.0.tar.gz.

File metadata

  • Download URL: pivot-0.1.0.tar.gz
  • Upload date:
  • Size: 277.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for pivot-0.1.0.tar.gz
Algorithm Hash digest
SHA256 148e26b4c2c83e41eb6ae13d96e767e67f02188949c3012aa0a0fa072b9727a9
MD5 ff6c716283dd066e761c34637e20e392
BLAKE2b-256 51ea900b07fbde59e43ac6a9fb517b7e14b52319f4512870e05d97c4efb54d7b

See more details on using hashes here.

File details

Details for the file pivot-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: pivot-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 332.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for pivot-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9b8cac463ef13c64aaff7e36ce5540e909c6ee4045db70605565426696aa32d3
MD5 5b6013fab201789b55ef4fd00ef8c2ab
BLAKE2b-256 74b29034e8dc9f585fe1fbbebf222b4fd01449c310e51e8fa8addf60ef634382

See more details on using hashes here.

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