This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (pypi.python.org).
Help us improve Python packaging - Donate today!
Project Description

BTrees: scalable persistent components

This package contains a set of persistent object containers built around a modified BTree data structure. The trees are optimized for use inside ZODB’s “optimistic concurrency” paradigm, and include explicit resolution of conflicts detected by that mechanism.

Please see the Sphinx documentation for further information.

BTrees Changelog

4.4.1 (2017-01-24)

Fixed a packaging bug that caused extra files to be included (some of which caused problems in some platforms).

4.4.0 (2017-01-11)

  • Allow None as a special key (sorted smaller than all others).

    This is a bit of a return to BTrees 3 behavior in that Nones are allowed as keys again. Other objects with default ordering are still not allowed as keys.

4.3.2 (2017-01-05)

  • Make the CPython implementation consistent with the pure-Python implementation and only check object keys for default comparison when setting keys. In Python 2 this makes it possible to remove keys that were added using a less restrictive version of BTrees. (In Python 3 keys that are unorderable still cannot be removed.) Likewise, all versions can unpickle trees that already had such keys. See: https://github.com/zopefoundation/BTrees/issues/53 and https://github.com/zopefoundation/BTrees/issues/51

  • Make the Python implementation consistent with the CPython implementation and check object key identity before checking equality and performing comparisons. This can allow fixing trees that have keys that now have broken comparison functions. See https://github.com/zopefoundation/BTrees/issues/50

  • Make the CPython implementation consistent with the pure-Python implementation and no longer raise TypeError for an object key (in object-keyed trees) with default comparison on __getitem__, get or in operations. Instead, the results will be a KeyError, the default value, and False, respectively. Previously, CPython raised a TypeError in those cases, while the Python implementation behaved as specified.

    Likewise, non-integer keys in integer-keyed trees will raise KeyError, return the default and return False, respectively, in both implementations. Previously, pure-Python raised a KeyError, returned the default, and raised a TypeError, while CPython raised TypeError in all three cases.

4.3.1 (2016-05-16)

  • Packaging: fix password used to automate wheel creation on Travis.

4.3.0 (2016-05-10)

  • Fix unexpected OverflowError when passing 64bit values to long keys / values on Win64. See: https://github.com/zopefoundation/BTrees/issues/32
  • When testing PURE_PYTHON environments under tox, avoid poisoning the user’s global wheel cache.
  • Ensure that the pure-Python implementation, used on PyPy and when a C compiler isn’t available for CPython, pickles identically to the C version. Unpickling will choose the best available implementation. This change prevents interoperability problems and database corruption if both implementations are in use. While it is no longer possible to pickle a Python implementation and have it unpickle to the Python implementation if the C implementation is available, existing Python pickles will still unpickle to the Python implementation (until pickled again). See: https://github.com/zopefoundation/BTrees/issues/19
  • Avoid creating invalid objects when unpickling empty BTrees in a pure-Python environment.
  • Drop support for Python 2.6 and 3.2.

4.2.0 (2015-11-13)

  • Add support for Python 3.5.

4.1.4 (2015-06-02)

  • Ensure that pure-Python Bucket and Set objects have a human readable __repr__ like the C versions.

4.1.3 (2015-05-19)

4.1.2 (2015-04-07)

4.1.1 (2014-12-27)

  • Accomodate long values in pure-Python OLBTrees.

4.1.0 (2014-12-26)

  • Add support for PyPy and PyPy3.
  • Add support for Python 3.4.
  • BTree subclasses can define max_leaf_size or max_internal_size to control maximum sizes for Bucket/Set and BTree/TreeSet nodes.
  • Detect integer overflow on 32-bit machines correctly under Python 3.
  • Update pure-Python and C trees / sets to accept explicit None to indicate max / min value for minKey, maxKey. (PR #3)
  • Update pure-Python trees / sets to accept explicit None to indicate open ranges for keys, values, items. (PR #3)

4.0.8 (2013-05-25)

  • Fix value-based comparison for objects under Py3k: addresses invalid merges of [OLI]OBTrees/OBuckets.
  • Ensure that pure-Python implementation of OOBTree.byValue matches semantics (reversed-sort) of C implementation.

4.0.7 (2013-05-22)

  • Issue #2: compilation error on 32-bit mode of OS/X.
  • Test PURE_PYTHON environment variable support: if set, the C extensions will not be built, imported, or tested.

4.0.6 (2013-05-14)

  • Changed the ZODB extra to require only the real ZODB package, rather than the ZODB3 metapackage: depending on the version used, the metapackage could pull in stale versions of this package and persistent.
  • Fixed Python version check in setup.py.

4.0.5 (2013-01-15)

  • Fit the repr of bucket objects, which could contain garbage characters.

4.0.4 (2013-01-12)

  • Emulate the (private) iterators used by the C extension modules from pure Python. This change is “cosmetic” only: it prevents the ZCML zope.app.security:permission.zcml from failing. The emulated classes are not functional, and should be considered implementation details.
  • Accomodate buildout to the fact that we no longer bundle a copy of ‘persistent.h’.
  • Fix test failures on Windows: no longer rely on overflows from sys.maxint.

4.0.3 (2013-01-04)

  • Added setup_requires==['persistent'].

4.0.2 (2013-01-03)

  • Updated Trove classifiers.
  • Added explicit support for Python 3.2, Python 3.3, and PyPy. Note that the C extensions are not (yet) available on PyPy.
  • Python reference implementations now tested separately from the C verions on all platforms.
  • 100% unit test coverage.

4.0.1 (2012-10-21)

  • Provide local fallback for persistent C header inclusion if the persistent distribution isn’t installed. This makes the winbot happy.

4.0.0 (2012-10-20)

Platform Changes

  • Dropped support for Python < 2.6.
  • Factored BTrees as a separate distribution.

Testing Changes

  • All covered platforms tested under tox.
  • Added support for continuous integration using tox and jenkins.
  • Added setup.py dev alias (installs nose and coverage).
  • Dropped dependency on zope.testing / zope.testrunner: tests now run with setup.py test.

Documentation Changes

  • Added API reference, generated via Spinx’ autodoc.
  • Added Sphinx documentation based on ZODB Guide (snippets are exercised via ‘tox’).
  • Added setup.py docs alias (installs Sphinx and repoze.sphinx.autointerface).
Release History

Release History

4.4.1

This version

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

4.4.0

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

4.3.2

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

4.3.1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

4.3.0

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

4.2.0

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

4.1.4

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

4.1.3

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

4.1.2

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

4.1.1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

4.1.0

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

4.0.8

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

4.0.7

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

4.0.6

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

4.0.5

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

4.0.4

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

4.0.3

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

4.0.2

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

4.0.1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

4.0.0

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

Download Files

Download Files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
BTrees-4.4.1-cp27-cp27m-macosx_10_11_x86_64.whl (500.9 kB) Copy SHA256 Checksum SHA256 cp27 Wheel Jan 25, 2017
BTrees-4.4.1-cp27-cp27m-macosx_10_6_intel.whl (816.1 kB) Copy SHA256 Checksum SHA256 cp27 Wheel Apr 20, 2017
BTrees-4.4.1-cp27-cp27m-manylinux1_i686.whl (1.3 MB) Copy SHA256 Checksum SHA256 cp27 Wheel Apr 21, 2017
BTrees-4.4.1-cp27-cp27m-manylinux1_x86_64.whl (1.3 MB) Copy SHA256 Checksum SHA256 cp27 Wheel Apr 21, 2017
BTrees-4.4.1-cp27-cp27mu-manylinux1_i686.whl (1.3 MB) Copy SHA256 Checksum SHA256 cp27 Wheel Apr 21, 2017
BTrees-4.4.1-cp27-cp27mu-manylinux1_x86_64.whl (1.3 MB) Copy SHA256 Checksum SHA256 cp27 Wheel Apr 21, 2017
BTrees-4.4.1-cp27-cp27m-win32.whl (440.4 kB) Copy SHA256 Checksum SHA256 cp27 Wheel Apr 20, 2017
BTrees-4.4.1-cp27-cp27m-win_amd64.whl (495.4 kB) Copy SHA256 Checksum SHA256 cp27 Wheel Apr 20, 2017
BTrees-4.4.1-cp33-cp33m-manylinux1_i686.whl (1.3 MB) Copy SHA256 Checksum SHA256 cp33 Wheel Apr 21, 2017
BTrees-4.4.1-cp33-cp33m-manylinux1_x86_64.whl (1.3 MB) Copy SHA256 Checksum SHA256 cp33 Wheel Apr 21, 2017
BTrees-4.4.1-cp33-cp33m-win32.whl (448.7 kB) Copy SHA256 Checksum SHA256 cp33 Wheel Apr 20, 2017
BTrees-4.4.1-cp33-cp33m-win_amd64.whl (501.7 kB) Copy SHA256 Checksum SHA256 cp33 Wheel Apr 20, 2017
BTrees-4.4.1-cp34-cp34m-macosx_10_6_intel.whl (814.7 kB) Copy SHA256 Checksum SHA256 cp34 Wheel Jan 25, 2017
BTrees-4.4.1-cp34-cp34m-manylinux1_i686.whl (1.3 MB) Copy SHA256 Checksum SHA256 cp34 Wheel Apr 20, 2017
BTrees-4.4.1-cp34-cp34m-manylinux1_x86_64.whl (1.4 MB) Copy SHA256 Checksum SHA256 cp34 Wheel Apr 20, 2017
BTrees-4.4.1-cp34-cp34m-win32.whl (448.6 kB) Copy SHA256 Checksum SHA256 cp34 Wheel Apr 20, 2017
BTrees-4.4.1-cp34-cp34m-win_amd64.whl (500.9 kB) Copy SHA256 Checksum SHA256 cp34 Wheel Apr 20, 2017
BTrees-4.4.1-cp35-cp35m-macosx_10_6_intel.whl (816.7 kB) Copy SHA256 Checksum SHA256 cp35 Wheel Apr 20, 2017
BTrees-4.4.1-cp35-cp35m-manylinux1_i686.whl (1.3 MB) Copy SHA256 Checksum SHA256 cp35 Wheel Apr 20, 2017
BTrees-4.4.1-cp35-cp35m-manylinux1_x86_64.whl (1.4 MB) Copy SHA256 Checksum SHA256 cp35 Wheel Apr 20, 2017
BTrees-4.4.1-cp35-cp35m-win32.whl (453.3 kB) Copy SHA256 Checksum SHA256 cp35 Wheel Apr 20, 2017
BTrees-4.4.1-cp35-cp35m-win_amd64.whl (521.4 kB) Copy SHA256 Checksum SHA256 cp35 Wheel Apr 20, 2017
BTrees-4.4.1-cp36-cp36m-macosx_10_11_x86_64.whl (503.0 kB) Copy SHA256 Checksum SHA256 cp36 Wheel Jan 25, 2017
BTrees-4.4.1-cp36-cp36m-macosx_10_6_intel.whl (816.7 kB) Copy SHA256 Checksum SHA256 cp36 Wheel Apr 20, 2017
BTrees-4.4.1-cp36-cp36m-manylinux1_i686.whl (1.3 MB) Copy SHA256 Checksum SHA256 cp36 Wheel Apr 20, 2017
BTrees-4.4.1-cp36-cp36m-manylinux1_x86_64.whl (1.4 MB) Copy SHA256 Checksum SHA256 cp36 Wheel Apr 20, 2017
BTrees-4.4.1-cp36-cp36m-win32.whl (453.2 kB) Copy SHA256 Checksum SHA256 cp36 Wheel Apr 20, 2017
BTrees-4.4.1-cp36-cp36m-win_amd64.whl (521.4 kB) Copy SHA256 Checksum SHA256 cp36 Wheel Apr 20, 2017
BTrees-4.4.1-py2.7-win32.egg (582.6 kB) Copy SHA256 Checksum SHA256 2.7 Egg Jan 25, 2017
BTrees-4.4.1-py2.7-win-amd64.egg (637.8 kB) Copy SHA256 Checksum SHA256 2.7 Egg Jan 25, 2017
BTrees-4.4.1-py3.3-win32.egg (611.6 kB) Copy SHA256 Checksum SHA256 3.3 Egg Feb 15, 2017
BTrees-4.4.1-py3.3-win-amd64.egg (664.9 kB) Copy SHA256 Checksum SHA256 3.3 Egg Feb 15, 2017
BTrees-4.4.1-py3.4-win32.egg (604.2 kB) Copy SHA256 Checksum SHA256 3.4 Egg Jan 25, 2017
BTrees-4.4.1-py3.4-win-amd64.egg (656.6 kB) Copy SHA256 Checksum SHA256 3.4 Egg Jan 25, 2017
BTrees-4.4.1.tar.gz (166.2 kB) Copy SHA256 Checksum SHA256 Source Jan 24, 2017
BTrees-4.4.1.win32-py2.7.exe (640.9 kB) Copy SHA256 Checksum SHA256 2.7 Windows Installer Jan 25, 2017
BTrees-4.4.1.win32-py3.3.exe (644.0 kB) Copy SHA256 Checksum SHA256 3.3 Windows Installer Feb 15, 2017
BTrees-4.4.1.win32-py3.4.exe (643.8 kB) Copy SHA256 Checksum SHA256 3.4 Windows Installer Jan 25, 2017
BTrees-4.4.1.win-amd64-py2.7.exe (723.4 kB) Copy SHA256 Checksum SHA256 2.7 Windows Installer Jan 25, 2017
BTrees-4.4.1.win-amd64-py3.3.exe (728.1 kB) Copy SHA256 Checksum SHA256 3.3 Windows Installer Feb 15, 2017
BTrees-4.4.1.win-amd64-py3.4.exe (727.1 kB) Copy SHA256 Checksum SHA256 3.4 Windows Installer Jan 25, 2017

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting