Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update asgiref to 3.6.0 #2447

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

pyup-bot
Copy link
Collaborator

This PR updates asgiref from 3.3.1 to 3.6.0.

Changelog

3.6.0

------------------

* 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.

3.5.2

------------------

* Allow async-callables class instances to be passed to AsyncToSync
without warning

* Prevent giving async-callable class instances to SyncToAsync

3.5.1

------------------

* sync_to_async in thread-sensitive mode now works corectly when the
outermost thread is synchronous (214)

3.5.0

------------------

* 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

3.4.1

------------------

* Fixed an issue with the deadlock detection where it had false positives
during exception handling.

3.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 been
fixed.

3.3.4

------------------

* The async_to_sync type error is now a warning due the high false negative
rate when trying to detect coroutine-returning callables in Python.

3.3.3

------------------

* The sync conversion functions now correctly detect functools.partial and other
wrappers around async functions on earlier Python releases.

3.3.2

------------------

* 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.
Links

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant