Skip to main content

Semolina

[ Docs ]

The ORM for your Semantic Layer.

Typed models in Python, supporting IDE autocomplete, and a Django-like fluent query interface for the semantic layer of your data warehouse backend.

pip install semolina
pip install "semolina[snowflake]"
pip install "semolina[databricks]"

A model maps to a semantic view in your warehouse.

from semolina import (
    SemanticView,
    Metric,
    Dimension,
)


class Sales(SemanticView, view="sales"):
    revenue = Metric()
    cost = Metric()
    country = Dimension()
    region = Dimension()

Semolina needs an engine to talk to your warehouse. An engine owns one connection pool and the dialect for a backend. Build one with create_engine and register it before running any queries:

from semolina import create_engine, register

engine = create_engine(
    "default"
)  # reads [connections.default] from .semolina.toml
register("default", engine)

Use Model.query() to start building. Chain .metrics() and .dimensions() to select the fields you want, then call .execute():

query = (
    Sales.query()
    .metrics(Sales.revenue)
    .dimensions(Sales.country)
)

.execute() returns a SemolinaCursor. Use it as a context manager so the pooled connection is released when you are done, and call .fetchall_rows() to get Row objects that support both attribute and dict-style access:

with query.execute() as cursor:
    for row in cursor.fetchall_rows():
        print(row.country, row.revenue)  # attribute access
        print(row["country"])  # dict-style access

You should see output like:

CA 2000
CA
US 1500
US

Metadata

Release files for semolina 0.7.0

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

Source distribution (sdist)

Source distribution for semolina 0.7.0
File Size Uploaded
semolina-0.7.0.tar.gz 217.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for semolina 0.7.0
File Interpreter ABI Platform
semolina-0.7.0-py3-none-any.whl Python 3 none any Details

Total release size: 459.5 kB

Release files / semolina-0.7.0.tar.gz

Download URL semolina-0.7.0.tar.gz
Size 217.8 kB
Tags Source
SHA-256 checksum
How to use checksums
25cd2e942e1509f6ce358c2bc95fbfe785a88423728d104233121d6a0ddbd41a
BLAKE2b-256 checksum
How to use checksums
8ab86fcb707aa040e2b76f1102b4f841c39ef3a97f50f96acd84e88765aa18ae
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 16, 2026.

Transparency log

Release files / semolina-0.7.0-py3-none-any.whl

Download URL semolina-0.7.0-py3-none-any.whl
Size 241.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3eacffa0a4d48a9bbd92f7f0012a00f60dfe23f0cd5fd51f1d59bbec137f3347
BLAKE2b-256 checksum
How to use checksums
8ac1ff63d3552099e3f8ec64ae7c19ac15fb514e7ecfd43b3e004e332cbfab2e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 16, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.7.0 This release

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.4.0

2 release files

0.3.0

2 release files

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