- Update to 8.24.0:
* Improve inference from return type annotations in completer and the introduction of the optional target ipython[matplotlib] to explicitly request the matplotlib optional dependencies. * Move of the matplotlib backend handling from IPython to matplotlib. * pytest 8 compatibility. * typing-extension now needs 4.6 or newer. It was already the case, but not explicated. * Attempt to speed running code under debugger in some cases. - Add patch support-pytest-8.1.patch: * Support pytest >= 8.1 with the pytest plugin. OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:jupyter/python-ipython?expand=0&rev=129
This commit is contained in:
parent
74d9bc9984
commit
138ab35c4c
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:2dcaad9049f9056f1fef63514f176c7d41f930daa78d05b82a176202818f2c14
|
||||
size 5490399
|
3
ipython-8.24.0.tar.gz
Normal file
3
ipython-8.24.0.tar.gz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:010db3f8a728a578bb641fdd06c063b9fb8e96a9464c63aec6310fbcb5e80501
|
||||
size 5491819
|
@ -1,3 +1,18 @@
|
||||
-------------------------------------------------------------------
|
||||
Thu May 23 05:20:42 UTC 2024 - Steve Kowalik <steven.kowalik@suse.com>
|
||||
|
||||
- Update to 8.24.0:
|
||||
* Improve inference from return type annotations in completer and the
|
||||
introduction of the optional target ipython[matplotlib] to explicitly
|
||||
request the matplotlib optional dependencies.
|
||||
* Move of the matplotlib backend handling from IPython to matplotlib.
|
||||
* pytest 8 compatibility.
|
||||
* typing-extension now needs 4.6 or newer. It was already the case, but
|
||||
not explicated.
|
||||
* Attempt to speed running code under debugger in some cases.
|
||||
- Add patch support-pytest-8.1.patch:
|
||||
* Support pytest >= 8.1 with the pytest plugin.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Mar 29 17:16:13 UTC 2024 - Ben Greiner <code@bnavigator.de>
|
||||
|
||||
|
@ -35,14 +35,15 @@
|
||||
%define skip_python39 1
|
||||
%{?sle15_python_module_pythons}
|
||||
Name: python-ipython%{psuffix}
|
||||
Version: 8.22.2
|
||||
Version: 8.24.0
|
||||
Release: 0
|
||||
Summary: Rich architecture for interactive computing with Python
|
||||
License: BSD-3-Clause
|
||||
Group: Development/Languages/Python
|
||||
URL: https://github.com/ipython/ipython
|
||||
Source: https://files.pythonhosted.org/packages/source/i/ipython/ipython-%{version}.tar.gz
|
||||
Source1: https://raw.githubusercontent.com/jupyter/qtconsole/4.0.0/qtconsole/resources/icon/JupyterConsole.svg
|
||||
# PATCH-FIX-UPSTREAM gh#ipython/ipython#14441
|
||||
Patch0: support-pytest-8.1.patch
|
||||
BuildRequires: %{python_module base >= 3.10}
|
||||
BuildRequires: %{python_module pip}
|
||||
BuildRequires: %{python_module setuptools >= 61.2}
|
||||
@ -63,6 +64,9 @@ Requires: (python-prompt_toolkit >= 3.0.41 with python-prompt_toolkit < 3.
|
||||
%if %{python_version_nodots} < 311
|
||||
Requires: python-exceptiongroup
|
||||
%endif
|
||||
%if %{python_version_nodots} < 312
|
||||
Requires: python-typing_extensions >= 4.6
|
||||
%endif
|
||||
Recommends: jupyter
|
||||
Recommends: python-ipykernel
|
||||
Recommends: python-ipyparallel
|
||||
@ -85,12 +89,11 @@ Obsoletes: python-jupyter_ipython-doc-pdf < %{version}
|
||||
BuildArch: noarch
|
||||
%if %{with test}
|
||||
BuildRequires: %{python_module ipython = %{version}}
|
||||
BuildRequires: %{python_module matplotlib}
|
||||
BuildRequires: %{python_module numpy >= 1.23}
|
||||
BuildRequires: %{python_module pandas}
|
||||
BuildRequires: %{python_module pickleshare}
|
||||
BuildRequires: %{python_module pytest < 8}
|
||||
BuildRequires: %{python_module pytest-asyncio}
|
||||
BuildRequires: %{python_module pytest}
|
||||
BuildRequires: %{python_module testpath}
|
||||
BuildRequires: %{python_module trio}
|
||||
%endif
|
||||
|
125
support-pytest-8.1.patch
Normal file
125
support-pytest-8.1.patch
Normal file
@ -0,0 +1,125 @@
|
||||
From 7df70a3cd79068be6f98596e427d60a5d0cfe5b3 Mon Sep 17 00:00:00 2001
|
||||
From: Steve Kowalik <steven@wedontsleep.org>
|
||||
Date: Thu, 23 May 2024 13:00:43 +1000
|
||||
Subject: [PATCH] Support pytest 8.1+ changes in pytest plugin
|
||||
|
||||
Pytest 8.1 has also changed the plugin API, as well as required new
|
||||
keyword arguments. I've shifted the pytest version calculation to the
|
||||
module level so we can use it everywhere, and continue supporting all
|
||||
versions of pytest that we can.
|
||||
|
||||
Fixes #14390
|
||||
---
|
||||
IPython/testing/plugin/pytest_ipdoctest.py | 36 ++++++++++++++++------
|
||||
1 file changed, 26 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/IPython/testing/plugin/pytest_ipdoctest.py b/IPython/testing/plugin/pytest_ipdoctest.py
|
||||
index fc8af13b579..40a3ae92b40 100644
|
||||
--- a/IPython/testing/plugin/pytest_ipdoctest.py
|
||||
+++ b/IPython/testing/plugin/pytest_ipdoctest.py
|
||||
@@ -38,7 +38,11 @@
|
||||
from _pytest.compat import safe_getattr
|
||||
from _pytest.config import Config
|
||||
from _pytest.config.argparsing import Parser
|
||||
-from _pytest.fixtures import FixtureRequest
|
||||
+
|
||||
+try:
|
||||
+ from _pytest.fixtures import TopRequest as FixtureRequest
|
||||
+except ImportError:
|
||||
+ from _pytest.fixtures import FixtureRequest
|
||||
from _pytest.nodes import Collector
|
||||
from _pytest.outcomes import OutcomeException
|
||||
from _pytest.pathlib import fnmatch_ex, import_path
|
||||
@@ -69,6 +73,8 @@
|
||||
# Lazy definition of output checker class
|
||||
CHECKER_CLASS: Optional[Type["IPDoctestOutputChecker"]] = None
|
||||
|
||||
+pytest_version = tuple([int(part) for part in pytest.__version__.split(".")])
|
||||
+
|
||||
|
||||
def pytest_addoption(parser: Parser) -> None:
|
||||
parser.addini(
|
||||
@@ -143,7 +149,7 @@ def pytest_collect_file(
|
||||
return None
|
||||
|
||||
|
||||
-if int(pytest.__version__.split(".")[0]) < 7:
|
||||
+if pytest_version[0] < 7:
|
||||
_collect_file = pytest_collect_file
|
||||
|
||||
def pytest_collect_file(
|
||||
@@ -448,7 +454,7 @@ def reportinfo(self) -> Tuple[Union["os.PathLike[str]", str], Optional[int], str
|
||||
assert self.dtest is not None
|
||||
return self.path, self.dtest.lineno, "[ipdoctest] %s" % self.name
|
||||
|
||||
- if int(pytest.__version__.split(".")[0]) < 7:
|
||||
+ if pytest_version[0] < 7:
|
||||
|
||||
@property
|
||||
def path(self) -> Path:
|
||||
@@ -521,7 +527,7 @@ def collect(self) -> Iterable[IPDoctestItem]:
|
||||
self, name=test.name, runner=runner, dtest=test
|
||||
)
|
||||
|
||||
- if int(pytest.__version__.split(".")[0]) < 7:
|
||||
+ if pytest_version[0] < 7:
|
||||
|
||||
@property
|
||||
def path(self) -> Path:
|
||||
@@ -636,20 +642,26 @@ def _find(
|
||||
)
|
||||
|
||||
if self.path.name == "conftest.py":
|
||||
- if int(pytest.__version__.split(".")[0]) < 7:
|
||||
+ if pytest_version[0] < 7:
|
||||
module = self.config.pluginmanager._importconftest(
|
||||
self.path,
|
||||
self.config.getoption("importmode"),
|
||||
)
|
||||
else:
|
||||
+ kwargs = {"rootpath": self.config.rootpath}
|
||||
+ if pytest_version >= (8, 1):
|
||||
+ kwargs["consider_namespace_packages"] = False
|
||||
module = self.config.pluginmanager._importconftest(
|
||||
self.path,
|
||||
self.config.getoption("importmode"),
|
||||
- rootpath=self.config.rootpath,
|
||||
+ **kwargs,
|
||||
)
|
||||
else:
|
||||
try:
|
||||
- module = import_path(self.path, root=self.config.rootpath)
|
||||
+ kwargs = {"root": self.config.rootpath}
|
||||
+ if pytest_version >= (8, 1):
|
||||
+ kwargs["consider_namespace_packages"] = False
|
||||
+ module = import_path(self.path, **kwargs)
|
||||
except ImportError:
|
||||
if self.config.getvalue("ipdoctest_ignore_import_errors"):
|
||||
pytest.skip("unable to import module %r" % self.path)
|
||||
@@ -671,7 +683,7 @@ def _find(
|
||||
self, name=test.name, runner=runner, dtest=test
|
||||
)
|
||||
|
||||
- if int(pytest.__version__.split(".")[0]) < 7:
|
||||
+ if pytest_version[0] < 7:
|
||||
|
||||
@property
|
||||
def path(self) -> Path:
|
||||
@@ -701,11 +713,15 @@ def func() -> None:
|
||||
|
||||
doctest_item.funcargs = {} # type: ignore[attr-defined]
|
||||
fm = doctest_item.session._fixturemanager
|
||||
+ kwargs = {"node": doctest_item, "func": func, "cls": None}
|
||||
+ if pytest_version <= (8, 0):
|
||||
+ kwargs["funcargs"] = False
|
||||
doctest_item._fixtureinfo = fm.getfixtureinfo( # type: ignore[attr-defined]
|
||||
- node=doctest_item, func=func, cls=None, funcargs=False
|
||||
+ **kwargs
|
||||
)
|
||||
fixture_request = FixtureRequest(doctest_item, _ispytest=True)
|
||||
- fixture_request._fillfixtures()
|
||||
+ if pytest_version <= (8, 0):
|
||||
+ fixture_request._fillfixtures()
|
||||
return fixture_request
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user