https://github.com/python/cpython/commit/7c66906802cd8534b05264bd47acf9eb9db6d09e
commit: 7c66906802cd8534b05264bd47acf9eb9db6d09e
branch: main
author: Max Muoto <[email protected]>
committer: kumaraditya303 <[email protected]>
date: 2024-07-03T20:33:56+05:30
summary:
gh-121300: Add `replace` to `copy.__all__` (#121302)
files:
M Lib/copy.py
M Lib/test/test_copy.py
diff --git a/Lib/copy.py b/Lib/copy.py
index 7a1907d75494d7..a79976d3a658f0 100644
--- a/Lib/copy.py
+++ b/Lib/copy.py
@@ -4,8 +4,9 @@
import copy
- x = copy.copy(y) # make a shallow copy of y
- x = copy.deepcopy(y) # make a deep copy of y
+ x = copy.copy(y) # make a shallow copy of y
+ x = copy.deepcopy(y) # make a deep copy of y
+ x = copy.replace(y, a=1, b=2) # new object with fields replaced, as
defined by `__replace__`
For module specific errors, copy.Error is raised.
@@ -56,7 +57,7 @@ class Error(Exception):
pass
error = Error # backward compatibility
-__all__ = ["Error", "copy", "deepcopy"]
+__all__ = ["Error", "copy", "deepcopy", "replace"]
def copy(x):
"""Shallow copy operation on arbitrary Python objects.
diff --git a/Lib/test/test_copy.py b/Lib/test/test_copy.py
index 89102373759ca0..3dec64cc9a2414 100644
--- a/Lib/test/test_copy.py
+++ b/Lib/test/test_copy.py
@@ -972,6 +972,10 @@ class C:
copy.replace(c, x=1, error=2)
+class MiscTestCase(unittest.TestCase):
+ def test__all__(self):
+ support.check__all__(self, copy, not_exported={"dispatch_table",
"error"})
+
def global_foo(x, y): return x+y
_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-checkins.python.org/
Member address: [email protected]