summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>2003-02-07 17:53:23 (GMT)
committerGuido van Rossum <guido@python.org>2003-02-07 17:53:23 (GMT)
commit1dca482dbdd42fc9a81cab1ae2f04471511c338d (patch)
treee2e900469c60acd0816a18967ce38970624c4384
parentc06e3acc735a6e9cf28d0f511493bcfd8829117d (diff)
downloadcpython-1dca482dbdd42fc9a81cab1ae2f04471511c338d.zip
cpython-1dca482dbdd42fc9a81cab1ae2f04471511c338d.tar.gz
cpython-1dca482dbdd42fc9a81cab1ae2f04471511c338d.tar.bz2
Somehow, copy() of a classic class object was handled
atomically, but deepcopy() didn't support this at all. I don't see any reason for this, so I'm adding ClassType to the set of types that are deep-copied atomically.
-rw-r--r--Lib/copy.py1
-rw-r--r--Lib/test/test_copy.py2
2 files changed, 2 insertions, 1 deletions
diff --git a/Lib/copy.py b/Lib/copy.py
index c1c0ec0..b57fa89 100644
--- a/Lib/copy.py
+++ b/Lib/copy.py
@@ -220,6 +220,7 @@ except AttributeError:
pass
d[types.TypeType] = _deepcopy_atomic
d[types.XRangeType] = _deepcopy_atomic
+d[types.ClassType] = _deepcopy_atomic
def _deepcopy_list(x, memo):
y = []
diff --git a/Lib/test/test_copy.py b/Lib/test/test_copy.py
index 35ce46a..6a31f75 100644
--- a/Lib/test/test_copy.py
+++ b/Lib/test/test_copy.py
@@ -239,7 +239,7 @@ class TestCopy(unittest.TestCase):
pass
tests = [None, 42, 2L**100, 3.14, True, False, 1j,
"hello", u"hello\u1234", f.func_code,
- NewStyle, xrange(10)]
+ NewStyle, xrange(10), Classic]
for x in tests:
self.assert_(copy.deepcopy(x) is x, `x`)