diff --git a/.readthedocs.yaml b/.readthedocs.yaml index d7d423e..398b6a1 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -3,7 +3,7 @@ version: 2 build: os: ubuntu-24.04 tools: - python: "3.13" + python: "3.14" sphinx: configuration: docs/conf.py diff --git a/CHANGELOG.md b/CHANGELOG.md index 1a89028..2a6aa15 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## 0.14.1 + +* Fixed some imports in `sqlalchemy` module +* Support for Python 3.15 + ## 0.14.0 "Claims & Columns" * Added `ast` module diff --git a/pyproject.toml b/pyproject.toml index 0982b7e..ea68103 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -27,7 +27,8 @@ classifiers = [ "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", - "Programming Language :: Python :: 3.14" + "Programming Language :: Python :: 3.14", + "Programming Language :: Python :: 3.15" ] [project.urls] diff --git a/src/suou/__init__.py b/src/suou/__init__.py index 56bdc7e..28cfe26 100644 --- a/src/suou/__init__.py +++ b/src/suou/__init__.py @@ -41,7 +41,7 @@ from .color import OKLabColor, chalk, WebColor, RGBColor, LinearRGBColor, \ from .mat import Matrix from .argparse import LetterSubparsers -__version__ = "0.14.0" +__version__ = "0.14.1" __all__ = ( 'ColorFormatter', diff --git a/src/suou/sqlalchemy/__init__.py b/src/suou/sqlalchemy/__init__.py index c5ce526..63ce07b 100644 --- a/src/suou/sqlalchemy/__init__.py +++ b/src/suou/sqlalchemy/__init__.py @@ -158,7 +158,7 @@ from .asyncio import SQLAlchemy, async_query, SessionWrapper, AsyncSelectPaginat 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, - ascii_column, i4_column, now_column, + ascii_column, i4_column, now_column, email_column, ) try: @@ -173,7 +173,7 @@ __all__ = ( 'match_column', 'match_constraint', 'bool_column', 'parent_children', 'author_pair', 'age_pair', 'bound_fk', 'unbound_fk', 'want_column', 'a_relationship', 'BitSelector', 'secret_column', 'username_column', - 'ascii_column', 'i4_column', 'now_column', + 'ascii_column', 'i4_column', 'now_column', 'email_column', # .asyncio 'SQLAlchemy', 'AsyncSelectPagination', 'async_query', 'SessionWrapper' ) \ No newline at end of file diff --git a/src/suou/sqlalchemy/orm.py b/src/suou/sqlalchemy/orm.py index 113a0e2..0fdabaa 100644 --- a/src/suou/sqlalchemy/orm.py +++ b/src/suou/sqlalchemy/orm.py @@ -102,6 +102,12 @@ match_constraint.TEXT_DIALECTS = { ## Type decorators for match_column and ascii_column follow class MatchString(TypeDecorator): + """ + XXX if you see this type in an alembic migration this is an error. Please go to the migration file and fix the migration manually, + by replacing suou.sqlalchemy.orm.MatchString with sa.String. + + In normal circumstances, this should be a VARCHAR with a CHECK constraint. + """ impl: TypeAlias = String def __init__(self, length: int, regex: str | re.Pattern, case: StringCase = StringCase.AS_IS, *args, **kwargs):