Open
Description
Bug report
Bug description:
The following code works on py313 and below (this is a very cut-down version of some code in Matplotilb (matplotlib.path.Path
)) but hit the maximum recursion depth on main.
# Add a code block here, if required
import copy
class Test:
def __init__(self, a, b):
self.a = a
self.b = a
self._state = True
def __deepcopy__(self, memo=None):
p = copy.deepcopy(super(), memo)
p._state = False
return p
t = Test(1, 2)
t2 = copy.deepcopy(t)
I bisected this to #125781 and suspect the problem is that because it is returning a new object it is escaping the memoization and looping.
I'm happy to be told we should not be doing this fix it on the Matplotlib side, but I would like to be sure that this was an expected consequence of the change.
attn @serhiy-storchaka
CPython versions tested on:
3.14, CPython main branch
Operating systems tested on:
Linux
Metadata
Metadata
Assignees
Labels
Python modules in the Lib dirPython modules in the Lib dirAn unexpected behavior, bug, or errorAn unexpected behavior, bug, or error
Projects
Status
No status