From fac0b7f068b0dabf557cd04f3357e5c5c37f1473 Mon Sep 17 00:00:00 2001 From: "Patterson, Kevin R" Date: Wed, 8 Feb 2023 18:17:26 -0600 Subject: [PATCH] instance_allow_descriptor_getattr as public setting --- jedi/api/__init__.py | 3 +-- jedi/settings.py | 6 ++++++ test/test_api/test_interpreter.py | 3 ++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/jedi/api/__init__.py b/jedi/api/__init__.py index a243c531..37802c04 100644 --- a/jedi/api/__init__.py +++ b/jedi/api/__init__.py @@ -708,7 +708,6 @@ class Interpreter(Script): :param namespaces: A list of namespace dictionaries such as the one returned by :func:`globals` and :func:`locals`. """ - _allow_descriptor_getattr_default = True def __init__(self, code, namespaces, *, project=None, **kwds): try: @@ -729,7 +728,7 @@ class Interpreter(Script): super().__init__(code, environment=environment, project=project, **kwds) self.namespaces = namespaces - self._inference_state.allow_descriptor_getattr = self._allow_descriptor_getattr_default + self._inference_state.allow_descriptor_getattr = settings.instance_allow_descriptor_getattr @cache.memoize_method def _get_module_context(self): diff --git a/jedi/settings.py b/jedi/settings.py index c31a474a..383ee7cb 100644 --- a/jedi/settings.py +++ b/jedi/settings.py @@ -143,6 +143,12 @@ This improves autocompletion for libraries that use ``setattr`` or ``globals()`` modifications a lot. """ +instance_allow_descriptor_getattr = True +""" +Controls whether descriptors are evaluated when using an Interpreter. This is +something you might want to control when using Jedi from a Repl (e.g. IPython) +""" + # ---------------- # Caching Validity # ---------------- diff --git a/test/test_api/test_interpreter.py b/test/test_api/test_interpreter.py index 8e69cafc..f7647e2d 100644 --- a/test/test_api/test_interpreter.py +++ b/test/test_api/test_interpreter.py @@ -8,6 +8,7 @@ import typing import pytest import jedi +import jedi.settings from jedi.inference.compiled import mixed from importlib import import_module @@ -219,7 +220,7 @@ def test__getattr__completions(allow_unsafe_getattr, class_is_findable): @pytest.fixture(params=[False, True]) def allow_unsafe_getattr(request, monkeypatch): - monkeypatch.setattr(jedi.Interpreter, '_allow_descriptor_getattr_default', request.param) + monkeypatch.setattr(jedi.settings,'instance_allow_descriptor_getattr', request.param) return request.param