mirror of
https://github.com/python/cpython.git
synced 2025-10-09 08:31:26 +00:00
cPickle.c, load_build(): Taught cPickle how to pick apart
the optional proto 2 slot state. pickle.py, load_build(): CAUTION: Noted that cPickle's load_build and pickle's load_build really don't do the same things with the state, and didn't before this patch either. cPickle never tries to do .update(), and has no backoff if instance.__dict__ can't be retrieved. There are no tests that can tell the difference, and part of what cPickle's load_build() did looked accidental to me, so I don't know what the true intent is here. pickletester.py, test_pickle.py: Got rid of the hack for exempting cPickle from running some of the proto 2 tests. dictobject.c, PyDict_Next(): documented intended use.
This commit is contained in:
parent
d2c684f79f
commit
080c88b912
5 changed files with 90 additions and 32 deletions
|
@ -728,12 +728,6 @@ class AbstractPickleTests(unittest.TestCase):
|
|||
self.assertEqual(y.abc, 666)
|
||||
self.assertEqual(x.__dict__, y.__dict__)
|
||||
|
||||
# XXX Temporary hack, so long as the C implementation of pickle protocol
|
||||
# XXX 2 isn't ready. When it is, move the methods in TempAbstractPickleTests
|
||||
# XXX into AbstractPickleTests above, and get rid of TempAbstractPickleTests
|
||||
# XXX along with the references to it in test_pickle.py.
|
||||
class TempAbstractPickleTests(unittest.TestCase):
|
||||
|
||||
def test_newobj_list_slots(self):
|
||||
x = SlotList([1, 2, 3])
|
||||
x.foo = 42
|
||||
|
@ -745,6 +739,7 @@ class TempAbstractPickleTests(unittest.TestCase):
|
|||
self.assertEqual(x.foo, y.foo)
|
||||
self.assertEqual(x.bar, y.bar)
|
||||
|
||||
|
||||
class MyInt(int):
|
||||
sample = 1
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue