feat: sync foundation for asyncio support (phase 1 of #1251)#1252
Open
AhmadMasry wants to merge 3 commits into
Open
feat: sync foundation for asyncio support (phase 1 of #1251)#1252AhmadMasry wants to merge 3 commits into
AhmadMasry wants to merge 3 commits into
Conversation
Open
2 tasks
Phase 1 of the aws#1251 async-support contribution, split per maintainer request into sync-first then async. This branch carries the sync-side changes and Python 3.14 support only; the aws_advanced_python_wrapper.aio subpackage, the async SQLAlchemy dialects, and the async test suites land in phase 2. - Sync-side behavioral changes flagged in aws#1251: cross-thread socket-shutdown on execute-timeout (the env-4 SIGSEGV interrupt-and-wait) in the driver dialects + decorators.timeout; transient-connect exception classification; and the failover connection retry logic (RetryUtil), incl. the *_OR_WRITER reader-then-writer fallback. - Sync SQLAlchemy dialects: postgresql+aws_wrapper_psycopg and mysql+aws_wrapper_mysqlconnector (sqlalchemy_dialects/), replacing the old sqlalchemy/mysql_orm_dialect.py; DBAPI-shim restructure (_dbapi.install). - Python 3.14: version classifier, CI matrix, integration harness PYTHON_3_14 + test-python-3.14-{pg,mysql} tasks; sync dependency bumps. - Tests: unit + sync SQLAlchemy integration tests, plus a sync RetryUtil writer-fallback regression test. pyproject uses the [tool.poetry] metadata format (Poetry 1.8.2-compatible, as on main). The sync surface carries no async/aiomysql/greenlet references.
9d1de59 to
6817b96
Compare
greenlet 3.1.1 ships no cp314 wheel, so the Python 3.14 unit-CI job (3.14 added to main.yml in 6817b96) built it from source and failed against CPython 3.14's internal frame API (_PyInterpreterFrame, c_recursion_remaining, Py_C_RECURSION_LIMIT). greenlet 3.5.2 provides cp314 wheels. Pulled transitively via SQLAlchemy on x86_64; lock-only change, lock-version unchanged (2.1).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Phase 1 of the #1251 async-support contribution, split per maintainer request into sync-first then async. Sync-side changes + Python 3.14 only; the aws_advanced_python_wrapper.aio subpackage, async SQLAlchemy dialects, and async tests land in phase 2.
/verify green: mypy (237 files), flake8, isort, 1114 unit tests on Python 3.14.
Description
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.