API Reference
Base
Backend-agnostic base for stored-procedure / SQL executors.
Template Method pattern: this class owns everything that’s the same across DB backends (cursor lifecycle, commit/rollback, fetch-to-dict, chunked streaming, error wrapping). A subclass only has to implement:
_connect() -> open a DB-API 2.0 connection
_call_procedure_sql() -> dialect-specific “call this SP” string
Everything else (call_procedure, execute, stream, stream_procedure) is inherited for free. See sqlserver.py for a ~15-line concrete example.
- exception sql_executor.base.DatabaseError[source]
Bases:
ExceptionRaised when a stored procedure / SQL execution fails.
Callers should catch this rather than checking for None/False — it’s always raised on failure, never swallowed.
- class sql_executor.base.BaseSqlExecutor[source]
Bases:
ABC- driver_error
alias of
Exception
- call_procedure(sp_name, params=(), fetch=False)[source]
- Parameters:
sp_name (str)
params (Sequence[Any])
fetch (bool)
- execute(sql, params=(), fetch=False)[source]
Run raw SQL (SELECT/INSERT/UPDATE/DELETE).
- Parameters:
sql (str)
params (Sequence[Any])
fetch (bool)
SQL Server backend
SQL Server backend — the only piece that knows about pyodbc.
- class sql_executor.sqlserver.SqlServerExecutor(connstring)[source]
Bases:
BaseSqlExecutorStored-procedure / SQL executor for SQL Server, backed by pyodbc.
- Parameters:
connstring (str)
- driver_error
alias of
Error
Fake executor (testing)
In-memory test double — no real DB connection involved.
- class sql_executor.fake.FakeExecutor[source]
Bases:
BaseSqlExecutorRegister a Python callable per stored-procedure name and call it just like the real thing, for unit tests.
fake = FakeExecutor() fake.register(“dbo.GetIncidents”, lambda since: [{“id”: 1}]) fake.call_procedure(“dbo.GetIncidents”, params=(“2026-06-01”,), fetch=True)
- driver_error
alias of
Exception
- register(sp_name, handler)[source]
Register a virtual subclass of an ABC.
Returns the subclass, to allow usage as a class decorator.
- Parameters:
sp_name (str)
handler (Callable[[...], Any])