11from importlib .util import find_spec
2- from typing import TYPE_CHECKING , Any , Callable , Optional , Union , cast , overload
2+ from typing import TYPE_CHECKING , Any , Callable , Optional , Union , overload
33
44from advanced_alchemy ._serialization import decode_json , encode_json
55from advanced_alchemy .exceptions import ImproperConfigurationError
@@ -29,10 +29,8 @@ def __init__(
2929 self ._registry : dict [str , StorageBackend ] = {}
3030 self .json_serializer = json_serializer
3131 self .json_deserializer = json_deserializer
32- self .default_backend = (
33- cast ("type[StorageBackend]" , import_string (default_backend ))
34- if isinstance (default_backend , str )
35- else default_backend
32+ self .default_backend : str = (
33+ DEFAULT_BACKEND if isinstance (default_backend , str ) else default_backend .__qualname__
3634 )
3735
3836 def set_default_backend (self , default_backend : "Union[str, type[StorageBackend]]" ) -> None :
@@ -41,11 +39,7 @@ def set_default_backend(self, default_backend: "Union[str, type[StorageBackend]]
4139 Args:
4240 default_backend: The default storage backend
4341 """
44- self .default_backend = (
45- cast ("type[StorageBackend]" , import_string (default_backend ))
46- if isinstance (default_backend , str )
47- else default_backend
48- )
42+ self .default_backend = default_backend if isinstance (default_backend , str ) else default_backend .__qualname__
4943
5044 def is_registered (self , key : str ) -> bool :
5145 """Check if a storage backend is registered in the registry.
@@ -97,7 +91,7 @@ def register_backend(self, value: "Union[StorageBackend, str]", key: "Optional[s
9791 if key is None :
9892 msg = "key is required when registering a string value"
9993 raise ImproperConfigurationError (msg )
100- self ._registry [key ] = self .default_backend (fs = value , key = key )
94+ self ._registry [key ] = import_string ( self .default_backend ) (fs = value , key = key )
10195 else :
10296 if key is not None :
10397 msg = "key is not allowed when registering a StorageBackend"
0 commit comments