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.1.0 — Typed Modeling Kernel
Pipelantic currently provides the authoring model, logical graph construction, topology and compatibility diagnostics, graph inspection, and Mermaid output. Planning, execution plugins, and contract serialization arrive 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.1.0
git push origin v0.1.0
GitHub Actions runs checks and publishes to PyPI using the PYPI_API_TOKEN
repository secret.
Quick example
from contractmodel import ContractModel as DataContractModel
from pipelantic import Input, Output, Pipeline, Sink, Source, Transformation
class RawCustomer(DataContractModel):
customer_id: int
first_name: str
last_name: str
class Customer(DataContractModel):
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.1.0.tar.gz.
File metadata
- Download URL: pipelantic-0.1.0.tar.gz
- Upload date:
- Size: 22.4 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 |
d5246937d3bd7ebaad8f82f256fba8bf8141572d6b8f2d21392030cc482faa85
|
|
| MD5 |
57b503cab881f2a4ff2f6e813c0e84d0
|
|
| BLAKE2b-256 |
6ab30da1c4212eb85580a778f30b267a8e553d5413aef838615938339703c539
|
File details
Details for the file pipelantic-0.1.0-py3-none-any.whl.
File metadata
- Download URL: pipelantic-0.1.0-py3-none-any.whl
- Upload date:
- Size: 22.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 |
01ea97ab8fcd22a61df893f9b4ed8b442eae6e697b6132460dcabbdf31751746
|
|
| MD5 |
66ecc31cf770b25faa095539b452b10f
|
|
| BLAKE2b-256 |
eab505094cd558aa347f58e1964de285f2081684173a51956fcf1ff91c88d6de
|