From ef3b24c16dd59855487d064405638359e88d0cf2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20P=C3=A9ters?= Date: Thu, 18 Oct 2018 10:00:54 +0200 Subject: [PATCH] misc: cache substitution variables in substitution object (#27393) --- wcs/qommon/substitution.py | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/wcs/qommon/substitution.py b/wcs/qommon/substitution.py index 0ee48a013..7a1a74b15 100644 --- a/wcs/qommon/substitution.py +++ b/wcs/qommon/substitution.py @@ -16,7 +16,7 @@ from contextlib import contextmanager -from quixote import get_request, get_publisher +from quixote import get_publisher from quixote.html import htmltext, TemplateIO @@ -25,7 +25,7 @@ def invalidate_substitution_cache(func): try: return func(*args, **kwargs) finally: - Substitutions.invalidate_cache() + get_publisher().substitutions.invalidate_cache() return f @@ -92,19 +92,16 @@ class Substitutions(object): self.sources = orig_sources self.invalidate_cache() - @classmethod - def invalidate_cache(cls): - request = get_request() + def invalidate_cache(self): for value in (True, False): - if hasattr(request, '_cache_context_variables%r' % value): - delattr(request, '_cache_context_variables%r' % value) + if hasattr(self, '_cache_context_variables%r' % value): + delattr(self, '_cache_context_variables%r' % value) def get_context_variables(self, mode=None): if self._forced_mode: mode = self._forced_mode lazy = mode in get_publisher().get_lazy_variables_modes() if mode else False - request = get_request() - d = getattr(request, '_cache_context_variables%r' % lazy, None) + d = getattr(self, '_cache_context_variables%r' % lazy, None) if d is not None: return d d = CompatibilityNamesDict() @@ -112,8 +109,7 @@ class Substitutions(object): d.update(source.get_substitution_variables()) if not lazy and hasattr(source, 'get_static_substitution_variables'): d.update(source.get_static_substitution_variables()) - if request: - setattr(request, '_cache_context_variables%r' % lazy, d) + setattr(self, '_cache_context_variables%r' % lazy, d) return d @classmethod -- 2.19.1