Skip to content

Commit d363adf

Browse files
authored
chore(release): bump to v1.0.0 (#420)
This is the 1.0 release of Advanced Alchemy
1 parent 31557eb commit d363adf

12 files changed

Lines changed: 479 additions & 439 deletions

File tree

.pre-commit-config.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ repos:
2222
- id: unasyncd
2323
additional_dependencies: ["ruff"]
2424
- repo: https://github.com/charliermarsh/ruff-pre-commit
25-
rev: "v0.9.10"
25+
rev: "v0.11.0"
2626
hooks:
2727
# Run the linter.
2828
- id: ruff

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,8 +89,8 @@ release: ## Bump version and create re
8989
@make docs
9090
@make clean
9191
@make build
92-
@uv lock --upgrade-package advanced-alchemy >/dev/null 2>&1
9392
@uv run bump-my-version bump $(bump)
93+
@uv lock --upgrade-package advanced-alchemy
9494
@echo "${OK} Release complete 🎉"
9595

9696
# =============================================================================

advanced_alchemy/base.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -269,7 +269,7 @@ class MetadataRegistry:
269269
def __new__(cls) -> Self:
270270
if cls._instance is None:
271271
cls._instance = super().__new__(cls)
272-
return cast(Self, cls._instance)
272+
return cast("Self", cls._instance)
273273

274274
def get(self, bind_key: Optional[str] = None) -> MetaData:
275275
"""Get the metadata for the given bind key."""

advanced_alchemy/exceptions.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -318,7 +318,7 @@ def wrap_sqlalchemy_exception( # noqa: C901, PLR0915
318318
if wrap_exceptions is False:
319319
raise
320320
raise IntegrityError(
321-
detail=cast(str, getattr(exc.orig, "detail", "There was an issue processing the statement."))
321+
detail=cast("str", getattr(exc.orig, "detail", "There was an issue processing the statement."))
322322
) from exc
323323
except SQLAlchemyError as exc:
324324
if wrap_exceptions is False:

advanced_alchemy/extensions/sanic/config.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -269,7 +269,7 @@ def get_sessionmaker_from_request(self, request: "Request") -> async_sessionmake
269269
SessionMakerT: The session maker.
270270
"""
271271
return cast(
272-
async_sessionmaker[AsyncSession], getattr(request.app.ctx, self.session_maker_key, None)
272+
"async_sessionmaker[AsyncSession]", getattr(request.app.ctx, self.session_maker_key, None)
273273
) # pragma: no cover
274274

275275
def get_session_from_request(self, request: Request) -> AsyncSession:
@@ -477,7 +477,7 @@ def get_sessionmaker_from_request(self, request: Request) -> sessionmaker[Sessio
477477
Returns:
478478
SessionMakerT: The session maker.
479479
"""
480-
return cast(sessionmaker[Session], getattr(request.app.ctx, self.session_maker_key, None)) # pragma: no cover
480+
return cast("sessionmaker[Session]", getattr(request.app.ctx, self.session_maker_key, None)) # pragma: no cover
481481

482482
def get_session_from_request(self, request: Request) -> "Session":
483483
"""Retrieve the session from the request context.

advanced_alchemy/extensions/sanic/extension.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ def _get_session_from_request(
156156
session = getattr(request.ctx, config.session_key, None)
157157
if session is None:
158158
setattr(request.ctx, config.session_key, config.get_session())
159-
return cast(Union["Session", "AsyncSession"], session)
159+
return cast("Union[Session, AsyncSession]", session)
160160

161161
def get_session(
162162
self, request: "Request", key: Optional[str] = None

advanced_alchemy/repository/_async.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1320,7 +1320,7 @@ async def count(
13201320
),
13211321
uniquify=loader_options_have_wildcard,
13221322
)
1323-
return cast(int, results.scalar_one())
1323+
return cast("int", results.scalar_one())
13241324

13251325
async def update(
13261326
self,

advanced_alchemy/repository/_sync.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1321,7 +1321,7 @@ def count(
13211321
),
13221322
uniquify=loader_options_have_wildcard,
13231323
)
1324-
return cast(int, results.scalar_one())
1324+
return cast("int", results.scalar_one())
13251325

13261326
def update(
13271327
self,

advanced_alchemy/repository/memory/base.py

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,9 @@ def get(self, key: Any, default: type[_NotSet] = _NotSet) -> T: ...
7070
@overload
7171
def get(self, key: Any, default: AnyObject) -> "Union[T, AnyObject]": ...
7272

73-
def get(self, key: Any, default: "Union[AnyObject, type[_NotSet]]" = _NotSet) -> "Union[T, AnyObject]":
73+
def get(
74+
self, key: Any, default: "Union[AnyObject, type[_NotSet]]" = _NotSet
75+
) -> "Union[T, AnyObject]": # pragma: no cover
7476
"""Get the object identified by `key`, or return `default` if set or raise a `KeyError` otherwise
7577
7678
Args:
@@ -87,7 +89,7 @@ def get(self, key: Any, default: "Union[AnyObject, type[_NotSet]]" = _NotSet) ->
8789
key = self._resolve_key(key)
8890
except KeyError as error:
8991
if isclass(default) and not issubclass(default, _NotSet): # pyright: ignore[reportUnnecessaryIsInstance]
90-
return cast(AnyObject, default)
92+
return cast("AnyObject", default)
9193
raise KeyError from error
9294
return self._store[key]
9395

@@ -136,7 +138,7 @@ def remove_all(self) -> None:
136138
class SQLAlchemyInMemoryStore(InMemoryStore[ModelT]):
137139
id_attribute: str = "id"
138140

139-
def _update_relationship(self, data: ModelT, ref: ModelT) -> None:
141+
def _update_relationship(self, data: ModelT, ref: ModelT) -> None: # pragma: no cover
140142
"""Set relationship data fields targeting ref class to ref.
141143
142144
Example:
@@ -171,7 +173,7 @@ class Child(Base):
171173
else:
172174
setattr(data, relationship.key, ref)
173175

174-
def _update_fks(self, data: ModelT) -> None:
176+
def _update_fks(self, data: ModelT) -> None: # pragma: no cover
175177
"""Update foreign key fields according to their corresponding relationships.
176178
177179
This make sure that `data.child_id` == `data.child.id`
@@ -201,7 +203,7 @@ def _update_fks(self, data: ModelT) -> None:
201203
setattr(data, local.key, remote_value)
202204
self._update_relationship(value, data)
203205

204-
def _set_defaults(self, data: ModelT) -> None:
206+
def _set_defaults(self, data: ModelT) -> None: # pragma: no cover
205207
"""Set fields with dynamic defaults.
206208
207209
Args:
@@ -234,7 +236,7 @@ def _set_defaults(self, data: ModelT) -> None:
234236
continue
235237
setattr(data, elem.key, default_value)
236238

237-
def changed_attrs(self, data: ModelT) -> "Iterable[str]":
239+
def changed_attrs(self, data: ModelT) -> "Iterable[str]": # pragma: no cover
238240
res: list[str] = []
239241
mapper = inspect(data)
240242
if mapper is None:
@@ -271,7 +273,7 @@ def _new_instances(self, instance: ModelT) -> "Iterable[ModelT]":
271273
session.expunge_all()
272274
return relations
273275

274-
def _set_relationships_for_fks(self, data: ModelT) -> None:
276+
def _set_relationships_for_fks(self, data: ModelT) -> None: # pragma: no cover
275277
"""Set relationships matching newly added foreign keys on the instance.
276278
277279
Example:

advanced_alchemy/service/_util.py

Lines changed: 58 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -112,22 +112,46 @@ class ResultConverter:
112112
@overload
113113
def to_schema(
114114
self,
115-
data: ModelOrRowMappingT,
115+
data: "ModelOrRowMappingT",
116+
*,
117+
schema_type: None = None,
118+
) -> "ModelOrRowMappingT": ...
119+
120+
@overload
121+
def to_schema(
122+
self,
123+
data: "Union[ModelProtocol, RowMapping]",
124+
*,
125+
schema_type: "type[ModelDTOT]",
126+
) -> "ModelDTOT": ...
127+
128+
@overload
129+
def to_schema(
130+
self,
131+
data: "ModelOrRowMappingT",
116132
total: "Optional[int]" = None,
117-
filters: "Union[Sequence[Union[StatementFilter, ColumnElement[bool]]], Sequence[StatementFilter], None]" = None,
118133
*,
119134
schema_type: None = None,
120-
) -> ModelOrRowMappingT: ...
135+
) -> "ModelOrRowMappingT": ...
121136

122137
@overload
123138
def to_schema(
124139
self,
125-
data: "Sequence[ModelOrRowMappingT]",
140+
data: "Union[ModelProtocol, RowMapping]",
141+
total: "Optional[int]" = None,
142+
*,
143+
schema_type: "type[ModelDTOT]",
144+
) -> "ModelDTOT": ...
145+
146+
@overload
147+
def to_schema(
148+
self,
149+
data: "ModelOrRowMappingT",
126150
total: "Optional[int]" = None,
127151
filters: "Union[Sequence[Union[StatementFilter, ColumnElement[bool]]], Sequence[StatementFilter], None]" = None,
128152
*,
129153
schema_type: None = None,
130-
) -> OffsetPagination[ModelOrRowMappingT]: ...
154+
) -> "ModelOrRowMappingT": ...
131155

132156
@overload
133157
def to_schema(
@@ -136,8 +160,34 @@ def to_schema(
136160
total: "Optional[int]" = None,
137161
filters: "Union[Sequence[Union[StatementFilter, ColumnElement[bool]]], Sequence[StatementFilter], None]" = None,
138162
*,
139-
schema_type: type[ModelDTOT],
140-
) -> ModelDTOT: ...
163+
schema_type: "type[ModelDTOT]",
164+
) -> "ModelDTOT": ...
165+
166+
@overload
167+
def to_schema(
168+
self,
169+
data: "Sequence[ModelOrRowMappingT]",
170+
*,
171+
schema_type: None = None,
172+
) -> "OffsetPagination[ModelOrRowMappingT]": ...
173+
174+
@overload
175+
def to_schema(
176+
self,
177+
data: "Union[Sequence[ModelProtocol], Sequence[RowMapping]]",
178+
*,
179+
schema_type: "type[ModelDTOT]",
180+
) -> "OffsetPagination[ModelDTOT]": ...
181+
182+
@overload
183+
def to_schema(
184+
self,
185+
data: "Sequence[ModelOrRowMappingT]",
186+
total: "Optional[int]" = None,
187+
filters: "Union[Sequence[Union[StatementFilter, ColumnElement[bool]]], Sequence[StatementFilter], None]" = None,
188+
*,
189+
schema_type: None = None,
190+
) -> "OffsetPagination[ModelOrRowMappingT]": ...
141191

142192
@overload
143193
def to_schema(
@@ -146,7 +196,7 @@ def to_schema(
146196
total: "Optional[int]" = None,
147197
filters: "Union[Sequence[Union[StatementFilter, ColumnElement[bool]]], Sequence[StatementFilter], None]" = None,
148198
*,
149-
schema_type: type[ModelDTOT],
199+
schema_type: "type[ModelDTOT]",
150200
) -> "OffsetPagination[ModelDTOT]": ...
151201

152202
def to_schema(

0 commit comments

Comments
 (0)