aeat.adapters.persistence.storage.sql.session module

Session and unit-of-work helpers for the SQL persistence layer.

Thin wrappers around sqlalchemy.orm.sessionmaker that enforce commit-on-success and rollback-on-exception semantics via a context manager. Pairs with adapters.persistence.storage.sql.engine.get_engine() to provide a default binding when callers do not pass an explicit engine.

get_sessionmaker(engine=None)[source]

Return a sessionmaker bound to engine.

Parameters:

engine (Engine | None) – Optional engine override. When None, get_engine() is consulted.

Return type:

sessionmaker[Session]

Returns:

A configured sessionmaker instance.

session_scope(engine=None)[source]

Context-managed unit of work.

Commits on normal exit, rolls back on exception, and always closes the session.

Parameters:

engine (Engine | None) – Optional engine override. When None, get_engine() is consulted.

Yields:

A live Session.

Raises:

Exception – Re-raised after rolling back when the session body raises.

Return type:

Iterator[Session]