[issue42189] copy.deepcopy() no longer works on platform.uname_result objects
Robert O'Callahan
report at bugs.python.org
Wed Oct 28 21:53:35 EDT 2020
New submission from Robert O'Callahan <rocallahan at gmail.com>:
Starting from Python 3.9, copy.deepcopy can't copy a platform.uname_result object.
```
Python 3.9.0 (default, Oct 6 2020, 00:00:00)
[GCC 10.2.1 20200826 (Red Hat 10.2.1-3)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import platform
>>> import copy
>>> u = platform.uname()
>>> print(u)
uname_result(system='Linux', node='localhost.localdomain', release='5.8.16-300.fc33.x86_64', version='#1 SMP Mon Oct 19 13:18:33 UTC 2020', machine='x86_64')
>>> v = copy.deepcopy(u)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib64/python3.9/copy.py", line 172, in deepcopy
y = _reconstruct(x, memo, *rv)
File "/usr/lib64/python3.9/copy.py", line 264, in _reconstruct
y = func(*args)
File "/usr/lib64/python3.9/copyreg.py", line 91, in __newobj__
return cls.__new__(cls, *args)
TypeError: <lambda>() takes 6 positional arguments but 7 were given
```
Looks similar to issue 42163 but I guess it might need to be fixed differently.
This has broken building Intel's Xed library, which uses a Python-based build system: https://github.com/intelxed/mbuild
----------
components: Library (Lib)
messages: 379853
nosy: rocallahan
priority: normal
severity: normal
status: open
title: copy.deepcopy() no longer works on platform.uname_result objects
type: behavior
versions: Python 3.10, Python 3.9
_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue42189>
_______________________________________
More information about the Python-bugs-list
mailing list