Commit b98dcc1f authored by Raymond Hettinger's avatar Raymond Hettinger

Issue #15535: Fix pickling of named tuples.

parent 8e596a76
...@@ -281,6 +281,10 @@ class {typename}(tuple): ...@@ -281,6 +281,10 @@ class {typename}(tuple):
'Return self as a plain tuple. Used by copy and pickle.' 'Return self as a plain tuple. Used by copy and pickle.'
return tuple(self) return tuple(self)
def __getstate__(self):
'Exclude the OrderedDict from pickling'
return None
{field_defs} {field_defs}
''' '''
......
...@@ -273,6 +273,7 @@ class TestNamedTuple(unittest.TestCase): ...@@ -273,6 +273,7 @@ class TestNamedTuple(unittest.TestCase):
q = loads(dumps(p, protocol)) q = loads(dumps(p, protocol))
self.assertEqual(p, q) self.assertEqual(p, q)
self.assertEqual(p._fields, q._fields) self.assertEqual(p._fields, q._fields)
self.assertNotIn(b'OrderedDict', dumps(p, protocol))
def test_copy(self): def test_copy(self):
p = TestNT(x=10, y=20, z=30) p = TestNT(x=10, y=20, z=30)
......
...@@ -811,6 +811,7 @@ Trent Mick ...@@ -811,6 +811,7 @@ Trent Mick
Jason Michalski Jason Michalski
Franck Michea Franck Michea
Tom Middleton Tom Middleton
Thomas Miedema
Stan Mihai Stan Mihai
Stefan Mihaila Stefan Mihaila
Aristotelis Mikropoulos Aristotelis Mikropoulos
......
...@@ -47,6 +47,9 @@ Library ...@@ -47,6 +47,9 @@ Library
- Issue #17802: Fix an UnboundLocalError in html.parser. Initial tests by - Issue #17802: Fix an UnboundLocalError in html.parser. Initial tests by
Thomas Barlow. Thomas Barlow.
- Issue #15535: Fix namedtuple pickles which were picking up the OrderedDict
instead of just the underlying tuple.
- Issue #17192: Restore the patch for Issue #11729 which was ommitted in - Issue #17192: Restore the patch for Issue #11729 which was ommitted in
3.3.1 when updating the bundled version of libffi used by ctypes. Update 3.3.1 when updating the bundled version of libffi used by ctypes. Update
many libffi files that were missed in 3.3.1's update to libffi-3.0.13. many libffi files that were missed in 3.3.1's update to libffi-3.0.13.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment