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.
This PR contains the following updates:
==3.2.10
->==3.8.1
Release Notes
django/asgiref (asgiref)
v3.8.1
Compare Source
sync_to_async.
v3.8.0
Compare Source
Adds support for Python 3.12.
Drops support for (end-of-life) Python 3.7.
Fixes task cancellation propagation to subtasks when using synchronous Django
middleware.
Allows nesting
sync_to_async
viaasyncio.wait_for
.Corrects WSGI adapter handling of root path.
Handles case where
"client"
isNone
in WsgiToAsgi adapter.v3.7.2
more accurately reflect the kind of callables they return.
v3.7.1
is now constrained to be at least version 4 (as we depend on functionality
in that version and above)
v3.7.0
Compare Source
Contextvars are now required for the implementation of
sync
as Python 3.6is now no longer a supported version.
sync_to_async and async_to_sync now pass-through
Debug and Lifespan State extensions have resulted in a typing change for some
request and response types. This change should be backwards-compatible.
asgiref
frames will now be hidden in Django tracebacks by default.Raw performance and garbage collection improvements in Local, SyncToAsync,
and AsyncToSync.
v3.6.0
Compare Source
Two new functions are added to the
asgiref.sync
module:iscoroutinefunction()
and
markcoroutinefunction()
.Python 3.12 deprecates
asyncio.iscoroutinefunction()
as an alias forinspect.iscoroutinefunction()
, whilst also removing the_is_coroutine
marker.The latter is replaced with the
inspect.markcoroutinefunction
decorator.The new
asgiref.sync
functions are compatibility shims for thesefunctions that can be used until Python 3.12 is the minimum supported
version.
Note that these functions are considered beta, and as such, whilst
not likely, are subject to change in a point release, until the final release
of Python 3.12. They are included in
asgiref
now so that they can beadopted by Django 4.2, in preparation for support of Python 3.12.
The
loop
argument toasgiref.timeout.timeout
is deprecated. As per otherasyncio
based APIs, the running event loop is used by default. Note thatasyncio
provides timeout utilities from Python 3.11, and these should bepreferred where available.
Support for the
ASGI_THREADS
environment variable, used bySyncToAsync
, is removed. In general, a running event-loop is notavailable to
asgiref
at import time, and so the default thread poolexecutor cannot be configured. Protocol servers, or applications, should set
the default executor as required when configuring the event loop at
application startup.
v3.5.2
Compare Source
Allow async-callables class instances to be passed to AsyncToSync
without warning
Prevent giving async-callable class instances to SyncToAsync
v3.5.1
Compare Source
outermost thread is synchronous (#214)
v3.5.0
Compare Source
Python 3.6 is no longer supported, and asyncio calls have been changed to
use only the modern versions of the APIs as a result
Several causes of RuntimeErrors in cases where an event loop was assigned
to a thread but not running
Speed improvements in the Local class
v3.4.1
during exception handling.
v3.4.0
Calling sync_to_async directly from inside itself (which causes a deadlock
when in the default, thread-sensitive mode) now has deadlock detection.
asyncio usage has been updated to use the new versions of get_event_loop,
ensure_future, wait and gather, avoiding deprecation warnings in Python 3.10.
Python 3.6 installs continue to use the old versions; this is only for 3.7+
sync_to_async and async_to_sync now have improved type hints that pass
through the underlying function type correctly.
All Websocket* types are now spelled WebSocket, to match our specs and the
official spelling. The old names will work until release 3.5.0, but will
raise deprecation warnings.
The typing for WebSocketScope and HTTPScope's
extensions
key has beenfixed.
v3.3.4
Compare Source
rate when trying to detect coroutine-returning callables in Python.
v3.3.3
Compare Source
wrappers around async functions on earlier Python releases.
v3.3.2
Compare Source
SyncToAsync now takes an optional "executor" argument if you want to supply
your own executor rather than using the built-in one.
async_to_sync and sync_to_async now check their arguments are functions of
the correct type.
Raising CancelledError inside a SyncToAsync function no longer stops a future
call from functioning.
ThreadSensitive now provides context hooks/override options so it can be
made to be sensitive in a unit smaller than threads (e.g. per request)
Drop Python 3.5 support.
Add type annotations.
v3.3.1
Compare Source
v3.3.0
Compare Source
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.