[Checkins] [zopefoundation/BTrees] f1f88b: Failing tests for #2

GitHub noreply at github.com
Sun Feb 14 00:29:46 CET 2016


  Branch: refs/heads/master
  Home:   https://github.com/zopefoundation/BTrees
  Commit: f1f88b6ba689dc53c96cd076b23e2e4cf12cc2ab
      https://github.com/zopefoundation/BTrees/commit/f1f88b6ba689dc53c96cd076b23e2e4cf12cc2ab
  Author: Jason Madden <jamadden at gmail.com>
  Date:   2016-01-11 (Mon, 11 Jan 2016)

  Changed paths:
    M BTrees/tests/common.py

  Log Message:
  -----------
  Failing tests for #2


  Commit: 0718a45ebf455bb24df093fec93b2555ef282a7d
      https://github.com/zopefoundation/BTrees/commit/0718a45ebf455bb24df093fec93b2555ef282a7d
  Author: Jason Madden <jamadden at gmail.com>
  Date:   2016-01-12 (Tue, 12 Jan 2016)

  Changed paths:
    M BTrees/IFBTree.py
    M BTrees/IIBTree.py
    M BTrees/IOBTree.py
    M BTrees/LFBTree.py
    M BTrees/LLBTree.py
    M BTrees/LOBTree.py
    M BTrees/OIBTree.py
    M BTrees/OLBTree.py
    M BTrees/OOBTree.py
    M BTrees/_base.py
    M BTrees/fsBTree.py
    M BTrees/tests/common.py
    M CHANGES.rst
    M setup.py

  Log Message:
  -----------
  Use a Python __reduce__ method to make pickles match C.

On it's own, this breaks on protocols >= 2 (including Python 3 by
default) because the pickled object's class is required to match the
reduce output. One fix would be to change the pickle format to use a
custom constructor function, but then we'd have different pickle formats
in C and Python.

Rather than do that, we instead create a __class__ property for the
python implementation. This bypasses the protocol limitations. The
__class__ property wasn't assignable in the C implementation, so the
compatibility risk should be very small.

All the special pickle machinery is only defined in Python if needed.


  Commit: e23bd22133882e3805947131de0816318b537c86
      https://github.com/zopefoundation/BTrees/commit/e23bd22133882e3805947131de0816318b537c86
  Author: Jason Madden <jamadden at gmail.com>
  Date:   2016-01-13 (Wed, 13 Jan 2016)

  Changed paths:
    M BTrees/_base.py
    M BTrees/tests/common.py
    M CHANGES.rst

  Log Message:
  -----------
  Cleanups


  Commit: c9b88e6b19ed6da8beff85919e47d55398ae2e4d
      https://github.com/zopefoundation/BTrees/commit/c9b88e6b19ed6da8beff85919e47d55398ae2e4d
  Author: Jason Madden <jason+github at nextthought.com>
  Date:   2016-02-13 (Sat, 13 Feb 2016)

  Changed paths:
    M BTrees/IFBTree.py
    M BTrees/IIBTree.py
    M BTrees/IOBTree.py
    M BTrees/LFBTree.py
    M BTrees/LLBTree.py
    M BTrees/LOBTree.py
    M BTrees/OIBTree.py
    M BTrees/OLBTree.py
    M BTrees/OOBTree.py
    M BTrees/_base.py
    M BTrees/fsBTree.py
    M BTrees/tests/common.py
    M CHANGES.rst
    M setup.py

  Log Message:
  -----------
  Merge pull request #20 from NextThought/issue_2_pickle

Make Python objects pickle like C; unpickling empty BTrees in Python works. Fixes #19


Compare: https://github.com/zopefoundation/BTrees/compare/4193032d0d54...c9b88e6b19ed


More information about the checkins mailing list