Mercurial > cpython-lru_cache-weakref
changeset 87684:bb71baa28f1b
Issue #19754: Make pickletools.optimize respect the frame size target.
| author | 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(-) [+] |
line wrap: on
line diff
--- a/Lib/pickletools.py Sun Dec 01 16:03:24 2013 -0800 +++ b/Lib/pickletools.py Sun Dec 01 16:27:46 2013 -0800 @@ -2313,6 +2313,7 @@ buf.start_framing() for start, stop, putid in opcodes: if putid in gets: + #buf.commit_frame() buf.write(p[start:stop]) if proto >= 4: buf.end_framing()
--- a/Lib/test/pickletester.py Sun Dec 01 16:03:24 2013 -0800 +++ b/Lib/test/pickletester.py Sun Dec 01 16:27:46 2013 -0800 @@ -1343,12 +1343,6 @@ pickled = self.dumps(obj, proto) unpickled = self.loads(pickled) self.assertEqual(obj, unpickled) - # Test the framing heuristic is sane, - # assuming a given frame size target. - if self.optimized: - # These assumptions are currently invalid for optimized - # pickles (see e.g. issue19754). - continue bytes_per_frame = (len(pickled) / count_opcode(pickle.FRAME, pickled)) self.assertGreater(bytes_per_frame, @@ -1365,12 +1359,7 @@ unpickled = self.loads(pickled) self.assertEqual(obj, unpickled) n_frames = count_opcode(pickle.FRAME, pickled) - if self.optimized: - # At least one frame was emitted (see issue19754). - self.assertGreaterEqual(n_frames, 1) - else: - # At least one frame was emitted per large bytes object. - self.assertGreaterEqual(n_frames, len(obj)) + self.assertGreaterEqual(n_frames, len(obj)) def test_optional_frames(self): if pickle.HIGHEST_PROTOCOL < 4:
--- a/Lib/test/test_pickletools.py Sun Dec 01 16:03:24 2013 -0800 +++ b/Lib/test/test_pickletools.py Sun Dec 01 16:27:46 2013 -0800 @@ -6,8 +6,6 @@ class OptimizedPickleTests(AbstractPickleTests, AbstractPickleModuleTests): - optimized = True - def dumps(self, arg, proto=None): return pickletools.optimize(pickle.dumps(arg, proto))
