diff -r 2022e4da3ad9 -r 63284c98cdc1 src/pyams_utils/wsgi.py --- a/src/pyams_utils/wsgi.py Sat Nov 23 01:24:11 2019 +0100 +++ b/src/pyams_utils/wsgi.py Sat Nov 23 14:57:24 2019 +0100 @@ -10,13 +10,12 @@ # FOR A PARTICULAR PURPOSE. # -__docformat__ = 'restructuredtext' - -# import standard library +"""PyAMS_utils.wsgi module -# import interfaces +This module provides a method decorator which can store it's value into request environment +""" -# import packages +__docformat__ = 'restructuredtext' def wsgi_environ_cache(*names): @@ -25,17 +24,20 @@ :param [string...] names: keys to cache into environ; len(names) must be equal to the result's length or scalar """ - def decorator(fn): + + def decorator(func): + def function_wrapper(self, request): scalar = len(names) == 1 try: - rs = [request.environ[cached_key] for cached_key in names] + env = [request.environ[cached_key] for cached_key in names] except KeyError: - rs = fn(self, request) + env = func(self, request) if scalar: - rs = [rs, ] - request.environ.update(zip(names, rs)) - return rs[0] if scalar else rs + env = [env, ] + request.environ.update(zip(names, env)) + return env[0] if scalar else env + return function_wrapper return decorator