]> 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 23:01:10 +0000 (19:01 -0400)
commitadef933f8d129382f92c2af81fdace9c93006ab0
treeb9948b7404ce9a3bc45a8f44e1fb32f8f48fea89
parent14313b445fcd27f2905cbda9c0d9051c95350de5
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
13 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_concurrency_py3k.py
test/base/test_typing_utils.py
test/ext/asyncio/test_engine_py3k.py
test/typing/test_overloads.py
tox.ini