Typed, contract-driven data pipeline modeling for Python.
This project has been archived.
The maintainers of this project have marked this project as archived. No new releases are expected.
Project description
Pipelantic
Typed, contract-driven data pipeline modeling for Python.
Define data, transformations, and pipelines with typed Python classes. Validate and plan them once. Execute them through interchangeable backends.
Status
0.3.0 — Validation and Pipeline Plan IR
Pipelantic provides the typed modeling kernel, contract interoperability, and
an immutable secret-free PipelinePlan. Planning is pure (no secret
resolution or execution). Local runtime arrives in later milestones.
See the hosted documentation for the full design, CHANGELOG.md for release notes, and Roadmap for sequencing.
Install
pip install pipelantic
# or
uv add pipelantic
Development
Requires uv.
uv sync
uv run pytest
uv run ruff check .
uv run ruff format .
uv sync creates .venv, installs the package in editable mode, and installs
the dev dependency group (pytest, ruff, mkdocs) by default.
Release
Tag a version that matches src/pipelantic/_version.py, then push the tag:
git tag v0.3.0
git push origin v0.3.0
GitHub Actions runs checks and publishes to PyPI using the PYPI_API_TOKEN
repository secret.
Quick example
from pipelantic import Data, Input, Output, Pipeline, Sink, Source, Transformation
class RawCustomer(Data):
customer_id: int
first_name: str
last_name: str
class Customer(Data):
customer_id: int
full_name: str
class NormalizeCustomers(Transformation):
customers: Input[RawCustomer]
result: Output[Customer]
class CustomerPipeline(Pipeline):
raw: Source[RawCustomer] = Source(binding="customer_source")
normalized = NormalizeCustomers.step(customers=raw)
curated: Sink[Customer] = Sink(
input=normalized.result,
binding="customer_sink",
)
graph = CustomerPipeline.inspect()
report = CustomerPipeline.validate()
print(CustomerPipeline.to_mermaid())
Documentation
License
MIT
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pipelantic-0.3.0.tar.gz.
File metadata
- Download URL: pipelantic-0.3.0.tar.gz
- Upload date:
- Size: 72.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.29 {"installer":{"name":"uv","version":"0.11.29","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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cd38057bc39d5f4cee44f35e2e0b0f781363c3cec7ef722fcc4c0c68b1e80357
|
|
| MD5 |
afca5f8f2a9a46973c7447d8c5aaf6d9
|
|
| BLAKE2b-256 |
457ca2e1e8ef67994f1da97aa9d362f8dbfcd9863b928864de64759fb5915a29
|
File details
Details for the file pipelantic-0.3.0-py3-none-any.whl.
File metadata
- Download URL: pipelantic-0.3.0-py3-none-any.whl
- Upload date:
- Size: 79.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.29 {"installer":{"name":"uv","version":"0.11.29","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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bb6c750c94b7c3bcdb16761c8302d52ca7a278bd7fe507cf4371fe8a5174ce9f
|
|
| MD5 |
a94034864b0bf3cc5fb554f78c40b267
|
|
| BLAKE2b-256 |
c62be0966c0fd8a4f278e579af9e24807281a79ed47867af5b971ce8f8ac76c4
|