Skip to content

Commit d0c60d5

Browse files
Move async dialects to pyathena/aio/sqlalchemy/ and add aiosqlalchemy extra
- Move async dialect files from pyathena/sqlalchemy/async_*.py to pyathena/aio/sqlalchemy/ to follow existing async code structure - Add aiosqlalchemy optional dependency (sqlalchemy[asyncio]>=2.0.0) which pulls in greenlet required by await_only() Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 35e6cc0 commit d0c60d5

File tree

9 files changed

+34
-16
lines changed

9 files changed

+34
-16
lines changed
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
# -*- coding: utf-8 -*-
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# -*- coding: utf-8 -*-
22
from typing import TYPE_CHECKING
33

4-
from pyathena.sqlalchemy.async_base import AthenaAioDialect
4+
from pyathena.aio.sqlalchemy.base import AthenaAioDialect
55
from pyathena.util import strtobool
66

77
if TYPE_CHECKING:
@@ -31,7 +31,7 @@ class AthenaAioArrowDialect(AthenaAioDialect):
3131
3232
See Also:
3333
:class:`~pyathena.aio.arrow.cursor.AioArrowCursor`: The underlying async cursor.
34-
:class:`~pyathena.sqlalchemy.async_base.AthenaAioDialect`: Base async dialect.
34+
:class:`~pyathena.aio.sqlalchemy.base.AthenaAioDialect`: Base async dialect.
3535
"""
3636

3737
driver = "aioarrow"
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# -*- coding: utf-8 -*-
22
from typing import TYPE_CHECKING
33

4-
from pyathena.sqlalchemy.async_base import AthenaAioDialect
4+
from pyathena.aio.sqlalchemy.base import AthenaAioDialect
55
from pyathena.util import strtobool
66

77
if TYPE_CHECKING:
@@ -33,7 +33,7 @@ class AthenaAioPandasDialect(AthenaAioDialect):
3333
3434
See Also:
3535
:class:`~pyathena.aio.pandas.cursor.AioPandasCursor`: The underlying async cursor.
36-
:class:`~pyathena.sqlalchemy.async_base.AthenaAioDialect`: Base async dialect.
36+
:class:`~pyathena.aio.sqlalchemy.base.AthenaAioDialect`: Base async dialect.
3737
"""
3838

3939
driver = "aiopandas"
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# -*- coding: utf-8 -*-
22
from typing import TYPE_CHECKING
33

4-
from pyathena.sqlalchemy.async_base import AthenaAioDialect
4+
from pyathena.aio.sqlalchemy.base import AthenaAioDialect
55
from pyathena.util import strtobool
66

77
if TYPE_CHECKING:
@@ -31,7 +31,7 @@ class AthenaAioPolarsDialect(AthenaAioDialect):
3131
3232
See Also:
3333
:class:`~pyathena.aio.polars.cursor.AioPolarsCursor`: The underlying async cursor.
34-
:class:`~pyathena.sqlalchemy.async_base.AthenaAioDialect`: Base async dialect.
34+
:class:`~pyathena.aio.sqlalchemy.base.AthenaAioDialect`: Base async dialect.
3535
"""
3636

3737
driver = "aiopolars"
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# -*- coding: utf-8 -*-
22
from typing import TYPE_CHECKING
33

4-
from pyathena.sqlalchemy.async_base import AthenaAioDialect
4+
from pyathena.aio.sqlalchemy.base import AthenaAioDialect
55

66
if TYPE_CHECKING:
77
from types import ModuleType
@@ -26,7 +26,7 @@ class AthenaAioRestDialect(AthenaAioDialect):
2626
2727
See Also:
2828
:class:`~pyathena.aio.cursor.AioCursor`: The underlying async cursor.
29-
:class:`~pyathena.sqlalchemy.async_base.AthenaAioDialect`: Base async dialect.
29+
:class:`~pyathena.aio.sqlalchemy.base.AthenaAioDialect`: Base async dialect.
3030
"""
3131

3232
driver = "aiorest"
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# -*- coding: utf-8 -*-
22
from typing import TYPE_CHECKING
33

4-
from pyathena.sqlalchemy.async_base import AthenaAioDialect
4+
from pyathena.aio.sqlalchemy.base import AthenaAioDialect
55

66
if TYPE_CHECKING:
77
from types import ModuleType
@@ -25,7 +25,7 @@ class AthenaAioS3FSDialect(AthenaAioDialect):
2525
2626
See Also:
2727
:class:`~pyathena.aio.s3fs.cursor.AioS3FSCursor`: The underlying async cursor.
28-
:class:`~pyathena.sqlalchemy.async_base.AthenaAioDialect`: Base async dialect.
28+
:class:`~pyathena.aio.sqlalchemy.base.AthenaAioDialect`: Base async dialect.
2929
"""
3030

3131
driver = "aios3fs"

pyproject.toml

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -42,11 +42,11 @@ awsathena = "pyathena.sqlalchemy.base:AthenaDialect"
4242
"awsathena.arrow" = "pyathena.sqlalchemy.arrow:AthenaArrowDialect"
4343
"awsathena.polars" = "pyathena.sqlalchemy.polars:AthenaPolarsDialect"
4444
"awsathena.s3fs" = "pyathena.sqlalchemy.s3fs:AthenaS3FSDialect"
45-
"awsathena.aiorest" = "pyathena.sqlalchemy.async_rest:AthenaAioRestDialect"
46-
"awsathena.aiopandas" = "pyathena.sqlalchemy.async_pandas:AthenaAioPandasDialect"
47-
"awsathena.aioarrow" = "pyathena.sqlalchemy.async_arrow:AthenaAioArrowDialect"
48-
"awsathena.aiopolars" = "pyathena.sqlalchemy.async_polars:AthenaAioPolarsDialect"
49-
"awsathena.aios3fs" = "pyathena.sqlalchemy.async_s3fs:AthenaAioS3FSDialect"
45+
"awsathena.aiorest" = "pyathena.aio.sqlalchemy.rest:AthenaAioRestDialect"
46+
"awsathena.aiopandas" = "pyathena.aio.sqlalchemy.pandas:AthenaAioPandasDialect"
47+
"awsathena.aioarrow" = "pyathena.aio.sqlalchemy.arrow:AthenaAioArrowDialect"
48+
"awsathena.aiopolars" = "pyathena.aio.sqlalchemy.polars:AthenaAioPolarsDialect"
49+
"awsathena.aios3fs" = "pyathena.aio.sqlalchemy.s3fs:AthenaAioS3FSDialect"
5050

5151
[project.optional-dependencies]
5252
sqlalchemy = ["sqlalchemy>=1.0.0"]
@@ -61,6 +61,9 @@ arrow = [
6161
polars = [
6262
"polars>=1.0.0",
6363
]
64+
aiosqlalchemy = [
65+
"sqlalchemy[asyncio]>=2.0.0",
66+
]
6467

6568
[dependency-groups]
6669
dev = [

uv.lock

Lines changed: 15 additions & 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)