commit:     404bee8d79dc272a718132e5c138a8be2bab968d
Author:     Gabi Falk <gabifalk <AT> gmx <DOT> com>
AuthorDate: Tue Dec 17 19:00:00 2024 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Thu Dec 19 23:58:59 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=404bee8d

dev-python/ipython: Backport upstream fix for python 3.13 regression

The regression was detected by ipython's own testsuite.

This part of the IPython code is expected to break again with python 3.14,
because the curframe_locals attribute was removed in the PR cpython#124369.
However, there are plans to restore this attribute for backward compatibility in
PR cpython#125951 before the CPython 3.14 release.

Url: https://github.com/ipython/ipython/pull/14598
Url: 
https://github.com/ipython/ipython/commit/c1e945b5bc8fb673109cf32c4f238f6d5e0f5149
Url: https://github.com/python/cpython/pull/124369
Url: https://github.com/python/cpython/pull/125951
Url: https://github.com/ipython/ipython/issues/14620
Closes: https://bugs.gentoo.org/946568
Signed-off-by: Gabi Falk <gabifalk <AT> gmx.com>
Closes: https://github.com/gentoo/gentoo/pull/39746
Signed-off-by: Sam James <sam <AT> gentoo.org>

 ...n-8.30.0-python3.13-debugger-pdb-curframe.patch | 30 ++++++++++++++++++++++
 ...thon-8.30.0.ebuild => ipython-8.30.0-r1.ebuild} |  2 ++
 2 files changed, 32 insertions(+)

diff --git 
a/dev-python/ipython/files/ipython-8.30.0-python3.13-debugger-pdb-curframe.patch
 
b/dev-python/ipython/files/ipython-8.30.0-python3.13-debugger-pdb-curframe.patch
new file mode 100644
index 000000000000..8e44fd3d0261
--- /dev/null
+++ 
b/dev-python/ipython/files/ipython-8.30.0-python3.13-debugger-pdb-curframe.patch
@@ -0,0 +1,30 @@
+FAILED IPython/core/tests/test_run.py::TestMagicRunPass::test_run_debug_twice 
- AttributeError: 'Pdb' object has no attribute 'curframe'. Did you mean: 
'botframe'?
+FAILED 
IPython/core/tests/test_run.py::TestMagicRunPass::test_run_debug_twice_with_breakpoint
 - AttributeError: 'Pdb' object has no attribute 'curframe'. Did you mean: 
'botframe'?
+https://bugs.gentoo.org/946568
+https://github.com/ipython/ipython/pull/14598
+https://github.com/ipython/ipython/commit/c1e945b5bc8fb673109cf32c4f238f6d5e0f5149.patch
+
+From c1e945b5bc8fb673109cf32c4f238f6d5e0f5149 Mon Sep 17 00:00:00 2001
+From: M Bussonnier <[email protected]>
+Date: Sun, 8 Dec 2024 11:37:11 +0100
+Subject: [PATCH] Fix pdb issues in Python 3.13.1
+
+For some reason it is not always set, it was/is a bug in IPython to not
+check.
+---
+ IPython/core/debugger.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/IPython/core/debugger.py b/IPython/core/debugger.py
+index 1f0d7b2fba..76c42e0230 100644
+--- a/IPython/core/debugger.py
++++ b/IPython/core/debugger.py
+@@ -550,7 +550,7 @@ def _get_frame_locals(self, frame):
+         So if frame is self.current_frame we instead return 
self.curframe_locals
+ 
+         """
+-        if frame is self.curframe:
++        if frame is getattr(self, "curframe", None):
+             return self.curframe_locals
+         else:
+             return frame.f_locals

diff --git a/dev-python/ipython/ipython-8.30.0.ebuild 
b/dev-python/ipython/ipython-8.30.0-r1.ebuild
similarity index 98%
rename from dev-python/ipython/ipython-8.30.0.ebuild
rename to dev-python/ipython/ipython-8.30.0-r1.ebuild
index b67d14eb4763..8cae90959a59 100644
--- a/dev-python/ipython/ipython-8.30.0.ebuild
+++ b/dev-python/ipython/ipython-8.30.0-r1.ebuild
@@ -81,6 +81,8 @@ PDEPEND="
        )
 "
 
+PATCHES=( "${FILESDIR}"/${P}-python3.13-debugger-pdb-curframe.patch ) # bug 
#946568
+
 python_prepare_all() {
        # Rename the test directory to reduce sys.path pollution
        # https://github.com/ipython/ipython/issues/12892

Reply via email to