77from typing_extensions import NotRequired
88
99from sqlspec .adapters .aiosqlite ._types import AiosqliteConnection
10- from sqlspec .adapters .aiosqlite .driver import AiosqliteCursor , AiosqliteDriver , aiosqlite_statement_config
10+ from sqlspec .adapters .aiosqlite .driver import (
11+ AiosqliteCursor ,
12+ AiosqliteDriver ,
13+ AiosqliteExceptionHandler ,
14+ aiosqlite_statement_config ,
15+ )
1116from sqlspec .adapters .aiosqlite .pool import (
1217 AiosqliteConnectionPool ,
1318 AiosqliteConnectTimeoutError ,
1419 AiosqlitePoolClosedError ,
1520 AiosqlitePoolConnection ,
1621)
22+ from sqlspec .adapters .sqlite ._type_handlers import register_type_handlers
1723from sqlspec .config import ADKConfig , AsyncDatabaseConfig , FastAPIConfig , FlaskConfig , LitestarConfig , StarletteConfig
1824from sqlspec .utils .serializers import from_json , to_json
1925
@@ -117,20 +123,11 @@ def __init__(
117123 config_dict ["uri" ] = True
118124
119125 processed_driver_features : dict [str , Any ] = dict (driver_features ) if driver_features else {}
120-
121- if "enable_custom_adapters" not in processed_driver_features :
122- processed_driver_features ["enable_custom_adapters" ] = True
123-
124- if "json_serializer" not in processed_driver_features :
125- processed_driver_features ["json_serializer" ] = to_json
126-
127- if "json_deserializer" not in processed_driver_features :
128- processed_driver_features ["json_deserializer" ] = from_json
126+ processed_driver_features .setdefault ("enable_custom_adapters" , True )
127+ json_serializer = processed_driver_features .setdefault ("json_serializer" , to_json )
128+ json_deserializer = processed_driver_features .setdefault ("json_deserializer" , from_json )
129129
130130 base_statement_config = statement_config or aiosqlite_statement_config
131-
132- json_serializer = processed_driver_features .get ("json_serializer" )
133- json_deserializer = processed_driver_features .get ("json_deserializer" )
134131 if json_serializer is not None :
135132 parameter_config = base_statement_config .parameter_config .with_json_serializers (
136133 json_serializer , deserializer = json_deserializer
@@ -250,8 +247,6 @@ def _register_type_adapters(self) -> None:
250247 sync adapter, so this shares the implementation.
251248 """
252249 if self .driver_features .get ("enable_custom_adapters" , False ):
253- from sqlspec .adapters .sqlite ._type_handlers import register_type_handlers
254-
255250 register_type_handlers (
256251 json_serializer = self .driver_features .get ("json_serializer" ),
257252 json_deserializer = self .driver_features .get ("json_deserializer" ),
@@ -283,7 +278,7 @@ async def provide_pool(self) -> AiosqliteConnectionPool:
283278 self .pool_instance = await self .create_pool ()
284279 return self .pool_instance
285280
286- def get_signature_namespace (self ) -> "dict[str, type[ Any] ]" :
281+ def get_signature_namespace (self ) -> "dict[str, Any]" :
287282 """Get the signature namespace for aiosqlite types.
288283
289284 Returns:
@@ -292,11 +287,16 @@ def get_signature_namespace(self) -> "dict[str, type[Any]]":
292287 namespace = super ().get_signature_namespace ()
293288 namespace .update ({
294289 "AiosqliteConnection" : AiosqliteConnection ,
290+ "AiosqliteConnectionParams" : AiosqliteConnectionParams ,
295291 "AiosqliteConnectionPool" : AiosqliteConnectionPool ,
296292 "AiosqliteConnectTimeoutError" : AiosqliteConnectTimeoutError ,
297293 "AiosqliteCursor" : AiosqliteCursor ,
294+ "AiosqliteDriver" : AiosqliteDriver ,
295+ "AiosqliteDriverFeatures" : AiosqliteDriverFeatures ,
296+ "AiosqliteExceptionHandler" : AiosqliteExceptionHandler ,
298297 "AiosqlitePoolClosedError" : AiosqlitePoolClosedError ,
299298 "AiosqlitePoolConnection" : AiosqlitePoolConnection ,
299+ "AiosqlitePoolParams" : AiosqlitePoolParams ,
300300 })
301301 return namespace
302302
0 commit comments