autowisp.database.frozen_row module

Class Inheritance Diagram

Inheritance diagram of FrozenRow

A dependency-free, picklable snapshot of a database row.

This module intentionally imports nothing from SQLAlchemy (or anything else heavy), so that FrozenRow can be referenced from the exception hierarchy without dragging the ORM into it. The companion autowisp.database.interface.snapshot_row() – which does need SQLAlchemy – builds a FrozenRow from a live ORM instance.

class autowisp.database.frozen_row.FrozenRow(table: str, columns: dict)[source]

Bases: object

Inheritance diagram of autowisp.database.frozen_row.FrozenRow

Immutable, picklable snapshot of an ORM row’s column values.

Holds the column values of a SQLAlchemy row detached from any session, so it stays usable after the session that produced it is closed and survives pickling across process/host boundaries (where a live ORM instance would not). Column values are reached by attribute (snapshot.host) or via columns.

Built from a live instance with autowisp.database.interface.snapshot_row() (parent side, where the row exists) or directly from a dict (a worker, which only has primitives threaded through its config).

This is a general utility – not specific to errors. Any place that needs a durable, picklable copy of a row (related-artifact context, provenance, caching a row past its session) can use it.

table

Name of the source table, for display/debugging.

Type:

str

columns

{column_key: value} for every mapped column captured. Treated as read-only.

Type:

dict

columns: dict
table: str