diff --git a/CHANGELOG.md b/CHANGELOG.md index c8e5b18..bb3a6c9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -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. diff --git a/docs/api.rst b/docs/api.rst index 14bf6ec..72b76e8 100644 --- a/docs/api.rst +++ b/docs/api.rst @@ -29,7 +29,6 @@ API suou.lex suou.luck suou.markdown - suou.mat suou.migrate suou.peewee suou.quart diff --git a/docs/color.rst b/docs/color.rst index 8fd781c..7d24102 100644 --- a/docs/color.rst +++ b/docs/color.rst @@ -19,28 +19,15 @@ Web colors ---------- .. autoclass:: RGBColor - - .. automethods:: .. autoclass:: WebColor -.. autoclass:: LinearRGBColor - - .. automethods:: +.. auto .. autoclass:: XYZColor - .. automethods:: - -.. autoclass:: OKLabColor - - .. automethods:: - - -.. autoclass:: OKLCHColor - - .. automethods:: \ No newline at end of file +.. autoclass:: OKLabColor \ No newline at end of file diff --git a/docs/generated/suou.color.rst b/docs/generated/suou.color.rst index d7da1c2..339e4ed 100644 --- a/docs/generated/suou.color.rst +++ b/docs/generated/suou.color.rst @@ -9,10 +9,7 @@ .. autosummary:: Chalk - LinearRGBColor - OKLCHColor - OKLabColor RGBColor + SRGBColor WebColor - XYZColor \ No newline at end of file diff --git a/docs/generated/suou.sqlalchemy.asyncio.rst b/docs/generated/suou.sqlalchemy.asyncio.rst index d67d664..872ac14 100644 --- a/docs/generated/suou.sqlalchemy.asyncio.rst +++ b/docs/generated/suou.sqlalchemy.asyncio.rst @@ -1,4 +1,4 @@ -suou.sqlalchemy.asyncio +suou.sqlalchemy.asyncio ======================= .. automodule:: suou.sqlalchemy.asyncio @@ -14,6 +14,7 @@ .. autosummary:: + AsyncSelectPagination SQLAlchemy SessionWrapper \ No newline at end of file diff --git a/src/suou/__init__.py b/src/suou/__init__.py index b50bb02..60f8b7b 100644 --- a/src/suou/__init__.py +++ b/src/suou/__init__.py @@ -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', diff --git a/src/suou/sqlalchemy/__init__.py b/src/suou/sqlalchemy/__init__.py index d46ca8f..c3e9856 100644 --- a/src/suou/sqlalchemy/__init__.py +++ b/src/suou/sqlalchemy/__init__.py @@ -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', diff --git a/src/suou/sqlalchemy/asyncio.py b/src/suou/sqlalchemy/asyncio.py index b28f305..e2bab47 100644 --- a/src/suou/sqlalchemy/asyncio.py +++ b/src/suou/sqlalchemy/asyncio.py @@ -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 diff --git a/src/suou/sqlalchemy/quart.py b/src/suou/sqlalchemy/quart.py index dd03f06..e314f06 100644 --- a/src/suou/sqlalchemy/quart.py +++ b/src/suou/sqlalchemy/quart.py @@ -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):