API¶
Plugin¶
- class sqlspec.extensions.litestar.SQLSpecPlugin[source]
Bases:
InitPluginProtocol,CLIPluginLitestar plugin for SQLSpec database integration.
Automatically configures NumPy array serialization when NumPy is installed, enabling seamless bidirectional conversion between NumPy arrays and JSON for vector embedding workflows.
- Session Table Migrations:
The Litestar extension includes migrations for creating session storage tables. To include these migrations in your database migration workflow, add ‘litestar’ to the include_extensions list in your migration configuration.
Example
- config = AsyncpgConfig(
connection_config={“dsn”: “postgresql://localhost/db”}, extension_config={
- “litestar”: {
“session_table”: “custom_sessions” # Optional custom table name
}
}, migration_config={
“script_location”: “migrations”, “include_extensions”: [“litestar”], # Simple string list only
}
)
The session table migration will automatically use the appropriate column types for your database dialect (JSONB for PostgreSQL, JSON for MySQL, TEXT for SQLite).
Extension migrations use the ext_litestar_ prefix (e.g., ext_litestar_0001) to prevent version conflicts with application migrations.
- __init__(sqlspec, *, loader=None)[source]
Initialize SQLSpec plugin.
- property config: list[SyncDatabaseConfig[TypeAliasForwardRef('typing.Any'), TypeAliasForwardRef('typing.Any'), TypeAliasForwardRef('typing.Any')] | NoPoolSyncConfig[TypeAliasForwardRef('typing.Any'), TypeAliasForwardRef('typing.Any')] | AsyncDatabaseConfig[TypeAliasForwardRef('typing.Any'), TypeAliasForwardRef('typing.Any'), TypeAliasForwardRef('typing.Any')] | NoPoolAsyncConfig[TypeAliasForwardRef('typing.Any'), TypeAliasForwardRef('typing.Any')]]
Return the plugin configurations.
- Returns:
List of database configurations.
- on_cli_init(cli)[source]
Configure CLI commands for SQLSpec database operations.
- on_app_init(app_config)[source]
Configure Litestar application with SQLSpec database integration.
Automatically registers NumPy array serialization when NumPy is installed.
- get_annotations()[source]
Return the list of annotations.
- get_annotation(key)[source]
Return the annotation for the given configuration.
- Parameters:
key¶ (
Union[str,SyncDatabaseConfig[typing.Any, typing.Any, typing.Any],NoPoolSyncConfig[typing.Any, typing.Any],AsyncDatabaseConfig[typing.Any, typing.Any, typing.Any],NoPoolAsyncConfig[typing.Any, typing.Any],type[Union[SyncDatabaseConfig[typing.Any, typing.Any, typing.Any],NoPoolSyncConfig[typing.Any, typing.Any],AsyncDatabaseConfig[typing.Any, typing.Any, typing.Any],NoPoolAsyncConfig[typing.Any, typing.Any]]]]) – The configuration instance or key to lookup.- Raises:
KeyError – If no configuration is found for the given key.
- Return type:
type[Union[SyncDatabaseConfig[typing.Any, typing.Any, typing.Any],NoPoolSyncConfig[typing.Any, typing.Any],AsyncDatabaseConfig[typing.Any, typing.Any, typing.Any],NoPoolAsyncConfig[typing.Any, typing.Any]]]- Returns:
The annotation for the configuration.
- get_config(name)[source]
Get a configuration instance by name.
- provide_request_session(key, state, scope)[source]
Provide a database session for the specified configuration key from request scope.
- Parameters:
key¶ (
Union[str,TypeVar(SyncConfigT, bound= SyncDatabaseConfig[Any, Any, Any] | NoPoolSyncConfig[Any, Any]),TypeVar(AsyncConfigT, bound= AsyncDatabaseConfig[Any, Any, Any] | NoPoolAsyncConfig[Any, Any]),type[Union[TypeVar(SyncConfigT, bound= SyncDatabaseConfig[Any, Any, Any] | NoPoolSyncConfig[Any, Any]),TypeVar(AsyncConfigT, bound= AsyncDatabaseConfig[Any, Any, Any] | NoPoolAsyncConfig[Any, Any])]]]) – The configuration identifier (same as get_config).scope¶ (
Union[HTTPScope,WebSocketScope]) – The ASGI scope containing the request context.
- Return type:
- Returns:
A driver session instance for the specified database configuration.
- provide_sync_request_session(key, state, scope)[source]
Provide a sync database session for the specified configuration key from request scope.
- Parameters:
key¶ (
Union[str,TypeVar(SyncConfigT, bound= SyncDatabaseConfig[Any, Any, Any] | NoPoolSyncConfig[Any, Any]),type[TypeVar(SyncConfigT, bound= SyncDatabaseConfig[Any, Any, Any] | NoPoolSyncConfig[Any, Any])]]) – The sync configuration identifier.scope¶ (
Union[HTTPScope,WebSocketScope]) – The ASGI scope containing the request context.
- Return type:
- Returns:
A sync driver session instance for the specified database configuration.
- provide_async_request_session(key, state, scope)[source]
Provide an async database session for the specified configuration key from request scope.
- Parameters:
key¶ (
Union[str,TypeVar(AsyncConfigT, bound= AsyncDatabaseConfig[Any, Any, Any] | NoPoolAsyncConfig[Any, Any]),type[TypeVar(AsyncConfigT, bound= AsyncDatabaseConfig[Any, Any, Any] | NoPoolAsyncConfig[Any, Any])]]) – The async configuration identifier.scope¶ (
Union[HTTPScope,WebSocketScope]) – The ASGI scope containing the request context.
- Return type:
- Returns:
An async driver session instance for the specified database configuration.
- provide_request_connection(key, state, scope)[source]
Provide a database connection for the specified configuration key from request scope.
- Parameters:
key¶ (
Union[str,TypeVar(SyncConfigT, bound= SyncDatabaseConfig[Any, Any, Any] | NoPoolSyncConfig[Any, Any]),TypeVar(AsyncConfigT, bound= AsyncDatabaseConfig[Any, Any, Any] | NoPoolAsyncConfig[Any, Any]),type[Union[TypeVar(SyncConfigT, bound= SyncDatabaseConfig[Any, Any, Any] | NoPoolSyncConfig[Any, Any]),TypeVar(AsyncConfigT, bound= AsyncDatabaseConfig[Any, Any, Any] | NoPoolAsyncConfig[Any, Any])]]]) – The configuration identifier (same as get_config).scope¶ (
Union[HTTPScope,WebSocketScope]) – The ASGI scope containing the request context.
- Return type:
typing.Any
- Returns:
A database connection instance for the specified database configuration.
Session Stores¶
- class sqlspec.adapters.aiosqlite.litestar.AiosqliteStore[source]
Bases:
BaseSQLSpecStore[AiosqliteConfig]SQLite session store using AioSQLite driver.
Implements server-side session storage for Litestar using SQLite via the AioSQLite driver. Provides efficient session management with: - Native async SQLite operations - INSERT OR REPLACE for UPSERT functionality - Automatic expiration handling - Efficient cleanup of expired sessions
- Parameters:
config¶ (
AiosqliteConfig) – AiosqliteConfig instance.
Example
from sqlspec.adapters.aiosqlite import AiosqliteConfig from sqlspec.adapters.aiosqlite.litestar.store import AiosqliteStore
config = AiosqliteConfig(database=”:memory:”) store = AiosqliteStore(config) await store.create_table()
- __init__(config)[source]
Initialize AioSQLite session store.
- Parameters:
config¶ (
AiosqliteConfig) – AiosqliteConfig instance.
Notes
Table name is read from config.extension_config[“litestar”][“session_table”].
- async get(key, renew_for=None)[source]
Get a session value by key.
- async set(key, value, expires_in=None)[source]
Store a session value.
- Parameters:
- Return type:
Notes
Stores expires_at as Julian Day number (REAL) for optimal index usage.
- async delete(key)[source]
Delete a session by key.
- async exists(key)[source]
Check if a session key exists and is not expired.
- async expires_in(key)[source]
Get the time in seconds until the session expires.