httk.store.backend.sql

The SQL storage layer of httk-store: store frozen dataclasses in relational databases.

This subpackage turns plain frozen dataclasses — declared storable with the stdlib-only marker vocabulary in httk-core (Indexed, Unique, Skip, Shape, StorageInfo, stored_property) — into relational storage. The driver-free, backend-neutral foundation lives one level up, in the httk.store.backend package, and is shared by every backend:

These modules import cleanly without sqlalchemy. The SQL layer proper builds on them and requires the httk-store[db] extra (sqlalchemy):

The sqlalchemy-backed names are imported lazily on first attribute access, so import httk.store.backend.sql keeps working without sqlalchemy; touching them without sqlalchemy installed raises ImportError naming the extra.

Submodules

Exceptions

MultipleResultsError

Report that a result-set one() operation found multiple results.

NoResultError

Report that a result-set one() operation found no matching result.

Classes

ResultRow

Represent one named result row by position, name, or attribute.

Package Contents

exception httk.store.backend.sql.MultipleResultsError

Bases: LookupError

Report that a result-set one() operation found multiple results.

exception httk.store.backend.sql.NoResultError

Bases: LookupError

Report that a result-set one() operation found no matching result.

class httk.store.backend.sql.ResultRow(values, names, resolver=None, guard=None)

Represent one named result row by position, name, or attribute.

Parameters:
  • values (tuple[Any, Ellipsis]) – The row values in declaration order.

  • names (tuple[str, Ellipsis]) – The corresponding output names.

  • resolver (Any) – An optional lazy value resolver.

  • guard (Any) – An optional callback that rejects access to expired values.

property names: tuple[str, Ellipsis]

Return the declared output names.

property values: tuple[Any, Ellipsis]

Return the row values in declaration order.