Identity resolution and Customer 360 libraries (Splink, DuckDB).
Project description
SPAN
span_data is a Python library for customer data resolution and unification.
Early release. This package is under active development, and the public API and import paths may change between releases. We expect to follow semantic versioning more strictly after a 1.0 stable baseline; until then, treat upgrades as potentially breaking. Pin a specific version in production and review span_data/packaging_info/CHANGELOG.md before upgrading.
Modules
id_grapher
Identity resolution built on Splink and DuckDB. Links records that refer to the same entity across one or more source datasets and produces a unified ID graph keyed on profile_id.
from span_data.id_grapher import IDGrapher, FieldDefinitionMap, Overrides
Key capabilities:
- Ingest source data from pandas DataFrames, CSV files, and Snowflake tables or views.
- Clean and normalise source fields (text, email, phone number).
- Resolve entities into profile clusters with Splink-based probabilistic matching.
- Export graph results to DataFrames, CSV, Parquet, DuckDB relations, and Snowflake.
- Apply manual override workflows for merge, split, and assign operations.
See span_data/id_grapher/README.md for usage, test options, and benchmarks.
c360_compiler
Customer 360 pipeline built on DuckDB. Reads a YAML config to consolidate data from multiple source systems into a single unified customer view.
from span_data.c360_compiler import C360Compiler, load_config
Key capabilities:
- Merge customer demographics from multiple dimension sources with configurable waterfall precedence.
- Compute rolling-window metrics (6-month, 12-month, lifetime) from fact tables.
- Build a consent fact table with two-tier taxonomy (purpose / medium) and conflict resolution.
- Generate boolean and categorical customer segments.
- Enrich fact tables with
profile_idand deterministic hash keys.
See span_data/c360_compiler/README.md for full configuration reference and usage.
Python Support
This package currently supports Python >=3.11,<3.12.
Usage
See SPAN Product Documentation for usage instructions.
License
This project is licensed under the BSD 3-Clause License. See span_data/packaging_info/LICENSE.
Third-party dependency license information is documented in span_data/packaging_info/THIRD_PARTY_NOTICES.md.
Release history is documented in span_data/packaging_info/CHANGELOG.md.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
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 span_data-0.3.0-cp311-cp311-win_amd64.whl.
File metadata
- Download URL: span_data-0.3.0-cp311-cp311-win_amd64.whl
- Upload date:
- Size: 1.3 MB
- Tags: CPython 3.11, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
57fb7b5ae2e7c4b9e8c76ef4812d7ef59d5cc30f88345daa3cefaa2fff3e72e7
|
|
| MD5 |
67c6990d68bfcc99e530f497c7ce0c05
|
|
| BLAKE2b-256 |
30713bf45f717e6e55e058c6d190865d589ab3154a5bbfdc1faf1728008346d4
|
Provenance
The following attestation bundles were made for span_data-0.3.0-cp311-cp311-win_amd64.whl:
Publisher:
build-wheels.yml on thedataloft/SPAN
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
span_data-0.3.0-cp311-cp311-win_amd64.whl -
Subject digest:
57fb7b5ae2e7c4b9e8c76ef4812d7ef59d5cc30f88345daa3cefaa2fff3e72e7 - Sigstore transparency entry: 1782546089
- Sigstore integration time:
-
Permalink:
thedataloft/SPAN@df3512e8896c150041fca5c7fa16805238095610 -
Branch / Tag:
refs/heads/master - Owner: https://github.com/thedataloft
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build-wheels.yml@df3512e8896c150041fca5c7fa16805238095610 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file span_data-0.3.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: span_data-0.3.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 1.7 MB
- Tags: CPython 3.11, manylinux: glibc 2.17+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dfbc18c2bc2116573ff019f97e7d3acb9295a3970deb3fb71424767b064e3e84
|
|
| MD5 |
5bad71d205559e7744da6cfd6dc32e69
|
|
| BLAKE2b-256 |
30d14dac464727ac128edef58e42fe9b32f3ac462c92f156ea2adb616299b434
|
Provenance
The following attestation bundles were made for span_data-0.3.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:
Publisher:
build-wheels.yml on thedataloft/SPAN
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
span_data-0.3.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl -
Subject digest:
dfbc18c2bc2116573ff019f97e7d3acb9295a3970deb3fb71424767b064e3e84 - Sigstore transparency entry: 1782545924
- Sigstore integration time:
-
Permalink:
thedataloft/SPAN@df3512e8896c150041fca5c7fa16805238095610 -
Branch / Tag:
refs/heads/master - Owner: https://github.com/thedataloft
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build-wheels.yml@df3512e8896c150041fca5c7fa16805238095610 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file span_data-0.3.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: span_data-0.3.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 1.6 MB
- Tags: CPython 3.11, manylinux: glibc 2.17+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
83cccbb08c192192da2ac0c8cc490fbe804626b704cde769f62c7f320a4c2df5
|
|
| MD5 |
bcffda617dd92f0e1320d9228b85525f
|
|
| BLAKE2b-256 |
7e8647c0183583a27a28f5c8906ca384deabe13a918a9233ee654cd509cfd49f
|
Provenance
The following attestation bundles were made for span_data-0.3.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:
Publisher:
build-wheels.yml on thedataloft/SPAN
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
span_data-0.3.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl -
Subject digest:
83cccbb08c192192da2ac0c8cc490fbe804626b704cde769f62c7f320a4c2df5 - Sigstore transparency entry: 1782546217
- Sigstore integration time:
-
Permalink:
thedataloft/SPAN@df3512e8896c150041fca5c7fa16805238095610 -
Branch / Tag:
refs/heads/master - Owner: https://github.com/thedataloft
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build-wheels.yml@df3512e8896c150041fca5c7fa16805238095610 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file span_data-0.3.0-cp311-cp311-macosx_11_0_arm64.whl.
File metadata
- Download URL: span_data-0.3.0-cp311-cp311-macosx_11_0_arm64.whl
- Upload date:
- Size: 1.2 MB
- Tags: CPython 3.11, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c3cc71eec7b970e90e67fe96e9201ad753e381edbee840a4aaa5444eb74cf880
|
|
| MD5 |
37d52dc153bd906834f7b4a632b6d66f
|
|
| BLAKE2b-256 |
ca5792fe1a4cd75e5100519155500500c6b9658316eba1b12170510e2637e674
|
Provenance
The following attestation bundles were made for span_data-0.3.0-cp311-cp311-macosx_11_0_arm64.whl:
Publisher:
build-wheels.yml on thedataloft/SPAN
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
span_data-0.3.0-cp311-cp311-macosx_11_0_arm64.whl -
Subject digest:
c3cc71eec7b970e90e67fe96e9201ad753e381edbee840a4aaa5444eb74cf880 - Sigstore transparency entry: 1782546361
- Sigstore integration time:
-
Permalink:
thedataloft/SPAN@df3512e8896c150041fca5c7fa16805238095610 -
Branch / Tag:
refs/heads/master - Owner: https://github.com/thedataloft
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build-wheels.yml@df3512e8896c150041fca5c7fa16805238095610 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file span_data-0.3.0-cp311-cp311-macosx_10_9_x86_64.whl.
File metadata
- Download URL: span_data-0.3.0-cp311-cp311-macosx_10_9_x86_64.whl
- Upload date:
- Size: 1.3 MB
- Tags: CPython 3.11, macOS 10.9+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
061df6cae9cf4592f0fa8a1f62a0db68f03619b16eeffd84b1c008d24679be4c
|
|
| MD5 |
4b1f237a5913ce63794dd37c9a3cfd52
|
|
| BLAKE2b-256 |
ac778cded564b2c185285eb4daa25f1fb8bae171e922ecd2c4e47ef4eadd2579
|
Provenance
The following attestation bundles were made for span_data-0.3.0-cp311-cp311-macosx_10_9_x86_64.whl:
Publisher:
build-wheels.yml on thedataloft/SPAN
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
span_data-0.3.0-cp311-cp311-macosx_10_9_x86_64.whl -
Subject digest:
061df6cae9cf4592f0fa8a1f62a0db68f03619b16eeffd84b1c008d24679be4c - Sigstore transparency entry: 1782545994
- Sigstore integration time:
-
Permalink:
thedataloft/SPAN@df3512e8896c150041fca5c7fa16805238095610 -
Branch / Tag:
refs/heads/master - Owner: https://github.com/thedataloft
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build-wheels.yml@df3512e8896c150041fca5c7fa16805238095610 -
Trigger Event:
workflow_dispatch
-
Statement type: