Skip to content

Commit 39072f9

Browse files
author
Gregory Kitaev
authored
fix(types): correct type hints for with_for_update to ForUpdateParameter (#465)
This change fixes the type hint for the `with_for_update` parameter in the repositories.
1 parent 59a5b15 commit 39072f9

File tree

6 files changed

+40
-34
lines changed

6 files changed

+40
-34
lines changed

advanced_alchemy/repository/_async.py

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
from sqlalchemy.orm.strategy_options import _AbstractLoad # pyright: ignore[reportPrivateUsage]
3535
from sqlalchemy.sql import ColumnElement
3636
from sqlalchemy.sql.dml import ReturningDelete, ReturningUpdate
37+
from sqlalchemy.sql.selectable import ForUpdateParameter
3738

3839
from advanced_alchemy.exceptions import ErrorMessages, NotFoundError, RepositoryError, wrap_sqlalchemy_exception
3940
from advanced_alchemy.filters import StatementFilter, StatementTypeT
@@ -210,7 +211,7 @@ async def get_or_upsert(
210211
match_fields: Optional[Union[list[str], str]] = None,
211212
upsert: bool = True,
212213
attribute_names: Optional[Iterable[str]] = None,
213-
with_for_update: Optional[bool] = None,
214+
with_for_update: ForUpdateParameter = None,
214215
auto_commit: Optional[bool] = None,
215216
auto_expunge: Optional[bool] = None,
216217
auto_refresh: Optional[bool] = None,
@@ -225,7 +226,7 @@ async def get_and_update(
225226
*filters: Union[StatementFilter, ColumnElement[bool]],
226227
match_fields: Optional[Union[list[str], str]] = None,
227228
attribute_names: Optional[Iterable[str]] = None,
228-
with_for_update: Optional[bool] = None,
229+
with_for_update: ForUpdateParameter = None,
229230
auto_commit: Optional[bool] = None,
230231
auto_expunge: Optional[bool] = None,
231232
auto_refresh: Optional[bool] = None,
@@ -250,7 +251,7 @@ async def update(
250251
data: ModelT,
251252
*,
252253
attribute_names: Optional[Iterable[str]] = None,
253-
with_for_update: Optional[bool] = None,
254+
with_for_update: ForUpdateParameter = None,
254255
auto_commit: Optional[bool] = None,
255256
auto_expunge: Optional[bool] = None,
256257
auto_refresh: Optional[bool] = None,
@@ -284,7 +285,7 @@ async def upsert(
284285
data: ModelT,
285286
*,
286287
attribute_names: Optional[Iterable[str]] = None,
287-
with_for_update: Optional[bool] = None,
288+
with_for_update: ForUpdateParameter = None,
288289
auto_expunge: Optional[bool] = None,
289290
auto_commit: Optional[bool] = None,
290291
auto_refresh: Optional[bool] = None,
@@ -1123,7 +1124,7 @@ async def get_or_upsert(
11231124
match_fields: Optional[Union[list[str], str]] = None,
11241125
upsert: bool = True,
11251126
attribute_names: Optional[Iterable[str]] = None,
1126-
with_for_update: Optional[bool] = None,
1127+
with_for_update: ForUpdateParameter = None,
11271128
auto_commit: Optional[bool] = None,
11281129
auto_expunge: Optional[bool] = None,
11291130
auto_refresh: Union[bool, None] = None,
@@ -1212,7 +1213,7 @@ async def get_and_update(
12121213
*filters: Union[StatementFilter, ColumnElement[bool]],
12131214
match_fields: Optional[Union[list[str], str]] = None,
12141215
attribute_names: Optional[Iterable[str]] = None,
1215-
with_for_update: Optional[bool] = None,
1216+
with_for_update: ForUpdateParameter = None,
12161217
auto_commit: Optional[bool] = None,
12171218
auto_expunge: Optional[bool] = None,
12181219
auto_refresh: Optional[bool] = None,
@@ -1334,7 +1335,7 @@ async def update(
13341335
data: ModelT,
13351336
*,
13361337
attribute_names: Optional[Iterable[str]] = None,
1337-
with_for_update: Optional[bool] = None,
1338+
with_for_update: ForUpdateParameter = None,
13381339
auto_commit: Optional[bool] = None,
13391340
auto_expunge: Optional[bool] = None,
13401341
auto_refresh: Optional[bool] = None,
@@ -1551,7 +1552,7 @@ async def _refresh(
15511552
instance: ModelT,
15521553
auto_refresh: Optional[bool],
15531554
attribute_names: Optional[Iterable[str]] = None,
1554-
with_for_update: Optional[bool] = None,
1555+
with_for_update: ForUpdateParameter = None,
15551556
) -> None:
15561557
if auto_refresh is None:
15571558
auto_refresh = self.auto_refresh
@@ -1702,7 +1703,7 @@ async def upsert(
17021703
data: ModelT,
17031704
*,
17041705
attribute_names: Optional[Iterable[str]] = None,
1705-
with_for_update: Optional[bool] = None,
1706+
with_for_update: ForUpdateParameter = None,
17061707
auto_expunge: Optional[bool] = None,
17071708
auto_commit: Optional[bool] = None,
17081709
auto_refresh: Optional[bool] = None,

advanced_alchemy/repository/_sync.py

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
from sqlalchemy.orm.strategy_options import _AbstractLoad # pyright: ignore[reportPrivateUsage]
3636
from sqlalchemy.sql import ColumnElement
3737
from sqlalchemy.sql.dml import ReturningDelete, ReturningUpdate
38+
from sqlalchemy.sql.selectable import ForUpdateParameter
3839

3940
from advanced_alchemy.exceptions import ErrorMessages, NotFoundError, RepositoryError, wrap_sqlalchemy_exception
4041
from advanced_alchemy.filters import StatementFilter, StatementTypeT
@@ -211,7 +212,7 @@ def get_or_upsert(
211212
match_fields: Optional[Union[list[str], str]] = None,
212213
upsert: bool = True,
213214
attribute_names: Optional[Iterable[str]] = None,
214-
with_for_update: Optional[bool] = None,
215+
with_for_update: ForUpdateParameter = None,
215216
auto_commit: Optional[bool] = None,
216217
auto_expunge: Optional[bool] = None,
217218
auto_refresh: Optional[bool] = None,
@@ -226,7 +227,7 @@ def get_and_update(
226227
*filters: Union[StatementFilter, ColumnElement[bool]],
227228
match_fields: Optional[Union[list[str], str]] = None,
228229
attribute_names: Optional[Iterable[str]] = None,
229-
with_for_update: Optional[bool] = None,
230+
with_for_update: ForUpdateParameter = None,
230231
auto_commit: Optional[bool] = None,
231232
auto_expunge: Optional[bool] = None,
232233
auto_refresh: Optional[bool] = None,
@@ -251,7 +252,7 @@ def update(
251252
data: ModelT,
252253
*,
253254
attribute_names: Optional[Iterable[str]] = None,
254-
with_for_update: Optional[bool] = None,
255+
with_for_update: ForUpdateParameter = None,
255256
auto_commit: Optional[bool] = None,
256257
auto_expunge: Optional[bool] = None,
257258
auto_refresh: Optional[bool] = None,
@@ -285,7 +286,7 @@ def upsert(
285286
data: ModelT,
286287
*,
287288
attribute_names: Optional[Iterable[str]] = None,
288-
with_for_update: Optional[bool] = None,
289+
with_for_update: ForUpdateParameter = None,
289290
auto_expunge: Optional[bool] = None,
290291
auto_commit: Optional[bool] = None,
291292
auto_refresh: Optional[bool] = None,
@@ -1124,7 +1125,7 @@ def get_or_upsert(
11241125
match_fields: Optional[Union[list[str], str]] = None,
11251126
upsert: bool = True,
11261127
attribute_names: Optional[Iterable[str]] = None,
1127-
with_for_update: Optional[bool] = None,
1128+
with_for_update: ForUpdateParameter = None,
11281129
auto_commit: Optional[bool] = None,
11291130
auto_expunge: Optional[bool] = None,
11301131
auto_refresh: Union[bool, None] = None,
@@ -1213,7 +1214,7 @@ def get_and_update(
12131214
*filters: Union[StatementFilter, ColumnElement[bool]],
12141215
match_fields: Optional[Union[list[str], str]] = None,
12151216
attribute_names: Optional[Iterable[str]] = None,
1216-
with_for_update: Optional[bool] = None,
1217+
with_for_update: ForUpdateParameter = None,
12171218
auto_commit: Optional[bool] = None,
12181219
auto_expunge: Optional[bool] = None,
12191220
auto_refresh: Optional[bool] = None,
@@ -1335,7 +1336,7 @@ def update(
13351336
data: ModelT,
13361337
*,
13371338
attribute_names: Optional[Iterable[str]] = None,
1338-
with_for_update: Optional[bool] = None,
1339+
with_for_update: ForUpdateParameter = None,
13391340
auto_commit: Optional[bool] = None,
13401341
auto_expunge: Optional[bool] = None,
13411342
auto_refresh: Optional[bool] = None,
@@ -1552,7 +1553,7 @@ def _refresh(
15521553
instance: ModelT,
15531554
auto_refresh: Optional[bool],
15541555
attribute_names: Optional[Iterable[str]] = None,
1555-
with_for_update: Optional[bool] = None,
1556+
with_for_update: ForUpdateParameter = None,
15561557
) -> None:
15571558
if auto_refresh is None:
15581559
auto_refresh = self.auto_refresh
@@ -1701,7 +1702,7 @@ def upsert(
17011702
data: ModelT,
17021703
*,
17031704
attribute_names: Optional[Iterable[str]] = None,
1704-
with_for_update: Optional[bool] = None,
1705+
with_for_update: ForUpdateParameter = None,
17051706
auto_expunge: Optional[bool] = None,
17061707
auto_commit: Optional[bool] = None,
17071708
auto_refresh: Optional[bool] = None,

advanced_alchemy/repository/memory/_async.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
from sqlalchemy.orm import InstrumentedAttribute
2020
from sqlalchemy.orm.strategy_options import _AbstractLoad # pyright: ignore[reportPrivateUsage]
2121
from sqlalchemy.sql.dml import ReturningUpdate
22+
from sqlalchemy.sql.selectable import ForUpdateParameter
2223
from typing_extensions import Self
2324

2425
from advanced_alchemy.exceptions import ErrorMessages, IntegrityError, NotFoundError, RepositoryError
@@ -463,7 +464,7 @@ async def get_or_upsert(
463464
match_fields: Union[list[str], str, None] = None,
464465
upsert: bool = True,
465466
attribute_names: Optional[Iterable[str]] = None,
466-
with_for_update: Optional[bool] = None,
467+
with_for_update: ForUpdateParameter = None,
467468
auto_commit: Optional[bool] = None,
468469
auto_expunge: Optional[bool] = None,
469470
auto_refresh: Optional[bool] = None,
@@ -499,7 +500,7 @@ async def get_and_update(
499500
*filters: Union[StatementFilter, ColumnElement[bool]],
500501
match_fields: Union[list[str], str, None] = None,
501502
attribute_names: Optional[Iterable[str]] = None,
502-
with_for_update: Optional[bool] = None,
503+
with_for_update: ForUpdateParameter = None,
503504
auto_commit: Optional[bool] = None,
504505
auto_expunge: Optional[bool] = None,
505506
auto_refresh: Optional[bool] = None,
@@ -580,7 +581,7 @@ async def update(
580581
data: ModelT,
581582
*,
582583
attribute_names: Optional[Iterable[str]] = None,
583-
with_for_update: Optional[bool] = None,
584+
with_for_update: ForUpdateParameter = None,
584585
auto_commit: Optional[bool] = None,
585586
auto_expunge: Optional[bool] = None,
586587
auto_refresh: Optional[bool] = None,
@@ -666,7 +667,7 @@ async def upsert(
666667
data: ModelT,
667668
*,
668669
attribute_names: Optional[Iterable[str]] = None,
669-
with_for_update: Optional[bool] = None,
670+
with_for_update: ForUpdateParameter = None,
670671
auto_expunge: Optional[bool] = None,
671672
auto_commit: Optional[bool] = None,
672673
auto_refresh: Optional[bool] = None,

advanced_alchemy/repository/memory/_sync.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
from sqlalchemy.orm.scoping import scoped_session
2121
from sqlalchemy.orm.strategy_options import _AbstractLoad # pyright: ignore[reportPrivateUsage]
2222
from sqlalchemy.sql.dml import ReturningUpdate
23+
from sqlalchemy.sql.selectable import ForUpdateParameter
2324
from typing_extensions import Self
2425

2526
from advanced_alchemy.exceptions import ErrorMessages, IntegrityError, NotFoundError, RepositoryError
@@ -464,7 +465,7 @@ def get_or_upsert(
464465
match_fields: Union[list[str], str, None] = None,
465466
upsert: bool = True,
466467
attribute_names: Optional[Iterable[str]] = None,
467-
with_for_update: Optional[bool] = None,
468+
with_for_update: ForUpdateParameter = None,
468469
auto_commit: Optional[bool] = None,
469470
auto_expunge: Optional[bool] = None,
470471
auto_refresh: Optional[bool] = None,
@@ -500,7 +501,7 @@ def get_and_update(
500501
*filters: Union[StatementFilter, ColumnElement[bool]],
501502
match_fields: Union[list[str], str, None] = None,
502503
attribute_names: Optional[Iterable[str]] = None,
503-
with_for_update: Optional[bool] = None,
504+
with_for_update: ForUpdateParameter = None,
504505
auto_commit: Optional[bool] = None,
505506
auto_expunge: Optional[bool] = None,
506507
auto_refresh: Optional[bool] = None,
@@ -581,7 +582,7 @@ def update(
581582
data: ModelT,
582583
*,
583584
attribute_names: Optional[Iterable[str]] = None,
584-
with_for_update: Optional[bool] = None,
585+
with_for_update: ForUpdateParameter = None,
585586
auto_commit: Optional[bool] = None,
586587
auto_expunge: Optional[bool] = None,
587588
auto_refresh: Optional[bool] = None,
@@ -667,7 +668,7 @@ def upsert(
667668
data: ModelT,
668669
*,
669670
attribute_names: Optional[Iterable[str]] = None,
670-
with_for_update: Optional[bool] = None,
671+
with_for_update: ForUpdateParameter = None,
671672
auto_expunge: Optional[bool] = None,
672673
auto_commit: Optional[bool] = None,
673674
auto_refresh: Optional[bool] = None,

advanced_alchemy/service/_async.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
from sqlalchemy.ext.asyncio.scoping import async_scoped_session
1616
from sqlalchemy.orm import InstrumentedAttribute
1717
from sqlalchemy.sql import ColumnElement
18+
from sqlalchemy.sql.selectable import ForUpdateParameter
1819
from typing_extensions import Self
1920

2021
from advanced_alchemy.config.asyncio import SQLAlchemyAsyncConfig
@@ -677,7 +678,7 @@ async def update(
677678
item_id: Optional[Any] = None,
678679
*,
679680
attribute_names: Optional[Iterable[str]] = None,
680-
with_for_update: Optional[bool] = None,
681+
with_for_update: ForUpdateParameter = None,
681682
auto_commit: Optional[bool] = None,
682683
auto_expunge: Optional[bool] = None,
683684
auto_refresh: Optional[bool] = None,
@@ -795,7 +796,7 @@ async def upsert(
795796
item_id: Optional[Any] = None,
796797
*,
797798
attribute_names: Optional[Iterable[str]] = None,
798-
with_for_update: Optional[bool] = None,
799+
with_for_update: ForUpdateParameter = None,
799800
auto_expunge: Optional[bool] = None,
800801
auto_commit: Optional[bool] = None,
801802
auto_refresh: Optional[bool] = None,
@@ -906,7 +907,7 @@ async def get_or_upsert(
906907
match_fields: Optional[Union[list[str], str]] = None,
907908
upsert: bool = True,
908909
attribute_names: Optional[Iterable[str]] = None,
909-
with_for_update: Optional[bool] = None,
910+
with_for_update: ForUpdateParameter = None,
910911
auto_commit: Optional[bool] = None,
911912
auto_expunge: Optional[bool] = None,
912913
auto_refresh: Optional[bool] = None,
@@ -969,7 +970,7 @@ async def get_and_update(
969970
*filters: Union[StatementFilter, ColumnElement[bool]],
970971
match_fields: Optional[Union[list[str], str]] = None,
971972
attribute_names: Optional[Iterable[str]] = None,
972-
with_for_update: Optional[bool] = None,
973+
with_for_update: ForUpdateParameter = None,
973974
auto_commit: Optional[bool] = None,
974975
auto_expunge: Optional[bool] = None,
975976
auto_refresh: Optional[bool] = None,

advanced_alchemy/service/_sync.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
from sqlalchemy.orm import InstrumentedAttribute, Session
1717
from sqlalchemy.orm.scoping import scoped_session
1818
from sqlalchemy.sql import ColumnElement
19+
from sqlalchemy.sql.selectable import ForUpdateParameter
1920
from typing_extensions import Self
2021

2122
from advanced_alchemy.config.sync import SQLAlchemySyncConfig
@@ -676,7 +677,7 @@ def update(
676677
item_id: Optional[Any] = None,
677678
*,
678679
attribute_names: Optional[Iterable[str]] = None,
679-
with_for_update: Optional[bool] = None,
680+
with_for_update: ForUpdateParameter = None,
680681
auto_commit: Optional[bool] = None,
681682
auto_expunge: Optional[bool] = None,
682683
auto_refresh: Optional[bool] = None,
@@ -794,7 +795,7 @@ def upsert(
794795
item_id: Optional[Any] = None,
795796
*,
796797
attribute_names: Optional[Iterable[str]] = None,
797-
with_for_update: Optional[bool] = None,
798+
with_for_update: ForUpdateParameter = None,
798799
auto_expunge: Optional[bool] = None,
799800
auto_commit: Optional[bool] = None,
800801
auto_refresh: Optional[bool] = None,
@@ -905,7 +906,7 @@ def get_or_upsert(
905906
match_fields: Optional[Union[list[str], str]] = None,
906907
upsert: bool = True,
907908
attribute_names: Optional[Iterable[str]] = None,
908-
with_for_update: Optional[bool] = None,
909+
with_for_update: ForUpdateParameter = None,
909910
auto_commit: Optional[bool] = None,
910911
auto_expunge: Optional[bool] = None,
911912
auto_refresh: Optional[bool] = None,
@@ -968,7 +969,7 @@ def get_and_update(
968969
*filters: Union[StatementFilter, ColumnElement[bool]],
969970
match_fields: Optional[Union[list[str], str]] = None,
970971
attribute_names: Optional[Iterable[str]] = None,
971-
with_for_update: Optional[bool] = None,
972+
with_for_update: ForUpdateParameter = None,
972973
auto_commit: Optional[bool] = None,
973974
auto_expunge: Optional[bool] = None,
974975
auto_refresh: Optional[bool] = None,

0 commit comments

Comments
 (0)