From 4cf5d56b64cbef58d2e66f054aa6ffbfa3516ffd Mon Sep 17 00:00:00 2001 From: Dave Halter Date: Wed, 25 Dec 2013 03:24:12 +0100 Subject: [PATCH] fix more issues and renamings --- jedi/cache.py | 4 ++-- jedi/docstrings.py | 2 +- jedi/evaluate/__init__.py | 2 +- jedi/evaluate/cache.py | 11 ++++------- jedi/evaluate/dynamic.py | 2 +- 5 files changed, 9 insertions(+), 12 deletions(-) diff --git a/jedi/cache.py b/jedi/cache.py index 918af40d..37f7a961 100644 --- a/jedi/cache.py +++ b/jedi/cache.py @@ -103,14 +103,14 @@ def cache_call_signatures(stmt): def cache_star_import(func): - def wrapper(scope, *args, **kwargs): + def wrapper(evaluator, scope, *args, **kwargs): with common.ignored(KeyError): mods = star_import_cache[scope] if mods[0] + settings.star_import_cache_validity > time.time(): return mods[1] # cache is too old and therefore invalid or not available invalidate_star_import_cache(scope) - mods = func(scope, *args, **kwargs) + mods = func(evaluator, scope, *args, **kwargs) star_import_cache[scope] = time.time(), mods return mods diff --git a/jedi/docstrings.py b/jedi/docstrings.py index 4d81a357..2a9c0b34 100644 --- a/jedi/docstrings.py +++ b/jedi/docstrings.py @@ -32,7 +32,7 @@ DOCSTRING_RETURN_PATTERNS = [ REST_ROLE_PATTERN = re.compile(r':[^`]+:`([^`]+)`') -@memoize_default(None, is_function=True) +@memoize_default(None, evaluator_is_first_arg=True) def follow_param(evaluator, param): func = param.parent_function # print func, param, param.parent_function diff --git a/jedi/evaluate/__init__.py b/jedi/evaluate/__init__.py index 84cafded..9e65715b 100644 --- a/jedi/evaluate/__init__.py +++ b/jedi/evaluate/__init__.py @@ -477,7 +477,7 @@ class Evaluator(object): return filter_name(scope_generator) return descriptor_check(remove_statements(filter_name(scope_generator))) - @memoize_default(default=(), cache_is_in_self=True) + @memoize_default(default=(), evaluator_is_first_arg=True) @recursion.recursion_decorator def follow_statement(self, stmt, seek_name=None): """ diff --git a/jedi/evaluate/cache.py b/jedi/evaluate/cache.py index 4d338820..1f58ae34 100644 --- a/jedi/evaluate/cache.py +++ b/jedi/evaluate/cache.py @@ -5,8 +5,7 @@ """ -def memoize_default(default, cache_is_in_self=False, is_function=False, - first_arg_is_evaluator=False): +def memoize_default(default, evaluator_is_first_arg=False, second_arg_is_evaluator=False): """ This is a typical memoization decorator, BUT there is one difference: To prevent recursion it sets defaults. @@ -16,11 +15,9 @@ def memoize_default(default, cache_is_in_self=False, is_function=False, """ def func(function): def wrapper(obj, *args, **kwargs): - if is_function: - cache = obj - elif cache_is_in_self: + if evaluator_is_first_arg: cache = obj.memoize_cache - elif first_arg_is_evaluator: # needed for meta classes + elif second_arg_is_evaluator: # needed for meta classes cache = args[0].memoize_cache else: cache = obj._evaluator.memoize_cache @@ -49,6 +46,6 @@ class CachedMetaClass(type): class initializations. I haven't found any other way, so I'm doing it with meta classes. """ - @memoize_default(None, first_arg_is_evaluator=True) + @memoize_default(None, second_arg_is_evaluator=True) def __call__(self, *args, **kwargs): return super(CachedMetaClass, self).__call__(*args, **kwargs) diff --git a/jedi/evaluate/dynamic.py b/jedi/evaluate/dynamic.py index 603f8094..d684a28d 100644 --- a/jedi/evaluate/dynamic.py +++ b/jedi/evaluate/dynamic.py @@ -137,7 +137,7 @@ class ParamListener(object): self.param_possibilities.append(params) -@memoize_default([], is_function=True) +@memoize_default([], evaluator_is_first_arg=True) def search_params(evaluator, param): """ This is a dynamic search for params. If you try to complete a type: