Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 26 Jan 2021 10:33:13 +0000 (UTC)
From:      Ruslan Makhmatkhanov <rm@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r562650 - in head/devel/ipython: . files
Message-ID:  <202101261033.10QAXEwI054919@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: rm
Date: Tue Jan 26 10:33:13 2021
New Revision: 562650
URL: https://svnweb.freebsd.org/changeset/ports/562650

Log:
  devel/ipython: actually unbreak autocompletion
  
  Remove broader patch added earlier - it still doesn't completely
  solve the problem.
  Instead add tiny patch to fix runtime with jedi 0.18 and add missing
  imports with second patch. Works just well with my tests.
  Both patches should be removed after next ipython release.
  
  PR:		252875
  Reported by:	rsmith@xs4all.nl
  Approved by:	python (with hat)

Added:
  head/devel/ipython/files/patch-IPython_core_completer.py   (contents, props changed)
  head/devel/ipython/files/patch-IPython_terminal_ptutils.py   (contents, props changed)
Deleted:
  head/devel/ipython/files/patch-autocompletion-fix
Modified:
  head/devel/ipython/Makefile

Modified: head/devel/ipython/Makefile
==============================================================================
--- head/devel/ipython/Makefile	Tue Jan 26 10:19:02 2021	(r562649)
+++ head/devel/ipython/Makefile	Tue Jan 26 10:33:13 2021	(r562650)
@@ -3,7 +3,7 @@
 
 PORTNAME=	ipython
 PORTVERSION=	7.19.0
-PORTREVISION=	2
+PORTREVISION=	3
 CATEGORIES=	devel python
 MASTER_SITES=	CHEESESHOP
 PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}

Added: head/devel/ipython/files/patch-IPython_core_completer.py
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/devel/ipython/files/patch-IPython_core_completer.py	Tue Jan 26 10:33:13 2021	(r562650)
@@ -0,0 +1,41 @@
+--- IPython/core/completer.py.orig	2020-10-30 18:09:09 UTC
++++ IPython/core/completer.py
+@@ -988,8 +988,18 @@ def _make_signature(completion)-> str:
+ 
+     """
+ 
+-    return '(%s)'% ', '.join([f for f in (_formatparamchildren(p) for p in completion.params) if f])
++    # it looks like this might work on jedi 0.17
++    if hasattr(completion, 'get_signatures'):
++        signatures = completion.get_signatures()
++        if not signatures:
++            return  '(?)'
+ 
++        c0 = completion.get_signatures()[0]
++        return '('+c0.to_string().split('(', maxsplit=1)[1]
++
++    return '(%s)'% ', '.join([f for f in (_formatparamchildren(p) for signature in completion.get_signatures()
++                                          for p in signature.defined_names()) if f])
++
+ class IPCompleter(Completer):
+     """Extension of the completer class with IPython-specific features"""
+ 
+@@ -1370,8 +1380,7 @@ class IPCompleter(Completer):
+                 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:
+@@ -1398,7 +1407,7 @@ class IPCompleter(Completer):
+         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))]

Added: head/devel/ipython/files/patch-IPython_terminal_ptutils.py
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/devel/ipython/files/patch-IPython_terminal_ptutils.py	Tue Jan 26 10:33:13 2021	(r562650)
@@ -0,0 +1,11 @@
+--- IPython/terminal/ptutils.py.orig	2020-10-30 18:09:09 UTC
++++ IPython/terminal/ptutils.py
+@@ -20,6 +20,8 @@ from prompt_toolkit.patch_stdout import patch_stdout
+ 
+ import pygments.lexers as pygments_lexers
+ import os
++import sys
++import traceback
+ 
+ _completion_sentinel = object()
+ 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202101261033.10QAXEwI054919>