plugin¶
- class advanced_alchemy.extensions.litestar.plugins.EngineConfig[source]
Bases:
EngineConfigConfiguration for SQLAlchemy’s
Engine.For details see: https://docs.sqlalchemy.org/en/20/core/engines.html
- json_deserializer(target_type=Empty, type_decoders=None, strict=True)
For dialects that support the
JSONdatatype, this is a Python callable that will convert a JSON string to a Python object. By default, this is set to Litestar’s decode_json function.- Return type:
Any
- Parameters:
target_type (type[T] | EmptyType)
type_decoders (TypeDecodersSequence | None)
strict (bool)
- __init__(connect_args=<class 'advanced_alchemy.utils.dataclass.Empty'>, echo=<class 'advanced_alchemy.utils.dataclass.Empty'>, echo_pool=<class 'advanced_alchemy.utils.dataclass.Empty'>, enable_from_linting=<class 'advanced_alchemy.utils.dataclass.Empty'>, execution_options=<class 'advanced_alchemy.utils.dataclass.Empty'>, hide_parameters=<class 'advanced_alchemy.utils.dataclass.Empty'>, insertmanyvalues_page_size=<class 'advanced_alchemy.utils.dataclass.Empty'>, isolation_level=<class 'advanced_alchemy.utils.dataclass.Empty'>, json_deserializer=<function decode_json>, json_serializer=<function serializer>, label_length=<class 'advanced_alchemy.utils.dataclass.Empty'>, logging_name=<class 'advanced_alchemy.utils.dataclass.Empty'>, max_identifier_length=<class 'advanced_alchemy.utils.dataclass.Empty'>, max_overflow=<class 'advanced_alchemy.utils.dataclass.Empty'>, module=<class 'advanced_alchemy.utils.dataclass.Empty'>, paramstyle=<class 'advanced_alchemy.utils.dataclass.Empty'>, pool=<class 'advanced_alchemy.utils.dataclass.Empty'>, poolclass=<class 'advanced_alchemy.utils.dataclass.Empty'>, pool_logging_name=<class 'advanced_alchemy.utils.dataclass.Empty'>, pool_pre_ping=<class 'advanced_alchemy.utils.dataclass.Empty'>, pool_size=<class 'advanced_alchemy.utils.dataclass.Empty'>, pool_recycle=<class 'advanced_alchemy.utils.dataclass.Empty'>, pool_reset_on_return=<class 'advanced_alchemy.utils.dataclass.Empty'>, pool_timeout=<class 'advanced_alchemy.utils.dataclass.Empty'>, pool_use_lifo=<class 'advanced_alchemy.utils.dataclass.Empty'>, plugins=<class 'advanced_alchemy.utils.dataclass.Empty'>, query_cache_size=<class 'advanced_alchemy.utils.dataclass.Empty'>, use_insertmanyvalues=<class 'advanced_alchemy.utils.dataclass.Empty'>)
- class advanced_alchemy.extensions.litestar.plugins.SQLAlchemyAsyncConfig[source]
Bases:
SQLAlchemyAsyncConfigLitestar Async SQLAlchemy Configuration.
- before_send_handler: BeforeMessageSendHookHandler | Literal['autocommit', 'autocommit_include_redirects'] | None = None
Handler to call before the ASGI message is sent.
The handler should handle closing the session stored in the ASGI scope, if it’s still open, and committing and uncommitted data.
- engine_dependency_key: str = 'db_engine'
Key to use for the dependency injection of database engines.
- session_dependency_key: str = 'db_session'
Key to use for the dependency injection of database sessions.
- engine_app_state_key: str = 'db_engine'
Key under which to store the SQLAlchemy engine in the application
Stateinstance.
- session_maker_app_state_key: str = 'session_maker_class'
Key under which to store the SQLAlchemy
sessionmakerin the applicationStateinstance.
- session_scope_key: str = '_sqlalchemy_db_session'
Key under which to store the SQLAlchemy scope in the application.
- engine_config: EngineConfig
Configuration for the SQLAlchemy engine.
The configuration options are documented in the SQLAlchemy documentation.
- set_default_exception_handler: bool = True
Sets the default exception handler on application start.
- __init__(create_engine_callable=<function create_async_engine>, session_config=<factory>, session_maker_class=<class 'sqlalchemy.ext.asyncio.session.async_sessionmaker'>, connection_string=None, engine_config=<factory>, session_maker=None, engine_instance=None, create_all=False, metadata=None, bind_key=None, enable_touch_updated_timestamp_listener=True, enable_file_object_listener=True, file_object_raise_on_error=True, alembic_config=<factory>, routing_config=None, before_send_handler=None, engine_dependency_key='db_engine', session_dependency_key='db_session', engine_app_state_key='db_engine', session_maker_app_state_key='session_maker_class', session_scope_key='_sqlalchemy_db_session', set_default_exception_handler=True)
- create_session_maker()[source]
Get a session maker. If none exists yet, create one.
- Returns:
Session factory used by the plugin.
- provide_engine(state)[source]
Create an engine instance.
- provide_session(state, scope)[source]
Create a session instance.
- Parameters:
scope¶ (
Union[HTTPScope,WebSocketScope]) – The current connection’s scope.state (State)
scope (HTTPScope | WebSocketScope)
- Return type:
- Returns:
A session instance.
- property signature_namespace: dict[str, Any]
Return the plugin’s signature namespace.
- Returns:
A string keyed dict of names to be added to the namespace for signature forward reference resolution.
- async create_all_metadata(app)[source]
Create all metadata
- create_app_state_items()[source]
Key/value pairs to be stored in application state.
- class advanced_alchemy.extensions.litestar.plugins.SQLAlchemyInitPlugin[source]
Bases:
InitPluginProtocol,CLIPlugin,SlotsBaseSQLAlchemy application lifecycle configuration.
- __init__(config)[source]
Initialize
SQLAlchemyPlugin.- Parameters:
config¶ – configure DB connection and hook handlers and dependencies.
- on_cli_init(cli)[source]
Called when the CLI is initialized.
This can be used to extend or override existing commands.
- Parameters:
cli¶ (
Group) – The rootclick.Groupof the Litestar CLIcli (Group)
- Return type:
Examples
from litestar import Litestar from litestar.plugins import CLIPluginProtocol from click import Group class CLIPlugin(CLIPluginProtocol): def on_cli_init(self, cli: Group) -> None: @cli.command() def is_debug_mode(app: Litestar): print(app.debug) app = Litestar(plugins=[CLIPlugin()])
- class advanced_alchemy.extensions.litestar.plugins.SQLAlchemyPlugin[source]
Bases:
InitPluginProtocol,SlotsBaseA plugin that provides SQLAlchemy integration.
- __init__(config)[source]
Initialize
SQLAlchemyPlugin.- Parameters:
config¶ (
Union[SQLAlchemyAsyncConfig,SQLAlchemySyncConfig,Sequence[Union[SQLAlchemyAsyncConfig,SQLAlchemySyncConfig]]]) – configure DB connection and hook handlers and dependencies.config (SQLAlchemyAsyncConfig | SQLAlchemySyncConfig | Sequence[SQLAlchemyAsyncConfig | SQLAlchemySyncConfig])
- Return type:
None
- class advanced_alchemy.extensions.litestar.plugins.SQLAlchemySerializationPlugin[source]
Bases:
SerializationPlugin,SlotsBase- __init__()[source]
- Return type:
None
- supports_type(field_definition)[source]
Given a value of indeterminate type, determine if this value is supported by the plugin.
- Parameters:
field_definition¶ (
FieldDefinition) – A parsed type.field_definition (FieldDefinition)
- Return type:
- Returns:
Whether the type is supported by the plugin.
- create_dto_for_type(field_definition)[source]
Given a parsed type, create a DTO class.
- Parameters:
field_definition¶ (
FieldDefinition) – A parsed type.field_definition (FieldDefinition)
- Return type:
type[Any]]- Returns:
A DTO class.
- class advanced_alchemy.extensions.litestar.plugins.SQLAlchemySyncConfig[source]
Bases:
SQLAlchemySyncConfigLitestar Sync SQLAlchemy Configuration.
- before_send_handler: BeforeMessageSendHookHandler | Literal['autocommit', 'autocommit_include_redirects'] | None = None
Handler to call before the ASGI message is sent.
The handler should handle closing the session stored in the ASGI scope, if it’s still open, and committing and uncommitted data.
- engine_dependency_key: str = 'db_engine'
Key to use for the dependency injection of database engines.
- session_dependency_key: str = 'db_session'
Key to use for the dependency injection of database sessions.
- engine_app_state_key: str = 'db_engine'
Key under which to store the SQLAlchemy engine in the application
Stateinstance.
- session_maker_app_state_key: str = 'session_maker_class'
Key under which to store the SQLAlchemy
sessionmakerin the applicationStateinstance.
- session_scope_key: str = '_sqlalchemy_db_session'
Key under which to store the SQLAlchemy scope in the application.
- engine_config: EngineConfig
Configuration for the SQLAlchemy engine.
The configuration options are documented in the SQLAlchemy documentation.
- set_default_exception_handler: bool = True
Sets the default exception handler on application start.
- __init__(create_engine_callable=<function create_engine>, session_config=<factory>, session_maker_class=<class 'sqlalchemy.orm.session.sessionmaker'>, connection_string=None, engine_config=<factory>, session_maker=None, engine_instance=None, create_all=False, metadata=None, bind_key=None, enable_touch_updated_timestamp_listener=True, enable_file_object_listener=True, file_object_raise_on_error=True, alembic_config=<factory>, routing_config=None, before_send_handler=None, engine_dependency_key='db_engine', session_dependency_key='db_session', engine_app_state_key='db_engine', session_maker_app_state_key='session_maker_class', session_scope_key='_sqlalchemy_db_session', set_default_exception_handler=True)
- create_session_maker()[source]
Get a session maker. If none exists yet, create one.
- Returns:
Session factory used by the plugin.
- provide_engine(state)[source]
Create an engine instance.
- provide_session(state, scope)[source]
Create a session instance.
- Parameters:
scope¶ (
Union[HTTPScope,WebSocketScope]) – The current connection’s scope.state (State)
scope (HTTPScope | WebSocketScope)
- Return type:
- Returns:
A session instance.
- property signature_namespace: dict[str, TypeAliasForwardRef('typing.Any')]
Return the plugin’s signature namespace.
- Returns:
A string keyed dict of names to be added to the namespace for signature forward reference resolution.
- create_all_metadata(app)[source]
Create all metadata
- create_app_state_items()[source]
Key/value pairs to be stored in application state.