Skip to content

Commit 96ec24f

Browse files
committed
Fast path for disabled template load explain.
1 parent 883cb7c commit 96ec24f

File tree

1 file changed

+20
-11
lines changed

1 file changed

+20
-11
lines changed

flask/templating.py

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -52,27 +52,36 @@ def __init__(self, app):
5252
self.app = app
5353

5454
def get_source(self, environment, template):
55-
explain = self.app.config['EXPLAIN_TEMPLATE_LOADING']
55+
if self.app.config['EXPLAIN_TEMPLATE_LOADING']:
56+
return self._get_source_explained(environment, template)
57+
return self._get_source_fast(environment, template)
58+
59+
def _get_source_explained(self, environment, template):
5660
attempts = []
57-
tmplrv = None
61+
trv = None
5862

5963
for srcobj, loader in self._iter_loaders(template):
6064
try:
6165
rv = loader.get_source(environment, template)
62-
if tmplrv is None:
63-
tmplrv = rv
64-
if not explain:
65-
break
66+
if trv is None:
67+
trv = rv
6668
except TemplateNotFound:
6769
rv = None
6870
attempts.append((loader, srcobj, rv))
6971

70-
if explain:
71-
from .debughelpers import explain_template_loading_attempts
72-
explain_template_loading_attempts(self.app, template, attempts)
72+
from .debughelpers import explain_template_loading_attempts
73+
explain_template_loading_attempts(self.app, template, attempts)
74+
75+
if trv is not None:
76+
return trv
77+
raise TemplateNotFound(template)
7378

74-
if tmplrv is not None:
75-
return tmplrv
79+
def _get_source_fast(self, environment, template):
80+
for srcobj, loader in self._iter_loaders(template):
81+
try:
82+
return loader.get_source(environment, template)
83+
except TemplateNotFound:
84+
continue
7685
raise TemplateNotFound(template)
7786

7887
def _iter_loaders(self, template):

0 commit comments

Comments
 (0)