Merged revisions 76571 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk ........ r76571 | antoine.pitrou | 2009-11-28 16:55:58 +0100 (sam., 28 nov. 2009) | 3 lines Issue #1515: Enable use of deepcopy() with instance methods. Patch by Robert Collins. ........
This commit is contained in:
parent
38478d8654
commit
1fc0d2b364
|
@ -238,6 +238,10 @@ d[dict] = _deepcopy_dict
|
||||||
if PyStringMap is not None:
|
if PyStringMap is not None:
|
||||||
d[PyStringMap] = _deepcopy_dict
|
d[PyStringMap] = _deepcopy_dict
|
||||||
|
|
||||||
|
def _deepcopy_method(x, memo): # Copy instance methods
|
||||||
|
return type(x)(x.__func__, deepcopy(x.__self__, memo))
|
||||||
|
_deepcopy_dispatch[types.MethodType] = _deepcopy_method
|
||||||
|
|
||||||
def _keep_alive(x, memo):
|
def _keep_alive(x, memo):
|
||||||
"""Keeps a reference to the object x in the memo.
|
"""Keeps a reference to the object x in the memo.
|
||||||
|
|
||||||
|
|
|
@ -677,6 +677,17 @@ class TestCopy(unittest.TestCase):
|
||||||
del d
|
del d
|
||||||
self.assertEqual(len(v), 1)
|
self.assertEqual(len(v), 1)
|
||||||
|
|
||||||
|
def test_deepcopy_bound_method(self):
|
||||||
|
class Foo(object):
|
||||||
|
def m(self):
|
||||||
|
pass
|
||||||
|
f = Foo()
|
||||||
|
f.b = f.m
|
||||||
|
g = copy.deepcopy(f)
|
||||||
|
self.assertEqual(g.m, g.b)
|
||||||
|
self.assertTrue(g.b.__self__ is g)
|
||||||
|
g.b()
|
||||||
|
|
||||||
|
|
||||||
def global_foo(x, y): return x+y
|
def global_foo(x, y): return x+y
|
||||||
|
|
||||||
|
|
|
@ -144,6 +144,7 @@ Josh Cogliati
|
||||||
Dave Cole
|
Dave Cole
|
||||||
Benjamin Collar
|
Benjamin Collar
|
||||||
Jeffery Collins
|
Jeffery Collins
|
||||||
|
Robert Collins
|
||||||
Paul Colomiets
|
Paul Colomiets
|
||||||
Matt Conway
|
Matt Conway
|
||||||
David M. Cooke
|
David M. Cooke
|
||||||
|
|
|
@ -140,6 +140,9 @@ C-API
|
||||||
Library
|
Library
|
||||||
-------
|
-------
|
||||||
|
|
||||||
|
- Issue #1515: Enable use of deepcopy() with instance methods. Patch by
|
||||||
|
Robert Collins.
|
||||||
|
|
||||||
- Issue #7403: logging: Fixed possible race condition in lock creation.
|
- Issue #7403: logging: Fixed possible race condition in lock creation.
|
||||||
|
|
||||||
- Issue #6845: Add restart support for binary upload in ftplib. The
|
- Issue #6845: Add restart support for binary upload in ftplib. The
|
||||||
|
|
Loading…
Reference in New Issue