#
##############################################################################
-__all__ = ['synchronized', 'lazy_property', 'classproperty']
+__all__ = ['synchronized', 'lazy_property', 'classproperty', 'conditional']
from functools import wraps
from inspect import getsourcefile
if isinstance(getattr(cls, name, None), lazy_property):
obj_dict.pop(name)
+def conditional(condition, decorator):
+ """ Decorator for a conditionally applied decorator.
+
+ Example:
+
+ @conditional(get_config('use_cache'), ormcache)
+ def fn():
+ pass
+ """
+ if condition:
+ return decorator
+ else:
+ return lambda fn: fn
def synchronized(lock_attr='_lock'):
def decorator(func):