From a972d49e88fbf265676f9fe62a755dd0733562f4 Mon Sep 17 00:00:00 2001 From: Dave Halter Date: Sun, 15 Apr 2018 15:28:05 +0200 Subject: [PATCH] Cache default environment --- jedi/api/environment.py | 7 ++++++- jedi/api/project.py | 4 ++-- jedi/settings.py | 2 ++ 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/jedi/api/environment.py b/jedi/api/environment.py index 22c7c4d6..40d5e626 100644 --- a/jedi/api/environment.py +++ b/jedi/api/environment.py @@ -14,7 +14,7 @@ from collections import namedtuple from distutils.spawn import find_executable from jedi._compatibility import GeneralizedPopen -from jedi.cache import memoize_method +from jedi.cache import memoize_method, time_cache from jedi.evaluate.compiled.subprocess import get_subprocess, \ EvaluatorSameProcess, EvaluatorSubprocess @@ -170,6 +170,11 @@ def get_default_environment(): return SameEnvironment() +@time_cache("_default_environment_validity") +def get_cached_default_environment(): + return get_default_environment() + + def find_virtualenvs(paths=None, **kwargs): """ :param paths: A list of paths in your file system to be scanned for diff --git a/jedi/api/project.py b/jedi/api/project.py index ec01f82f..ca6992b5 100644 --- a/jedi/api/project.py +++ b/jedi/api/project.py @@ -3,7 +3,7 @@ import json from jedi._compatibility import FileNotFoundError, NotADirectoryError from jedi.api.environment import SameEnvironment, \ - get_default_environment + get_cached_default_environment from jedi.api.exceptions import WrongVersion from jedi._compatibility import force_unicode from jedi.evaluate.sys_path import discover_buildout_paths @@ -136,7 +136,7 @@ class Project(object): def get_environment(self): if self._environment is None: - return get_default_environment() + return get_cached_default_environment() return self._environment diff --git a/jedi/settings.py b/jedi/settings.py index f1ae6dbb..bbd3a378 100644 --- a/jedi/settings.py +++ b/jedi/settings.py @@ -161,3 +161,5 @@ call_signatures_validity = 3.0 Finding function calls might be slow (0.1-0.5s). This is not acceptible for normal writing. Therefore cache it for a short time. """ + +_default_environment_validity = 10 * 60 # 0 Minutes