cpython: bb71baa28f1b (original) (raw)
Mercurial > cpython
changeset 87684:bb71baa28f1b
Issue #19754: Make pickletools.optimize respect the frame size target. [#19754]
Alexandre Vassalotti alexandre@peadrop.com | |
---|---|
date | Sun, 01 Dec 2013 16:27:46 -0800 |
parents | 2df5e1f537b0 |
children | 9feada79a411 |
files | Lib/pickletools.py Lib/test/pickletester.py Lib/test/test_pickletools.py |
diffstat | 3 files changed, 2 insertions(+), 14 deletions(-)[+] [-] Lib/pickletools.py 1 Lib/test/pickletester.py 13 Lib/test/test_pickletools.py 2 |
line wrap: on
line diff
--- a/Lib/pickletools.py +++ b/Lib/pickletools.py @@ -2313,6 +2313,7 @@ def optimize(p): buf.start_framing() for start, stop, putid in opcodes: if putid in gets:
--- a/Lib/test/pickletester.py +++ b/Lib/test/pickletester.py @@ -1343,12 +1343,6 @@ class AbstractPickleTests(unittest.TestC pickled = self.dumps(obj, proto) unpickled = self.loads(pickled) self.assertEqual(obj, unpickled)
# Test the framing heuristic is sane,[](#l2.7)
# assuming a given frame size target.[](#l2.8)
if self.optimized:[](#l2.9)
# These assumptions are currently invalid for optimized[](#l2.10)
# pickles (see e.g. issue19754).[](#l2.11)
continue[](#l2.12) bytes_per_frame = (len(pickled) /[](#l2.13) count_opcode(pickle.FRAME, pickled))[](#l2.14) self.assertGreater(bytes_per_frame,[](#l2.15)
@@ -1365,12 +1359,7 @@ class AbstractPickleTests(unittest.TestC unpickled = self.loads(pickled) self.assertEqual(obj, unpickled) n_frames = count_opcode(pickle.FRAME, pickled)
if self.optimized:[](#l2.20)
# At least one frame was emitted (see issue19754).[](#l2.21)
self.assertGreaterEqual(n_frames, 1)[](#l2.22)
else:[](#l2.23)
# At least one frame was emitted per large bytes object.[](#l2.24)
self.assertGreaterEqual(n_frames, len(obj))[](#l2.25)
self.assertGreaterEqual(n_frames, len(obj))[](#l2.26)
def test_optional_frames(self): if pickle.HIGHEST_PROTOCOL < 4:
--- a/Lib/test/test_pickletools.py +++ b/Lib/test/test_pickletools.py @@ -6,8 +6,6 @@ from test.pickletester import AbstractPi class OptimizedPickleTests(AbstractPickleTests, AbstractPickleModuleTests):
- def dumps(self, arg, proto=None): return pickletools.optimize(pickle.dumps(arg, proto))