From: Armin Ronacher Date: Wed, 28 Dec 2016 13:57:34 +0000 (+0100) Subject: Stop use of .module in generated code X-Git-Tag: 2.9~74 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=5be172a5e07541b24b9d69ccade70b5987f40579;p=thirdparty%2Fjinja.git Stop use of .module in generated code --- diff --git a/jinja2/compiler.py b/jinja2/compiler.py index 09ad42b9..f60769ea 100644 --- a/jinja2/compiler.py +++ b/jinja2/compiler.py @@ -976,7 +976,7 @@ class CodeGenerator(NodeVisitor): 'template.new_context(context.parent, True, ' 'locals())):') else: - self.writeline('for event in template.module._body_stream:') + self.writeline('for event in template._get_default_module()._body_stream:') self.indent() self.simple_write('event', frame) diff --git a/jinja2/environment.py b/jinja2/environment.py index 3b3dc4cc..6c9fc193 100644 --- a/jinja2/environment.py +++ b/jinja2/environment.py @@ -1035,6 +1035,12 @@ class Template(object): """ return TemplateModule(self, self.new_context(vars, shared, locals)) + def _get_default_module(self): + if self._module is not None: + return self._module + self._module = rv = self.make_module() + return rv + @property def module(self): """The template as module. This is used for imports in the @@ -1047,10 +1053,7 @@ class Template(object): >>> t.module.foo() == u'42' True """ - if self._module is not None: - return self._module - self._module = rv = self.make_module() - return rv + return self._get_default_module() def get_corresponding_lineno(self, lineno): """Return the source line number of a line number in the