diff --git a/.travis.yml b/.travis.yml index 488973a0..29c081aa 100644 --- a/.travis.yml +++ b/.travis.yml @@ -27,7 +27,7 @@ install: travis_retry pip install jupyter ipyparallel fi; - - travis_retry pip install coveralls jedi==0.9 + - travis_retry pip install coveralls jedi - travis_retry python setup.py install - cd metakernel_python - python setup.py install diff --git a/metakernel/magics/python_magic.py b/metakernel/magics/python_magic.py index f4cb1a62..5068f3fc 100644 --- a/metakernel/magics/python_magic.py +++ b/metakernel/magics/python_magic.py @@ -7,8 +7,8 @@ try: import jedi from jedi import Interpreter - from jedi.api.helpers import completion_parts - from jedi.parser.user_context import UserContext + from jedi.api.helpers import get_on_completion_name + from jedi import common except ImportError: jedi = None @@ -133,17 +133,21 @@ def get_completions(self, info): return [] text = info['code'] - interpreter = Interpreter(text, [self.env]) - position = (info['line_num'], info['column']) - path = UserContext(text, position).get_path_until_cursor() - path, dot, like = completion_parts(path) - before = text[:len(text) - len(like)] + interpreter = Interpreter(text, [self.env]) + lines = common.splitlines(text) + name = get_on_completion_name( + interpreter._get_module_node(), + lines, + position + ) + before = text[:len(text) - len(name)] completions = interpreter.completions() - completions = [before + c.name_with_symbols for c in completions] + self.kernel.log.error(completions) + return [c[info['start']:] for c in completions] def get_help_on(self, info, level=0, none_on_fail=False):