Matej Cepl
316cdfdd38
- Update to 8.0.0: - Minimum supported traitlets version if now 5+ - we now require stack_data - Minimal Python is now 3.8 - pytest replaces nose. - iptest/iptest3 cli entrypoints do not exists anymore. - minimum officially support numpy version has been bumped, but this should not have much effect on packaging. - Backport some fixes for Python 3.10 (PR #13412) - use full-alpha transparency on dvipng rendered LaTeX (PR #13372) - Traceback improvements - Autosuggestons - Show pinfo information in ipdb using “?” and “??” - Autoreload 3 feature - Auto formatting with black in the CLI - History Range Glob feature - Don’t start a multi line cell with sunken parenthesis - IPython shell for ipdb interact - Automatic Vi prompt stripping - Empty History Ranges - Windows time-implementation: Switch to process_time - Re-added support for XDG config directories - Add skip-network-test.patch to skip (gh#ipython/ipython#13468). OBS-URL: https://build.opensuse.org/request/show/946628 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:jupyter/python-ipython?expand=0&rev=76
110 lines
3.8 KiB
Diff
110 lines
3.8 KiB
Diff
From fc57ec912eec9da4c33d8db5416fdb2dada706e7 Mon Sep 17 00:00:00 2001
|
|
From: Nikita Kniazev <nok.raven@gmail.com>
|
|
Date: Mon, 1 Nov 2021 19:09:58 +0300
|
|
Subject: [PATCH 1/5] Handle changed exception type from inspect.getabsfile
|
|
(bpo-44648)
|
|
|
|
https://bugs.python.org/issue44648 (Python 3.10+)
|
|
---
|
|
IPython/core/oinspect.py | 4 ++--
|
|
IPython/core/tests/test_completer.py | 20 +++++++++++++++-----
|
|
IPython/lib/tests/test_pretty.py | 1 -
|
|
3 files changed, 17 insertions(+), 8 deletions(-)
|
|
|
|
--- a/IPython/core/oinspect.py
|
|
+++ b/IPython/core/oinspect.py
|
|
@@ -224,7 +224,7 @@ def format_argspec(argspec):
|
|
|
|
DEPRECATED (since 7.10): Do not use; will be removed in future versions.
|
|
"""
|
|
-
|
|
+
|
|
warnings.warn('`format_argspec` function is deprecated as of IPython 7.10'
|
|
'and will be removed in future versions.', DeprecationWarning, stacklevel=2)
|
|
|
|
@@ -309,7 +309,7 @@ def find_file(obj) -> str:
|
|
fname = None
|
|
try:
|
|
fname = inspect.getabsfile(obj)
|
|
- except TypeError:
|
|
+ except (OSError, TypeError):
|
|
# For an instance, the file that matters is where its class was
|
|
# declared.
|
|
try:
|
|
--- a/IPython/core/tests/test_completer.py
|
|
+++ b/IPython/core/tests/test_completer.py
|
|
@@ -26,6 +26,15 @@ from IPython.core.completer import (
|
|
_deduplicate_completions,
|
|
)
|
|
|
|
+if sys.version_info >= (3, 10):
|
|
+ import jedi
|
|
+ from pkg_resources import parse_version
|
|
+
|
|
+ # Requires https://github.com/davidhalter/jedi/pull/1795
|
|
+ jedi_issue = parse_version(jedi.__version__) <= parse_version("0.18.0")
|
|
+else:
|
|
+ jedi_issue = False
|
|
+
|
|
# -----------------------------------------------------------------------------
|
|
# Test functions
|
|
# -----------------------------------------------------------------------------
|
|
@@ -94,7 +103,7 @@ def test_unicode_range():
|
|
"""
|
|
assert len_exp == len_test, message
|
|
|
|
- # fail if new unicode symbols have been added.
|
|
+ # fail if new unicode symbols have been added.
|
|
assert len_exp <= 138552, message
|
|
|
|
|
|
@@ -475,6 +484,7 @@ class TestCompleter(unittest.TestCase):
|
|
"encoding" in c.signature
|
|
), "Signature of function was not found by completer"
|
|
|
|
+ @pytest.mark.xfail(jedi_issue, reason="Known failure on jedi<=0.18.0")
|
|
def test_deduplicate_completions(self):
|
|
"""
|
|
Test that completions are correctly deduplicated (even if ranges are not the same)
|
|
@@ -500,10 +510,10 @@ class TestCompleter(unittest.TestCase):
|
|
|
|
def test_greedy_completions(self):
|
|
"""
|
|
- Test the capability of the Greedy completer.
|
|
+ Test the capability of the Greedy completer.
|
|
|
|
Most of the test here does not really show off the greedy completer, for proof
|
|
- each of the text below now pass with Jedi. The greedy completer is capable of more.
|
|
+ each of the text below now pass with Jedi. The greedy completer is capable of more.
|
|
|
|
See the :any:`test_dict_key_completion_contexts`
|
|
|
|
@@ -611,7 +621,7 @@ class TestCompleter(unittest.TestCase):
|
|
|
|
def test_limit_to__all__False_ok(self):
|
|
"""
|
|
- Limit to all is deprecated, once we remove it this test can go away.
|
|
+ Limit to all is deprecated, once we remove it this test can go away.
|
|
"""
|
|
ip = get_ipython()
|
|
c = ip.Completer
|
|
@@ -838,7 +848,7 @@ class TestCompleter(unittest.TestCase):
|
|
does return what expected, and does not crash.
|
|
"""
|
|
delims = " \t\n`!@#$^&*()=+[{]}\\|;:'\",<>?"
|
|
-
|
|
+
|
|
keys = [("foo", "bar"), ("foo", "oof"), ("foo", b"bar"), ('other', 'test')]
|
|
|
|
# Completion on first key == "foo"
|
|
--- a/IPython/lib/tests/test_pretty.py
|
|
+++ b/IPython/lib/tests/test_pretty.py
|
|
@@ -7,7 +7,6 @@
|
|
|
|
from collections import Counter, defaultdict, deque, OrderedDict, UserList
|
|
import os
|
|
-import pytest
|
|
import types
|
|
import string
|
|
import sys
|