Compare commits

..

No commits in common. "master" and "v0.12.0" have entirely different histories.

9 changed files with 23 additions and 62 deletions

View file

@ -1,13 +1,5 @@
# Changelog
## 0.12.2
+ Fix imports in module `sqlalchemy.quart`
## 0.12.1
+ Fix import failure for `AsyncSelectPagination` (module `sqlalchemy`)
## 0.12.0 "The Color Update"
* Moved `AsyncSelectPagination` to submodule `sqlalchemy.quart`. If you need to use it, specify `suou[quart_sqlalchemy]` in requirements.

View file

@ -29,7 +29,6 @@ API
suou.lex
suou.luck
suou.markdown
suou.mat
suou.migrate
suou.peewee
suou.quart

View file

@ -19,28 +19,15 @@ Web colors
----------
.. autoclass:: RGBColor
.. automethods::
.. autoclass:: WebColor
.. autoclass:: LinearRGBColor
.. automethods::
.. auto
.. autoclass:: XYZColor
.. automethods::
.. autoclass:: OKLabColor
.. automethods::
.. autoclass:: OKLCHColor
.. automethods::
.. autoclass:: OKLabColor

View file

@ -9,10 +9,7 @@
.. autosummary::
Chalk
LinearRGBColor
OKLCHColor
OKLabColor
RGBColor
SRGBColor
WebColor
XYZColor

View file

@ -1,4 +1,4 @@
suou.sqlalchemy.asyncio
suou.sqlalchemy.asyncio
=======================
.. automodule:: suou.sqlalchemy.asyncio
@ -14,6 +14,7 @@
.. autosummary::
AsyncSelectPagination
SQLAlchemy
SessionWrapper

View file

@ -38,7 +38,7 @@ from .http import WantsContentType
from .color import OKLabColor, chalk, WebColor, RGBColor, LinearRGBColor, XYZColor, OKLCHColor
from .mat import Matrix
__version__ = "0.12.2"
__version__ = "0.12.0"
__all__ = (
'ConfigOptions', 'ConfigParserConfigSource', 'ConfigSource', 'ConfigValue',

View file

@ -18,14 +18,18 @@ from __future__ import annotations
from abc import ABCMeta, abstractmethod
from functools import wraps
from typing import Callable, Iterable, Never, TypeVar
from sqlalchemy import LargeBinary, Column, create_engine, select
from sqlalchemy.orm import DeclarativeBase, Session
from typing import Any, Callable, Iterable, Never, TypeVar
import warnings
from sqlalchemy import BigInteger, Boolean, CheckConstraint, Date, Dialect, ForeignKey, LargeBinary, Column, MetaData, SmallInteger, String, create_engine, select, text
from sqlalchemy.orm import DeclarativeBase, InstrumentedAttribute, Relationship, Session, declarative_base as _declarative_base, relationship
from sqlalchemy.types import TypeEngine
from ..itertools import makelist
from ..snowflake import SnowflakeGen
from ..itertools import kwargs_prefix, makelist
from ..signing import HasSigner, UserSigner
from ..functools import deprecated
from ..codecs import StringCase
from ..functools import deprecated, not_implemented
from ..iding import Siq, SiqGen, SiqType, SiqCache
from ..classtools import Incomplete, Wanted
@ -154,18 +158,12 @@ def require_auth_base(cls: type[DeclarativeBase], *, src: AuthSrc, column: str |
return decorator
from .asyncio import SQLAlchemy, async_query
from .asyncio import SQLAlchemy, AsyncSelectPagination, async_query
from .orm import (
id_column, snowflake_column, match_column, match_constraint, bool_column, declarative_base, parent_children,
author_pair, age_pair, bound_fk, unbound_fk, want_column, a_relationship, BitSelector, secret_column, username_column
)
try:
from .quart import AsyncSelectPagination
AsyncSelectPagination = deprecated('import AsyncSelectPagination from suou.sqlalchemy.quart instead')(AsyncSelectPagination)
except ImportError:
pass
# Optional dependency: do not import into __init__.py
__all__ = (
'IdType', 'id_column', 'snowflake_column', 'entity_base', 'declarative_base', 'token_signer',

View file

@ -26,10 +26,6 @@ from sqlalchemy import Select, Table, func, select
from sqlalchemy.orm import DeclarativeBase, lazyload
from sqlalchemy.ext.asyncio import AsyncEngine, AsyncSession, create_async_engine
try:
from .quart import AsyncSelectPagination
except ImportError:
AsyncSelectPagination = None
from suou.exceptions import NotFoundError
from suou.glue import glue
@ -107,16 +103,13 @@ class SQLAlchemy:
Return a pagination. Analogous to flask_sqlalchemy.SQLAlchemy.paginate().
"""
async with self as session:
try:
return AsyncSelectPagination(
select = select,
session = session,
page = page,
per_page=per_page, max_per_page=max_per_page,
error_out=self.NotFound if error_out else None, count=count
)
except Exception:
raise RuntimeError('Cannot paginate; required dependencies are not installed')
return AsyncSelectPagination(
select = select,
session = session,
page = page,
per_page=per_page, max_per_page=max_per_page,
error_out=self.NotFound if error_out else None, count=count
)
async def create_all(self, *, checkfirst = True):
"""
Initialize database

View file

@ -3,13 +3,7 @@ SQLAlchemy-Quart bindings
"""
from select import select
from flask_sqlalchemy.pagination import Pagination
from sqlalchemy import Select, func
from sqlalchemy.ext.asyncio import AsyncSession
from sqlalchemy.orm import lazyload
from ..exceptions import NotFoundError
class AsyncSelectPagination(Pagination):