mirror of
https://github.com/davidhalter/jedi.git
synced 2026-01-27 23:02:09 +08:00
Prepare for eventual cache changes.
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user