sdm_relational_engine
The Kumo Relational driver for the structured-data-models-client client.
This distribution provides the heavy, client-side machinery a Kumo Relational prediction
needs before a request reaches a NIM: the relational Graph/Table abstractions,
the neighbor samplers (local native relationallib, plus DuckDB / SQLite / Snowflake /
Databricks / PostgreSQL backends), the PQL parser, and the HTTP client that talks to a Universal
TFM NIM.
It is imported as sdm_relational_engine and is normally installed transitively via the client's
relational extra rather than on its own:
pip install 'structured-data-models-client[relational]' # pulls the sdm_relational_engine driver
It can also be installed on its own, for the graph, sampler and PQL machinery.
Predicting is not available that way: the engine's entry points refuse a direct
call, so a prediction has to go through structured-data-models-client.
pip install structured-data-models-relational-engine
# optional data backends:
pip install "structured-data-models-relational-engine[duckdb]" # or [sqlite] / [snowflake] / [databricks] / [postgres]
# optional features:
pip install "structured-data-models-relational-engine[explain]" # natural-language explanation summaries
pip install "structured-data-models-relational-engine[relbench]" # Graph.from_relbench() dataset loading
Release wheels are built for CPython 3.10, 3.11, 3.12 and 3.13
(manylinux_2_28 x86-64 and aarch64); no source distribution is published.
Application code should import the client's neutral surface, not this package directly:
import pandas as pd
from sdm_client import KumoRelational, PredictiveQuery, SDMClient
users_df = pd.DataFrame({'user_id': range(12)})
orders_df = pd.DataFrame(
{
'order_id': range(120),
'user_id': [i % 12 for i in range(120)],
'price': [10.0 + i for i in range(120)],
'ordered_at': pd.date_range('2026-01-01', periods=120, freq='D'),
}
)
query = PredictiveQuery(
'PREDICT SUM(orders.price, 0, 30, days) FOR EACH users.user_id',
{'users': users_df, 'orders': orders_df},
)
request = query.materialize(indices=[1, 2, 3])
with SDMClient(url='http://localhost:8000') as client:
result = client.predict(request, model=KumoRelational())
Local development
pip install -e ".[test,databricks]"
pytest tests -m "not live_nim"
For source checkouts, the live-NIM suite
(../../qa/run_rfm_nim_live_tests.sh --full) includes durable, ticket-free
rejection regressions for fixed NIM defects; every rejection probe is followed
by a known-good prediction to detect service degradation.
The native neighbor sampler (sdm_relational_engine.relationallib) is built from
src/sdm_relational_engine/csrc/neighbor_sampler.cpp via CMake/scikit-build-core. Set
WITH_RELATIONALLIB=0 to skip the native build for a pure-Python editable install.
Metadata
Release files for structured-data-models-relational-engine 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
Total release size: 11.0 MB
Release files / structured_data_models_relational_engine-1.0.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | structured_data_models_relational_engine-1.0.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 1.4 MB |
| Tags | CPython 3.13 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
efbaf9a305e4e1cb6fac4d346a30a047caf001452bd0b3c7da1ca75ab2e8fbfe
|
|
BLAKE2b-256 checksum How to use checksums |
6122cf2d2b76d97e0e710fe8b3a6aecde877792ebb0b86e31a7bc0fbce0e090b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Release files / structured_data_models_relational_engine-1.0.0-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
| Download URL | structured_data_models_relational_engine-1.0.0-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 1.4 MB |
| Tags | CPython 3.13 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
9d4d4de16664ff0b556bacd1f7c67de95820297670d8f0f04480edd4ee621d59
|
|
BLAKE2b-256 checksum How to use checksums |
444bcdc3a48e86d0e5dd547bf7e78a019e1da669eb06499600150fcd00971bef
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Release files / structured_data_models_relational_engine-1.0.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | structured_data_models_relational_engine-1.0.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 1.4 MB |
| Tags | CPython 3.12 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
5e582023c40e9fc317fc0d119ec508a01bee8662c88f69db12d3e18e40a8094c
|
|
BLAKE2b-256 checksum How to use checksums |
74bce4ebc94d4526a2446dd0dd718605d2d182a7438c09225dbe6583cd6b3d32
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Release files / structured_data_models_relational_engine-1.0.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
| Download URL | structured_data_models_relational_engine-1.0.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 1.4 MB |
| Tags | CPython 3.12 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
9f26750ee9a1923035500f957a232b21a7116819677de9f9a0ed79610e36ef2f
|
|
BLAKE2b-256 checksum How to use checksums |
8c9f51ca235e964f2cae3573f0fb69d75909dba5ccfcc3f89aeeb54dc1c424ca
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Release files / structured_data_models_relational_engine-1.0.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | structured_data_models_relational_engine-1.0.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 1.4 MB |
| Tags | CPython 3.11 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
cd6758cb48e5f80412d620626d43d80c4df8ea1f35b340e29b780dce3bf49682
|
|
BLAKE2b-256 checksum How to use checksums |
40681f31fb8c1217a91e422f28e7b5457e310b344bd1742ad020a32615099cd1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Release files / structured_data_models_relational_engine-1.0.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
| Download URL | structured_data_models_relational_engine-1.0.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 1.4 MB |
| Tags | CPython 3.11 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
42665af6b3b58f3e5b7455e425e3e6bfe7679356d0fb71bd3b325ed26168fb47
|
|
BLAKE2b-256 checksum How to use checksums |
52f78bd970fdc60b2518617f58801ea312c22c3965cf9f23588392089c071b4a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Release files / structured_data_models_relational_engine-1.0.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | structured_data_models_relational_engine-1.0.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 1.4 MB |
| Tags | CPython 3.10 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
ae0cb732a417a921d6e6902e46a7c971777f1b1f41e365a13c1a7f7569017699
|
|
BLAKE2b-256 checksum How to use checksums |
5b2d75b099442476fe6734cde284557a2f7572f76d3e8d51635cc8acfe9900e7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Release files / structured_data_models_relational_engine-1.0.0-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
| Download URL | structured_data_models_relational_engine-1.0.0-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 1.4 MB |
| Tags | CPython 3.10 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
1c4c0d7dbdcb722d8c774c1085aed1bf59b10c0cce1061978b6ce4667de2bc3b
|
|
BLAKE2b-256 checksum How to use checksums |
8a5b268109077ab084960595c60b250993ecfc5100800069e8bb0de478ed720f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|