From: Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> Date: Wed, 3 Jul 2024 15:28:57 +0000 (+0200) Subject: [3.13] gh-121300: Add `replace` to `copy.__all__` (GH-121302) (#121337) X-Git-Tag: v3.13.0b4~125 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=8799f0537b0b3c87280a3291f0efc5eb8047066a;p=thirdparty%2FPython%2Fcpython.git [3.13] gh-121300: Add `replace` to `copy.__all__` (GH-121302) (#121337) (cherry picked from commit 7c66906802cd8534b05264bd47acf9eb9db6d09e) Co-authored-by: Max Muoto --- diff --git a/Lib/copy.py b/Lib/copy.py index a69bc4e78c20..2a4606246aa9 100644 --- a/Lib/copy.py +++ b/Lib/copy.py @@ -4,8 +4,9 @@ Interface summary: 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 89102373759c..3dec64cc9a24 100644 --- a/Lib/test/test_copy.py +++ b/Lib/test/test_copy.py @@ -972,6 +972,10 @@ class TestReplace(unittest.TestCase): 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