]> git.ipfire.org Git - thirdparty/jinja.git/commitdiff
Lazy asyncsupport.patch_all()
authorINADA Naoki <songofacandy@gmail.com>
Tue, 6 Feb 2018 12:52:57 +0000 (21:52 +0900)
committerINADA Naoki <songofacandy@gmail.com>
Tue, 6 Feb 2018 12:52:57 +0000 (21:52 +0900)
fixes #765

jinja2/__init__.py
jinja2/asyncsupport.py
jinja2/environment.py

index 817d4e8a7d27f4b0f026a0d66f5b4f31cf29a51c..f20c573fd0a7b2952a2ae404324f5706744f5458 100644 (file)
@@ -70,14 +70,3 @@ __all__ = [
     'evalcontextfilter', 'evalcontextfunction', 'make_logging_undefined',
     'select_autoescape',
 ]
-
-
-def _patch_async():
-    from jinja2.utils import have_async_gen
-    if have_async_gen:
-        from jinja2.asyncsupport import patch_all
-        patch_all()
-
-
-_patch_async()
-del _patch_async
index b1e7b5ce9a27a6e069abfab9d36f80117ce6a74c..53ad192de26a3d969d6fe5d3621fee98ca2d8acd 100644 (file)
@@ -254,3 +254,6 @@ async def make_async_loop_context(iterable, undefined, recurse=None, depth0=0):
         after = _last_iteration
     return AsyncLoopContext(async_iterator, undefined, after, length, recurse,
                             depth0)
+
+
+patch_all()
index 549d9afab456b45032945fd47d5c2900e3797a1b..295ff13e578b703df84847ad2893a219c30ae700 100644 (file)
@@ -334,6 +334,8 @@ class Environment(object):
 
         self.enable_async = enable_async
         self.is_async = self.enable_async and have_async_gen
+        if self.is_async:
+            import jinja2.asyncsupport  # runs patch_all() once
 
         _environment_sanity_check(self)