]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commit
implement pep-649 workarounds, test suite passing for python 3.14
authorMike Bayer <mike_mp@zzzcomputing.com>
Thu, 6 Mar 2025 14:12:43 +0000 (09:12 -0500)
committerMike Bayer <mike_mp@zzzcomputing.com>
Thu, 8 May 2025 22:58:58 +0000 (18:58 -0400)
commitb8b07a2f28657e57ae9b4071b6313df372b7f8cb
treee0f14c5ad54fe0da8fbe7e906505dfef52b80b11
parent39491be87f089121809b687ef09aa57734ec518e
implement pep-649 workarounds, test suite passing for python 3.14

Changes to the test suite to accommodate Python 3.14 as of version
3.14.0b1

Originally this included a major breaking change to how python 3.14
implemented :pep:`649`, however this was resolved by [1].

As of a7, greenlet is skipped due to issues in a7 and later b1
in [2].

1. the change to rewrite all conditionals in annotation related tests
   is reverted.
2. test_memusage needed an explicit set_start_method() call so that
   it can continue to use plain fork
3. unfortunately at the moment greenlet has to be re-disabled for 3.14.
4. Changes to tox overall, remove pysqlcipher which hasn't worked
   in years, etc.
5. we need to support upcoming typing-extensions also, install the beta
6. 3.14.0a7 introduces major regressions to our runtime typing
   utilities, unfortunately, it's not clear if these can be resolved
7. for 3.14.0b1, we have to vendor get_annotations to work around [3]

[1] https://github.com/python/cpython/issues/130881
[2] https://github.com/python-greenlet/greenlet/issues/440
[3] https://github.com/python/cpython/issues/133684

py314: yes
Fixes: #12405
References: #12399
Change-Id: I8715d02fae599472dd64a2a46ccf8986239ecd99
12 files changed:
doc/build/changelog/unreleased_20/12405.rst [new file with mode: 0644]
lib/sqlalchemy/testing/requirements.py
lib/sqlalchemy/util/__init__.py
lib/sqlalchemy/util/compat.py
lib/sqlalchemy/util/langhelpers.py
lib/sqlalchemy/util/typing.py
pyproject.toml
test/aaa_profiling/test_memusage.py
test/base/test_typing_utils.py
test/ext/asyncio/test_engine_py3k.py
test/typing/test_overloads.py
tox.ini