use asyncio.run in Template.render (#1952)
This commit is contained in:
commit
079e8312c3
@ -5,6 +5,9 @@ Version 3.1.5
|
||||
|
||||
Unreleased
|
||||
|
||||
- Calling sync ``render`` for an async template uses ``asyncio.run``.
|
||||
:pr:`1952`
|
||||
|
||||
|
||||
Version 3.1.4
|
||||
-------------
|
||||
@ -138,9 +141,8 @@ Released 2021-05-18
|
||||
extensions shows more relevant context. :issue:`1429`
|
||||
- Fixed calling deprecated ``jinja2.Markup`` without an argument.
|
||||
Use ``markupsafe.Markup`` instead. :issue:`1438`
|
||||
- Calling sync ``render`` for an async template uses ``asyncio.run``
|
||||
on Python >= 3.7. This fixes a deprecation that Python 3.10
|
||||
introduces. :issue:`1443`
|
||||
- Calling sync ``render`` for an async template uses ``asyncio.new_event_loop``
|
||||
This fixes a deprecation that Python 3.10 introduces. :issue:`1443`
|
||||
|
||||
|
||||
Version 3.0.0
|
||||
|
||||
@ -515,9 +515,6 @@ environment to compile different code behind the scenes in order to
|
||||
handle async and sync code in an asyncio event loop. This has the
|
||||
following implications:
|
||||
|
||||
- Template rendering requires an event loop to be available to the
|
||||
current thread. :func:`asyncio.get_running_loop` must return an
|
||||
event loop.
|
||||
- The compiled code uses ``await`` for functions and attributes, and
|
||||
uses ``async for`` loops. In order to support using both async and
|
||||
sync functions in this context, a small wrapper is placed around
|
||||
|
||||
@ -1282,19 +1282,7 @@ class Template:
|
||||
if self.environment.is_async:
|
||||
import asyncio
|
||||
|
||||
close = False
|
||||
|
||||
try:
|
||||
loop = asyncio.get_running_loop()
|
||||
except RuntimeError:
|
||||
loop = asyncio.new_event_loop()
|
||||
close = True
|
||||
|
||||
try:
|
||||
return loop.run_until_complete(self.render_async(*args, **kwargs))
|
||||
finally:
|
||||
if close:
|
||||
loop.close()
|
||||
return asyncio.run(self.render_async(*args, **kwargs))
|
||||
|
||||
ctx = self.new_context(dict(*args, **kwargs))
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user