Skip to content

Commit c36e9bb

Browse files
authored
fix: fsspec is not installed (#432)
Corrects an import issue when fsspec and obstore are both missing.
1 parent 1533cbe commit c36e9bb

4 files changed

Lines changed: 28 additions & 14 deletions

File tree

advanced_alchemy/extensions/litestar/plugins/init/plugin.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,23 @@
1515
from advanced_alchemy.filters import (
1616
BeforeAfter,
1717
CollectionFilter,
18+
ComparisonFilter,
19+
ExistsFilter,
20+
FilterGroup,
21+
FilterMap,
1822
FilterTypes,
23+
InAnyFilter,
1924
LimitOffset,
25+
LogicalOperatorMap,
26+
MultiFilter,
27+
NotExistsFilter,
2028
NotInCollectionFilter,
2129
NotInSearchFilter,
2230
OnBeforeAfter,
2331
OrderBy,
2432
SearchFilter,
33+
StatementFilter,
34+
StatementTypeT,
2535
)
2636
from advanced_alchemy.service import ModelDictListT, ModelDictT, ModelDTOT, ModelOrRowMappingT, ModelT, OffsetPagination
2737

@@ -45,6 +55,7 @@
4555
"NotInSearchFilter": NotInSearchFilter,
4656
"FilterTypes": FilterTypes,
4757
"OffsetPagination": OffsetPagination,
58+
"ExistsFilter": ExistsFilter,
4859
"Parameter": Parameter,
4960
"Dependency": Dependency,
5061
"DTOData": DTOData,
@@ -58,6 +69,15 @@
5869
"scoped_session": scoped_session,
5970
"AsyncSession": AsyncSession,
6071
"async_scoped_session": async_scoped_session,
72+
"FilterGroup": FilterGroup,
73+
"NotExistsFilter": NotExistsFilter,
74+
"MultiFilter": MultiFilter,
75+
"ComparisonFilter": ComparisonFilter,
76+
"StatementTypeT": StatementTypeT,
77+
"StatementFilter": StatementFilter,
78+
"LogicalOperatorMap": LogicalOperatorMap,
79+
"InAnyFilter": InAnyFilter,
80+
"FilterMap": FilterMap,
6181
}
6282

6383

advanced_alchemy/types/file_object/registry.py

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from 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

44
from advanced_alchemy._serialization import decode_json, encode_json
55
from 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"

pyproject.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ maintainers = [
4444
name = "advanced_alchemy"
4545
readme = "README.md"
4646
requires-python = ">=3.9"
47-
version = "1.1.0"
47+
version = "1.1.1"
4848

4949
[project.urls]
5050
Changelog = "https://docs.advanced-alchemy.litestar.dev/latest/changelog"
@@ -162,7 +162,7 @@ test = [
162162
allow_dirty = true
163163
commit = false
164164
commit_args = "--no-verify"
165-
current_version = "1.1.0"
165+
current_version = "1.1.1"
166166
ignore_missing_files = false
167167
ignore_missing_version = false
168168
message = "chore(release): bump to v{new_version}"

uv.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)