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
- Documentation
- Source code
- Interactive TUI:
pip install pivot[tui], thenpivot repro --tui
Metadata
Release files for pivot 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pivot-0.1.0.tar.gz | 277.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pivot-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 609.9 kB
Release files / pivot-0.1.0.tar.gz
| Download URL | pivot-0.1.0.tar.gz |
|---|---|
| Size | 277.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
148e26b4c2c83e41eb6ae13d96e767e67f02188949c3012aa0a0fa072b9727a9
|
|
BLAKE2b-256 checksum How to use checksums |
51ea900b07fbde59e43ac6a9fb517b7e14b52319f4512870e05d97c4efb54d7b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is 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}
|
Release files / pivot-0.1.0-py3-none-any.whl
| Download URL | pivot-0.1.0-py3-none-any.whl |
|---|---|
| Size | 332.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9b8cac463ef13c64aaff7e36ce5540e909c6ee4045db70605565426696aa32d3
|
|
BLAKE2b-256 checksum How to use checksums |
74b29034e8dc9f585fe1fbbebf222b4fd01449c310e51e8fa8addf60ef634382
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is 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}
|