Skip to main content

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 banner

Pipelantic

Documentation Status

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

pipelantic-0.3.0.tar.gz (72.0 kB view details)

Uploaded Source

Built Distribution

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

pipelantic-0.3.0-py3-none-any.whl (79.7 kB view details)

Uploaded Python 3

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

Hashes for pipelantic-0.3.0.tar.gz
Algorithm Hash digest
SHA256 cd38057bc39d5f4cee44f35e2e0b0f781363c3cec7ef722fcc4c0c68b1e80357
MD5 afca5f8f2a9a46973c7447d8c5aaf6d9
BLAKE2b-256 457ca2e1e8ef67994f1da97aa9d362f8dbfcd9863b928864de64759fb5915a29

See more details on using hashes here.

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

Hashes for pipelantic-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bb6c750c94b7c3bcdb16761c8302d52ca7a278bd7fe507cf4371fe8a5174ce9f
MD5 a94034864b0bf3cc5fb554f78c40b267
BLAKE2b-256 c62be0966c0fd8a4f278e579af9e24807281a79ed47867af5b971ce8f8ac76c4

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