types, again
This commit is contained in:
parent
9286a01de0
commit
7478c8e404
1 changed files with 5 additions and 4 deletions
|
|
@ -14,8 +14,9 @@ This software is distributed on an "AS IS" BASIS,
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
from __future__ import annotations
|
||||||
from sqlalchemy import Engine, Select, func, select
|
from sqlalchemy import Engine, Select, func, select
|
||||||
from sqlalchemy.orm import DeclarativeBase, Session, lazyload
|
from sqlalchemy.orm import DeclarativeBase, lazyload
|
||||||
from sqlalchemy.ext.asyncio import AsyncSession, create_async_engine
|
from sqlalchemy.ext.asyncio import AsyncSession, create_async_engine
|
||||||
from flask_sqlalchemy.pagination import Pagination
|
from flask_sqlalchemy.pagination import Pagination
|
||||||
|
|
||||||
|
|
@ -37,7 +38,7 @@ class SQLAlchemy:
|
||||||
self.engine = None
|
self.engine = None
|
||||||
def bind(self, url: str):
|
def bind(self, url: str):
|
||||||
self.engine = create_async_engine(url)
|
self.engine = create_async_engine(url)
|
||||||
async def begin(self) -> Session:
|
async def begin(self) -> AsyncSession:
|
||||||
if self.engine is None:
|
if self.engine is None:
|
||||||
raise RuntimeError('database is not connected')
|
raise RuntimeError('database is not connected')
|
||||||
return await self.engine.begin()
|
return await self.engine.begin()
|
||||||
|
|
@ -47,8 +48,9 @@ class SQLAlchemy:
|
||||||
async def paginate(self, select: Select, *,
|
async def paginate(self, select: Select, *,
|
||||||
page: int | None = None, per_page: int | None = None,
|
page: int | None = None, per_page: int | None = None,
|
||||||
max_per_page: int | None = None, error_out: bool = True,
|
max_per_page: int | None = None, error_out: bool = True,
|
||||||
count: bool = True):
|
count: bool = True) -> AsyncSelectPagination:
|
||||||
"""
|
"""
|
||||||
|
...
|
||||||
"""
|
"""
|
||||||
async with self as session:
|
async with self as session:
|
||||||
return AsyncSelectPagination(
|
return AsyncSelectPagination(
|
||||||
|
|
@ -60,7 +62,6 @@ class SQLAlchemy:
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class AsyncSelectPagination(Pagination):
|
class AsyncSelectPagination(Pagination):
|
||||||
"""
|
"""
|
||||||
flask_sqlalchemy.SelectPagination but asynchronous
|
flask_sqlalchemy.SelectPagination but asynchronous
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue