$ the-wire · showcase
asgiref drops its custom timeout for asyncio.timeout, Python 3.11 now the floor
By RepoJournal · Filed · About Django · Composed from the cited sources · methodology
asgiref's own timeout mechanism is on the way out in favor of the standard library's, and with it the last reason to run the package on Python 3.10 or older.
Deprecate custom timeout in favour of asyncio.timeout. django/asgiref
asgiref's custom timeout is deprecated in favour of asyncio.timeout, and Python 3.11 is now the minimum supported version. Projects pinned to earlier interpreters pick up the deprecation without the new implementation, so plan the interpreter move before the old timeout goes away.
Deprecate custom timeout in favour of asyncio.timeout. (#598) django/asgiref
The same change ships in the mainline commit that closes the tracker issue. Anything passing the custom timeout argument gets a deprecation warning now and will need to move to asyncio.timeout.
Fixed #37411 -- Added compatibility for oracledb 26.0.0+. django/django
oracledb 26.0.0 began requiring large parameter values to be sent as a temporary LOB when calling PL/SQL functions, which broke Django's GIS test fixtures on the Texas Multipolygon WKT, a string past the 4000-character LOB threshold. Django now requests LOB conversion explicitly for large payloads, and an Oracle upgrade will otherwise surface as a TypeError deep in fixture loading.
Fix #514: Handle scope["server"] = None in build_environ without crashing django/asgiref
Uvicorn running with --uds puts "server": None in the ASGI scope, and build_environ's old membership check tried to index None and raised TypeError. The check is now an explicit None test, with SERVER_PORT set to "0" for the Unix socket case.
upstreaming a fix for a small bug - compare contextvars by identity in _restore_context django/asgiref
A one-line change compares contextvars by identity with is not instead of != in _restore_context; dict comparison via != misbehaves when restoring pydantic values backed by a WeakValueDictionary, which the author reports broke in production before this fix.
Replaced RST links named in English with explicit URLs. django/django
The long tail: named RST links written in English were replaced with explicit URLs, since translators rendering the visible link text broke the references in the translated docs, and django-asv recorded fresh benchmark results for ubuntu-latest.
Action items
- → Move asgiref consumers to Python 3.11 before the custom timeout is removed django/asgiref [plan]