Mercurial > babel > mirror
diff babel/support.py @ 559:8831b754f81e trunk
Allow disabling cache behaviour in LazyProxy (fixes #208, initial patch Pedro Algarvio)
author | fschwarz |
---|---|
date | Wed, 31 Aug 2011 12:38:06 +0000 |
parents | ca203b2af83c |
children | 7c81bb0d32e5 |
line wrap: on
line diff
--- a/babel/support.py +++ b/babel/support.py @@ -183,18 +183,22 @@ Hello, universe! Hello, world! """ - __slots__ = ['_func', '_args', '_kwargs', '_value'] + __slots__ = ['_func', '_args', '_kwargs', '_value', '_is_cache_enabled'] def __init__(self, func, *args, **kwargs): + is_cache_enabled = kwargs.pop('enable_cache', True) # Avoid triggering our own __setattr__ implementation object.__setattr__(self, '_func', func) object.__setattr__(self, '_args', args) object.__setattr__(self, '_kwargs', kwargs) + object.__setattr__(self, '_is_cache_enabled', is_cache_enabled) object.__setattr__(self, '_value', None) def value(self): if self._value is None: value = self._func(*self._args, **self._kwargs) + if not self._is_cache_enabled: + return value object.__setattr__(self, '_value', value) return self._value value = property(value)