|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Changelog:
==========
* On Python 3.10 and below, the version of the "typing_extensions" package
is now constrained to be at least version 4 (as we depend on functionality
in that version and above)
* Contextvars are now required for the implementation of Local as Python 3.6
is 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.
Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
Changelog:
===========
* Two new functions are added to the "asgiref.sync" module: "iscoroutinefunction()"
and "markcoroutinefunction()".
Python 3.12 deprecates "asyncio.iscoroutinefunction()" as an alias for
"inspect.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 these
functions 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 be
adopted by Django 4.2, in preparation for support of Python 3.12.
* The "loop" argument to "asgiref.timeout.timeout" is deprecated. As per other
"asyncio" based APIs, the running event loop is used by default. Note that
"asyncio" provides timeout utilities from Python 3.11, and these should be
preferred where available.
* Support for the "ASGI_THREADS" environment variable, used by
"SyncToAsync", is removed. In general, a running event-loop is not
available to `asgiref` at import time, and so the default thread pool
executor cannot be configured. Protocol servers, or applications, should set
the default executor as required when configuring the event loop at
application startup.
Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|