Skip to main content

ContractModel ↔ SQLModel bridge for ETLantic.

Project description

etlantic-sqlmodel

Optional bridge between ETLantic Data contracts and SQLModel table models for ETLantic 0.20.

pip install 'etlantic==0.27.0' 'etlantic-sqlmodel==0.27.0'
# or: pip install 'etlantic[sqlmodel]'

Sessions, Alembic migrations, and repository helpers are deferred to 1.1+. This package focuses on schema mapping and metadata comparison only.

Usage

from etlantic import Data
from etlantic_sqlmodel import (
    compare_metadata,
    contract_to_sqlmodel,
    create_plugin,
    sqlmodel_to_contract,
)


class Customer(Data):
    customer_id: int
    name: str


CustomerTable = contract_to_sqlmodel(
    Customer,
    table_name="customer",
    primary_key=("customer_id",),
)

metadata = sqlmodel_to_contract(CustomerTable)
report = compare_metadata(Customer, CustomerTable)
assert report.valid

plugin = create_plugin()

This bridge is used explicitly through its public conversion helpers; it does not require a profile engine setting. Register create_plugin() only with tooling that consumes the schema-mapping plugin object.

Generated SQLModel classes are reviewable starting points — relational choices such as primary keys and table names must be supplied explicitly.

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

etlantic_sqlmodel-0.27.0.tar.gz (5.5 kB view details)

Uploaded Source

Built Distribution

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

etlantic_sqlmodel-0.27.0-py3-none-any.whl (5.9 kB view details)

Uploaded Python 3

File details

Details for the file etlantic_sqlmodel-0.27.0.tar.gz.

File metadata

  • Download URL: etlantic_sqlmodel-0.27.0.tar.gz
  • Upload date:
  • Size: 5.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","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 etlantic_sqlmodel-0.27.0.tar.gz
Algorithm Hash digest
SHA256 5f1ad3651323dd56d1ca79a87d67d48032175c08d608200a07db9eee6ac1b613
MD5 717312be23c8c21349ead5d00d0bb992
BLAKE2b-256 23c9c0f2e28f7c8af58559eabef65faec063bb95d68228f99dc71a1c17a3174a

See more details on using hashes here.

File details

Details for the file etlantic_sqlmodel-0.27.0-py3-none-any.whl.

File metadata

  • Download URL: etlantic_sqlmodel-0.27.0-py3-none-any.whl
  • Upload date:
  • Size: 5.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","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 etlantic_sqlmodel-0.27.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1e876ec0a6317ec531917ea3d005f9efb58cb8f96642f92201064e7a709a8dc2
MD5 ddd361b0255406f7db8cefc8d0517572
BLAKE2b-256 e980f230fc15ef6f86c63c3bcc225a35d3e9d4088761399e6a732b7f9b3876d1

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