mirror of
https://github.com/davidhalter/jedi.git
synced 2026-01-15 08:26:42 +08:00
Merge pull request #173 from tkf/gc-and-cache
Do not clear cache in __del__
This commit is contained in:
@@ -76,6 +76,7 @@ class Script(object):
|
||||
""" lazy parser."""
|
||||
return self._module.parser
|
||||
|
||||
@api_classes._clear_caches_after_call
|
||||
def complete(self):
|
||||
"""
|
||||
Return :class:`api_classes.Completion` objects. Those objects contain
|
||||
@@ -209,6 +210,7 @@ class Script(object):
|
||||
warnings.warn("Use line instead.", DeprecationWarning)
|
||||
return self.definition()
|
||||
|
||||
@api_classes._clear_caches_after_call
|
||||
def definition(self):
|
||||
"""
|
||||
Return the definitions of a the path under the cursor. This is not a
|
||||
@@ -272,6 +274,7 @@ class Script(object):
|
||||
if not isinstance(s, imports.ImportPath._GlobalNamespace)])
|
||||
return sorted(d, key=lambda x: (x.module_path, x.start_pos))
|
||||
|
||||
@api_classes._clear_caches_after_call
|
||||
def goto(self):
|
||||
"""
|
||||
Return the first definition found by goto. Imports and statements
|
||||
@@ -334,6 +337,7 @@ class Script(object):
|
||||
definitions = [user_stmt]
|
||||
return definitions, search_name
|
||||
|
||||
@api_classes._clear_caches_after_call
|
||||
def related_names(self, additional_module_paths=()):
|
||||
"""
|
||||
Return :class:`api_classes.RelatedName` objects, which contain all
|
||||
@@ -378,6 +382,7 @@ class Script(object):
|
||||
warnings.warn("Use line instead.", DeprecationWarning)
|
||||
return self.function_definition()
|
||||
|
||||
@api_classes._clear_caches_after_call
|
||||
def function_definition(self):
|
||||
"""
|
||||
Return the function object of the call you're currently in.
|
||||
@@ -487,9 +492,6 @@ class Script(object):
|
||||
match = re.match(r'^(.*?)(\.|)(\w?[\w\d]*)$', path, flags=re.S)
|
||||
return match.groups()
|
||||
|
||||
def __del__(self):
|
||||
api_classes._clear_caches()
|
||||
|
||||
|
||||
def defined_names(source, source_path=None, source_encoding='utf-8'):
|
||||
"""
|
||||
|
||||
@@ -7,6 +7,7 @@ interesting information about completion and goto operations.
|
||||
import re
|
||||
import os
|
||||
import warnings
|
||||
import functools
|
||||
|
||||
from _compatibility import unicode, next
|
||||
import cache
|
||||
@@ -34,6 +35,18 @@ def _clear_caches():
|
||||
imports.imports_processed = 0
|
||||
|
||||
|
||||
def _clear_caches_after_call(func):
|
||||
"""
|
||||
Clear caches just before returning a value.
|
||||
"""
|
||||
@functools.wraps(func)
|
||||
def wrapper(*args, **kwds):
|
||||
result = func(*args, **kwds)
|
||||
_clear_caches()
|
||||
return result
|
||||
return wrapper
|
||||
|
||||
|
||||
class BaseDefinition(object):
|
||||
_mapping = {'posixpath': 'os.path',
|
||||
'riscospath': 'os.path',
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
[pytest]
|
||||
addopts = --assert=plain --doctest-modules
|
||||
addopts = --doctest-modules
|
||||
|
||||
# Ignore broken files in blackbox test directories
|
||||
norecursedirs = .* docs completion refactor
|
||||
|
||||
Reference in New Issue
Block a user