Skip to content

Commit

Permalink
devel/ipython: add upstream fix
Browse files Browse the repository at this point in the history
Autocompletion is broken in ipython, that is currently in ports.
Add adopted upstream commit to resolve the issue.

Reference:
ipython/ipython#12740

With hat:	python
  • Loading branch information
mexicarne committed Jan 19, 2021
1 parent 9fb8f9c commit 9f12a5d
Show file tree
Hide file tree
Showing 2 changed files with 75 additions and 1 deletion.
2 changes: 1 addition & 1 deletion devel/ipython/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

PORTNAME= ipython
PORTVERSION= 7.19.0
PORTREVISION= 1
PORTREVISION= 2
CATEGORIES= devel python
MASTER_SITES= CHEESESHOP
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
Expand Down
74 changes: 74 additions & 0 deletions devel/ipython/files/patch-autocompletion-fix
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
From dcd9dc90aee7e4c5c52ce44c18e7518934790612 Mon Sep 17 00:00:00 2001
From: gorogoroumaru <force.minpiku@gmail.com>
Date: Fri, 10 Apr 2020 10:24:52 +0900
Subject: [PATCH] Fix DeprecationWarning on autocompletion with jedi 0.17.0

---
IPython/core/completer.py | 19 +++++++++----------
1 file changed, 9 insertions(+), 10 deletions(-)

diff --git a/IPython/core/completer.py b/IPython/core/completer.py
index 16fbb81f55..01730fff2d 100644
--- IPython/core/completer.py
+++ IPython/core/completer.py
@@ -110,26 +110,23 @@
# Copyright (C) 2001 Python Software Foundation, www.python.org


-import __main__
import builtins as builtin_mod
import glob
-import time
import inspect
import itertools
import keyword
import os
import re
+import string
import sys
+import time
import unicodedata
-import string
import warnings
-
from contextlib import contextmanager
from importlib import import_module
-from typing import Iterator, List, Tuple, Iterable
from types import SimpleNamespace
+from typing import Iterable, Iterator, List, Tuple

-from traitlets.config.configurable import Configurable
from IPython.core.error import TryNext
from IPython.core.inputtransformer2 import ESC_MAGIC
from IPython.core.latex_symbols import latex_symbols, reverse_latex_symbol
@@ -137,7 +134,10 @@
from IPython.utils import generics
from IPython.utils.dir2 import dir2, get_real_method
from IPython.utils.process import arg_split
-from traitlets import Bool, Enum, observe, Int
+from traitlets import Bool, Enum, Int, observe
+from traitlets.config.configurable import Configurable
+
+import __main__

# skip module docstests
skip_doctest = True
@@ -1380,8 +1380,7 @@ def _jedi_matches(self, cursor_column:int, cursor_line:int, text:str):
else:
raise ValueError("Don't understand self.omit__names == {}".format(self.omit__names))

- interpreter = jedi.Interpreter(
- text[:offset], namespaces, column=cursor_column, line=cursor_line + 1)
+ interpreter = jedi.Interpreter(text[:offset], namespaces)
try_jedi = True

try:
@@ -1408,7 +1407,7 @@ def _jedi_matches(self, cursor_column:int, cursor_line:int, text:str):
if not try_jedi:
return []
try:
- return filter(completion_filter, interpreter.completions())
+ return filter(completion_filter, interpreter.complete(column=cursor_column, line=cursor_line + 1))
except Exception as e:
if self.debug:
return [_FakeJediCompletion('Oops Jedi has crashed, please report a bug with the following:\n"""\n%s\ns"""' % (e))]

0 comments on commit 9f12a5d

Please sign in to comment.