Skip to content

Commit ac34370

Browse files
authored
fix: improve sync_tools thread handling and update dependencies (#545)
Enhance thread management in `sync_tools` to improve performance and reliability.
1 parent 5fe80b6 commit ac34370

File tree

18 files changed

+885
-657
lines changed

18 files changed

+885
-657
lines changed

.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.12.11"
25+
rev: "v0.13.1"
2626
hooks:
2727
# Run the linter.
2828
- id: ruff

advanced_alchemy/alembic/commands.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,24 +2,25 @@
22
import sys
33
from typing import TYPE_CHECKING, Any, Optional, TextIO, Union
44

5+
from alembic.config import Config as _AlembicCommandConfig
6+
from alembic.ddl.impl import DefaultImpl
7+
58
from advanced_alchemy.config.asyncio import SQLAlchemyAsyncConfig
69
from advanced_alchemy.exceptions import ImproperConfigurationError
710
from alembic import command as migration_command
8-
from alembic.config import Config as _AlembicCommandConfig
9-
from alembic.ddl.impl import DefaultImpl
1011

1112
if TYPE_CHECKING:
1213
import os
1314
from argparse import Namespace
1415
from collections.abc import Mapping
1516
from pathlib import Path
1617

18+
from alembic.runtime.environment import ProcessRevisionDirectiveFn
19+
from alembic.script.base import Script
1720
from sqlalchemy import Engine
1821
from sqlalchemy.ext.asyncio import AsyncEngine
1922

2023
from advanced_alchemy.config.sync import SQLAlchemySyncConfig
21-
from alembic.runtime.environment import ProcessRevisionDirectiveFn
22-
from alembic.script.base import Script
2324

2425

2526
class AlembicSpannerImpl(DefaultImpl):

advanced_alchemy/alembic/templates/asyncio/env.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
import asyncio
22
from typing import TYPE_CHECKING, cast
33

4+
from alembic.autogenerate import rewriter
45
from sqlalchemy import pool
56
from sqlalchemy.ext.asyncio import AsyncEngine, async_engine_from_config
67

78
from advanced_alchemy.base import metadata_registry
89
from alembic import context
9-
from alembic.autogenerate import rewriter
1010

1111
if TYPE_CHECKING:
1212
from sqlalchemy.engine import Connection

advanced_alchemy/alembic/templates/sync/env.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
from typing import TYPE_CHECKING, cast
22

3+
from alembic.autogenerate import rewriter
34
from sqlalchemy import Engine, engine_from_config, pool
45

56
from advanced_alchemy.base import metadata_registry
67
from alembic import context
7-
from alembic.autogenerate import rewriter
88

99
if TYPE_CHECKING:
1010
from sqlalchemy.engine import Connection

advanced_alchemy/cli.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@
44
from typing import TYPE_CHECKING, Optional, Union, cast
55

66
if TYPE_CHECKING:
7+
from alembic.migration import MigrationContext
8+
from alembic.operations.ops import MigrationScript, UpgradeOps
79
from click import Group
810

911
from advanced_alchemy.config import SQLAlchemyAsyncConfig, SQLAlchemySyncConfig
10-
from alembic.migration import MigrationContext
11-
from alembic.operations.ops import MigrationScript, UpgradeOps
1212

1313
__all__ = ("add_migration_commands", "get_alchemy_group")
1414

@@ -157,7 +157,7 @@ def show_database_revision(bind_key: Optional[str], verbose: bool) -> None: # p
157157
"""Show current database revision."""
158158
from advanced_alchemy.alembic.commands import AlembicCommands
159159

160-
ctx = click.get_current_context()
160+
ctx = cast("click.Context", click.get_current_context())
161161
console.rule("[yellow]Listing current revision[/]", align="left")
162162
sqlalchemy_config = get_config_by_bind_key(ctx, bind_key)
163163
alembic_commands = AlembicCommands(sqlalchemy_config=sqlalchemy_config)
@@ -189,7 +189,7 @@ def downgrade_database( # pyright: ignore[reportUnusedFunction]
189189

190190
from advanced_alchemy.alembic.commands import AlembicCommands
191191

192-
ctx = click.get_current_context()
192+
ctx = cast("click.Context", click.get_current_context())
193193
console.rule("[yellow]Starting database downgrade process[/]", align="left")
194194
input_confirmed = (
195195
True
@@ -227,7 +227,7 @@ def upgrade_database( # pyright: ignore[reportUnusedFunction]
227227

228228
from advanced_alchemy.alembic.commands import AlembicCommands
229229

230-
ctx = click.get_current_context()
230+
ctx = cast("click.Context", click.get_current_context())
231231
console.rule("[yellow]Starting database upgrade process[/]", align="left")
232232
input_confirmed = (
233233
True
@@ -248,7 +248,7 @@ def stamp(bind_key: Optional[str], revision: str) -> None: # pyright: ignore[re
248248
"""Stamp the revision table with the given revision."""
249249
from advanced_alchemy.alembic.commands import AlembicCommands
250250

251-
ctx = click.get_current_context()
251+
ctx = cast("click.Context", click.get_current_context())
252252
sqlalchemy_config = get_config_by_bind_key(ctx, bind_key)
253253
alembic_commands = AlembicCommands(sqlalchemy_config=sqlalchemy_config)
254254
alembic_commands.stamp(revision=revision)
@@ -274,7 +274,7 @@ def init_alembic( # pyright: ignore[reportUnusedFunction]
274274

275275
from advanced_alchemy.alembic.commands import AlembicCommands
276276

277-
ctx = click.get_current_context()
277+
ctx = cast("click.Context", click.get_current_context())
278278
console.rule("[yellow]Initializing database migrations.", align="left")
279279
input_confirmed = (
280280
True if no_prompt else Confirm.ask("[bold]Are you sure you want initialize migrations for the project?[/]")
@@ -345,7 +345,7 @@ def process_revision_directives(
345345
)
346346
directives.clear()
347347

348-
ctx = click.get_current_context()
348+
ctx = cast("click.Context", click.get_current_context())
349349
console.rule("[yellow]Starting database upgrade process[/]", align="left")
350350
if message is None:
351351
message = "autogenerated" if no_prompt else Prompt.ask("Please enter a message describing this revision")
@@ -375,7 +375,7 @@ def drop_all(bind_key: Optional[str], no_prompt: bool) -> None: # pyright: igno
375375
from advanced_alchemy.alembic.utils import drop_all
376376
from advanced_alchemy.base import metadata_registry
377377

378-
ctx = click.get_current_context()
378+
ctx = cast("click.Context", click.get_current_context())
379379
console.rule("[yellow]Dropping all tables from the database[/]", align="left")
380380
input_confirmed = no_prompt or Confirm.ask(
381381
"[bold red]Are you sure you want to drop all tables from the database?"
@@ -418,7 +418,7 @@ def dump_table_data(bind_key: Optional[str], table_names: tuple[str, ...], dump_
418418
from advanced_alchemy.alembic.utils import dump_tables
419419
from advanced_alchemy.base import metadata_registry, orm_registry
420420

421-
ctx = click.get_current_context()
421+
ctx = cast("click.Context", click.get_current_context())
422422
all_tables = "*" in table_names
423423

424424
if all_tables and not Confirm.ask(

advanced_alchemy/extensions/flask/cli.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ def database_group() -> None:
5050
This command group provides database management commands like migrations.
5151
"""
5252

53-
ctx = click.get_current_context()
53+
ctx = cast("click.Context", click.get_current_context())
5454
app = ctx.obj.load_app()
5555
ctx.obj = {"app": app, "configs": get_database_migration_plugin(app).config}
5656

advanced_alchemy/repository/memory/_async.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ def __init__(
112112
self.uniquify = bool(uniquify)
113113

114114
def __init_subclass__(cls) -> None:
115-
cls.__database_registry__[cls] = cls.__database__ # pyright: ignore[reportGeneralTypeIssues,reportUnknownMemberType]
115+
cls.__database_registry__[cls] = cls.__database__ # type: ignore[index]
116116

117117
@staticmethod
118118
def _get_error_messages(
@@ -131,7 +131,7 @@ def _get_error_messages(
131131

132132
@classmethod
133133
def __database_add__(cls, identity: Any, data: ModelT) -> ModelT:
134-
return cast("ModelT", cls.__database__.add(identity, data)) # pyright: ignore[reportUnnecessaryCast,reportGeneralTypeIssues]
134+
return cast("ModelT", cls.__database__.add(identity, data)) # type: ignore[redundant-cast]
135135

136136
@classmethod
137137
def __database_clear__(cls) -> None:

advanced_alchemy/repository/memory/_sync.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ def __init__(
113113
self.uniquify = bool(uniquify)
114114

115115
def __init_subclass__(cls) -> None:
116-
cls.__database_registry__[cls] = cls.__database__ # pyright: ignore[reportGeneralTypeIssues,reportUnknownMemberType]
116+
cls.__database_registry__[cls] = cls.__database__ # type: ignore[index]
117117

118118
@staticmethod
119119
def _get_error_messages(
@@ -132,7 +132,7 @@ def _get_error_messages(
132132

133133
@classmethod
134134
def __database_add__(cls, identity: Any, data: ModelT) -> ModelT:
135-
return cast("ModelT", cls.__database__.add(identity, data)) # pyright: ignore[reportUnnecessaryCast,reportGeneralTypeIssues]
135+
return cast("ModelT", cls.__database__.add(identity, data)) # type: ignore[redundant-cast]
136136

137137
@classmethod
138138
def __database_clear__(cls) -> None:

0 commit comments

Comments
 (0)