Prepare for eventual cache changes.

This commit is contained in:
Dave Halter
2017-09-05 18:38:32 +02:00
parent 2aa5da8682
commit e81486894f

View File

@@ -21,8 +21,8 @@ def memoize_default(default=NO_DEFAULT, evaluator_is_first_arg=False, second_arg
def wrapper(obj, *args, **kwargs):
if evaluator_is_first_arg:
cache = obj.memoize_cache
elif second_arg_is_evaluator: # needed for meta classes
cache = args[0].memoize_cache
elif second_arg_is_evaluator:
cache = args[0].memoize_cache # needed for meta classes
else:
cache = obj.evaluator.memoize_cache
@@ -47,6 +47,20 @@ def memoize_default(default=NO_DEFAULT, evaluator_is_first_arg=False, second_arg
return func
def evaluator_function_cache(default=NO_DEFAULT):
def decorator(func):
return memoize_default(default=default, evaluator_is_first_arg=True)(func)
return decorator
def evaluator_method_cache(default=NO_DEFAULT):
def decorator(func):
return memoize_default(default=default)(func)
return decorator
class CachedMetaClass(type):
"""
This is basically almost the same than the decorator above, it just caches