diff options
Diffstat (limited to 'dev-util/gnome-builder/files/3.28.4-jedi-0.12-compat.patch')
-rw-r--r-- | dev-util/gnome-builder/files/3.28.4-jedi-0.12-compat.patch | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/dev-util/gnome-builder/files/3.28.4-jedi-0.12-compat.patch b/dev-util/gnome-builder/files/3.28.4-jedi-0.12-compat.patch new file mode 100644 index 000000000000..4132e2d1bfef --- /dev/null +++ b/dev-util/gnome-builder/files/3.28.4-jedi-0.12-compat.patch @@ -0,0 +1,93 @@ +From 799a378b96cad5dc9b1093604e76ed362d22f4cc Mon Sep 17 00:00:00 2001 +From: Christian Hergert <chergert@redhat.com> +Date: Sun, 27 May 2018 20:19:34 -0700 +Subject: [PATCH] jedi: minimal attempt to get things working again + +This tries to get some of our jedi code working with recent API changes +in the jedi project. + +This is just a minimal fix, and I'd expect some others may be needed for +improved functionality. + +Fixes #403 +--- + src/plugins/jedi/jedi_plugin.py | 44 ++++++++++++++++++++++----------- + 1 file changed, 29 insertions(+), 15 deletions(-) + +diff --git a/src/plugins/jedi/jedi_plugin.py b/src/plugins/jedi/jedi_plugin.py +index fd8e15d68..052500da1 100644 +--- a/src/plugins/jedi/jedi_plugin.py ++++ b/src/plugins/jedi/jedi_plugin.py +@@ -91,8 +91,14 @@ try: + import jedi + from jedi.evaluate.compiled import CompiledObject + from jedi.evaluate.compiled import get_special_object +- from jedi.evaluate.compiled import _create_from_name +- from jedi.evaluate.context import Context ++ try: ++ # 0.12 ++ from jedi.evaluate.compiled import create_from_name ++ from jedi.evaluate.base_context import Context ++ except ImportError: ++ # Pre 0.12 ++ from jedi.evaluate.compiled import _create_from_name as create_from_name ++ from jedi.evaluate.context import Context + from jedi.evaluate.docstrings import _evaluate_for_statement_string + from jedi.evaluate.imports import Importer + +@@ -175,23 +181,31 @@ try: + pass + return module_list + +- original_jedi_get_module = jedi.evaluate.compiled.fake.get_module +- +- def patched_jedi_get_module(obj): +- "Work around a weird bug in jedi" +- try: +- return original_jedi_get_module(obj) +- except ImportError as e: +- if e.msg == "No module named 'gi._gobject._gobject'": +- return original_jedi_get_module('gi._gobject') ++ try: ++ # Pre 0.12 workaround ++ # TODO: What needs to be fixed here for 0.12? ++ original_jedi_get_module = jedi.evaluate.compiled.fake.get_module ++ def patched_jedi_get_module(obj): ++ "Work around a weird bug in jedi" ++ try: ++ return original_jedi_get_module(obj) ++ except ImportError as e: ++ if e.msg == "No module named 'gi._gobject._gobject'": ++ return original_jedi_get_module('gi._gobject') ++ jedi.evaluate.compiled.fake.get_module = patched_jedi_get_module ++ except: ++ pass + +- jedi.evaluate.compiled.fake.get_module = patched_jedi_get_module + jedi.evaluate.compiled.CompiledObject = PatchedJediCompiledObject +- jedi.evaluate.instance.CompiledBoundMethod = PatchedCompiledBoundMethod ++ try: ++ jedi.evaluate.instance.CompiledBoundMethod = PatchedCompiledBoundMethod ++ except AttributeError: ++ jedi.evaluate.context.instance.CompiledBoundMethod = PatchedCompiledBoundMethod + jedi.evaluate.imports.Importer = PatchedJediImporter + HAS_JEDI = True +-except ImportError: ++except ImportError as ex: + print("jedi not found, python auto-completion not possible.") ++ print(ex) + HAS_JEDI = False + + GIR_PATH_LIST = [] +@@ -376,7 +390,7 @@ class JediCompletionProvider(Ide.Object, GtkSource.CompletionProvider, Ide.Compl + return False + + def do_populate(self, context): +- self.current_word = Ide.CompletionProvider.context_current_word(context) ++ self.current_word = Ide.CompletionProvider.context_current_word(context) or '' + self.current_word_lower = self.current_word.lower() + + _, iter = context.get_iter() +-- +2.17.0 + |