Skip to main content

Data Joinery


Documentation: https://ccharlesgb.github.io/data-joinery/

Examples: https://github.com/ccharlesgb/data-joinery-examples


Data Joinery is a small framework that allows you to build complex transformation jobs with an emphasis on testability. It helps you break apart complex transformations into testable units, whilst allowing you to annotate these transformations with the upstream/downstream schemas. Without a schema contract, a transformation might be declared as:

def get_metrics(fact_table: pl.LazyFrame) -> pl.LazyFrame: ...

From this we have no idea what the inputs or outputs of the transformation are. With Data Joinery you can make it much clearer:

from dataclasses import dataclass
from datetime import date
from typing import Annotated

import polars as pl

from data_joinery import Strict, transform


@dataclass
class Customer:
    snapshot_date: date
    customer_id: str
    name: str
    is_active: bool
    package: str


@dataclass
class CustomerMetrics:
    snapshot_date: date
    total_customer_count: int
    active_customer_count: int
    basic_package_customer_count: int
    pro_package_customer_count: int


@transform
def get_metrics(
    fact_table: Annotated[pl.LazyFrame, Strict(Customer)],
) -> Annotated[pl.LazyFrame, Strict(CustomerMetrics)]: ...

Using a schema first approach makes it much clearer what this transformation does, for both you and a coding agent. Data Joinery will also enforce at runtime that the input and output schemas match the type annotations.

Metadata

Release files for data-joinery 0.5.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for data-joinery 0.5.1
File Size Uploaded Provenance
data_joinery-0.5.1.tar.gz 48.5 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for data-joinery 0.5.1
File Interpreter ABI Platform
data_joinery-0.5.1-py3-none-any.whl Python 3 none any Details

Total release size: 110.4 kB

Release files / data_joinery-0.5.1.tar.gz

Download URL data_joinery-0.5.1.tar.gz
Size 48.5 kB
Tags Source
SHA-256 checksum
How to use checksums
d244bc2effa68e972899257d60def5e7041f8031450e533eb2e09b33da04c1c0
BLAKE2b-256 checksum
How to use checksums
b8e5756d39b394553c5215c9ad86e63a11296e67ff912ccc3dd48ea996f331eb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.

Transparency log

Release files / data_joinery-0.5.1-py3-none-any.whl

Download URL data_joinery-0.5.1-py3-none-any.whl
Size 61.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
99338d92d2fa86f673161757ab8dac4c4e24efe8b27e3f1dae20af0b444026e3
BLAKE2b-256 checksum
How to use checksums
b04eabc6de8c9c2c2d5ef0e0e862dfd30030dede86f48fedffe915e74d4c4be6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.

Transparency log

Security for data-joinery 0.5.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for data_joinery-0.5.1.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page