Skip to main content

Scalable persistent object containers

Project description

BTrees: scalable persistent components

https://travis-ci.org/zopefoundation/BTrees.svg?branch=master https://ci.appveyor.com/api/projects/status/github/zopefoundation/BTrees?branch=master&svg=true

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.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).

Download files

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

Source Distribution

BTrees-4.4.0.tar.gz (237.7 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

BTrees-4.4.0.win-amd64-py3.4.exe (726.9 kB view details)

Uploaded Source

BTrees-4.4.0.win-amd64-py3.3.exe (727.9 kB view details)

Uploaded Source

BTrees-4.4.0.win-amd64-py2.7.exe (723.2 kB view details)

Uploaded Source

BTrees-4.4.0.win32-py3.4.exe (643.5 kB view details)

Uploaded Source

BTrees-4.4.0.win32-py3.3.exe (643.7 kB view details)

Uploaded Source

BTrees-4.4.0.win32-py2.7.exe (640.7 kB view details)

Uploaded Source

BTrees-4.4.0-py3.4-win-amd64.egg (656.4 kB view details)

Uploaded Egg

BTrees-4.4.0-py3.4-win32.egg (604.1 kB view details)

Uploaded Egg

BTrees-4.4.0-py3.3-win-amd64.egg (664.9 kB view details)

Uploaded Egg

BTrees-4.4.0-py3.3-win32.egg (611.6 kB view details)

Uploaded Egg

BTrees-4.4.0-py2.7-win-amd64.egg (637.7 kB view details)

Uploaded Egg

BTrees-4.4.0-py2.7-win32.egg (582.5 kB view details)

Uploaded Egg

BTrees-4.4.0-cp36-cp36m-macosx_10_11_x86_64.whl (502.9 kB view details)

Uploaded CPython 3.6mmacOS 10.11+ x86-64

BTrees-4.4.0-cp35-cp35m-win_amd64.whl (520.2 kB view details)

Uploaded CPython 3.5mWindows x86-64

BTrees-4.4.0-cp35-cp35m-win32.whl (452.0 kB view details)

Uploaded CPython 3.5mWindows x86

BTrees-4.4.0-cp34-cp34m-win_amd64.whl (499.6 kB view details)

Uploaded CPython 3.4mWindows x86-64

BTrees-4.4.0-cp34-cp34m-win32.whl (447.4 kB view details)

Uploaded CPython 3.4mWindows x86

BTrees-4.4.0-cp34-cp34m-macosx_10_6_intel.whl (814.6 kB view details)

Uploaded CPython 3.4mmacOS 10.6+ Intel (x86-64, i386)

BTrees-4.4.0-cp33-cp33m-win_amd64.whl (500.5 kB view details)

Uploaded CPython 3.3mWindows x86-64

BTrees-4.4.0-cp33-cp33m-win32.whl (447.6 kB view details)

Uploaded CPython 3.3mWindows x86

BTrees-4.4.0-cp27-cp27m-win_amd64.whl (494.2 kB view details)

Uploaded CPython 2.7mWindows x86-64

BTrees-4.4.0-cp27-cp27m-win32.whl (439.3 kB view details)

Uploaded CPython 2.7mWindows x86

BTrees-4.4.0-cp27-cp27m-macosx_10_11_x86_64.whl (500.8 kB view details)

Uploaded CPython 2.7mmacOS 10.11+ x86-64

File details

Details for the file BTrees-4.4.0.tar.gz.

File metadata

  • Download URL: BTrees-4.4.0.tar.gz
  • Upload date:
  • Size: 237.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for BTrees-4.4.0.tar.gz
Algorithm Hash digest
SHA256 198bea174a1e90693760531da31cf373856ae42c1e88c3a7c68cc8b4dce72004
MD5 4e6e3be0935c0d0a81a6fea300a91e3d
BLAKE2b-256 fb31d8b691e9b86235b124951af6906496b2080ef1b862097800ef97630cff5c

See more details on using hashes here.

File details

Details for the file BTrees-4.4.0.win-amd64-py3.4.exe.

File metadata

File hashes

Hashes for BTrees-4.4.0.win-amd64-py3.4.exe
Algorithm Hash digest
SHA256 7a93591440379c0d381e5169862f146a82cace8ff1331605cc7429042c6b44c0
MD5 62c39c770d6012acbb32c0a4792c61ea
BLAKE2b-256 589c1912704a48c634da31dd58d3368391f71263d1988fa099a2a9228eb76965

See more details on using hashes here.

File details

Details for the file BTrees-4.4.0.win-amd64-py3.3.exe.

File metadata

File hashes

Hashes for BTrees-4.4.0.win-amd64-py3.3.exe
Algorithm Hash digest
SHA256 2176d1dbdf21835ff3662da63f1ebe7c56bf5fb22dcc98553479c782ba9ade0b
MD5 4b3e788511d6ad1eef2490694411300d
BLAKE2b-256 cc29b4342dd5ae7bc3da52cc471ace760985025acee1bb503ea1905f95c3a251

See more details on using hashes here.

File details

Details for the file BTrees-4.4.0.win-amd64-py2.7.exe.

File metadata

File hashes

Hashes for BTrees-4.4.0.win-amd64-py2.7.exe
Algorithm Hash digest
SHA256 1fe0cabbad36730b8c1d04c1d6c90ed1c7f7187b96a411a48d80171b96cf9560
MD5 75bc0ba229002887d9ba97088c8432e3
BLAKE2b-256 0d84c96c1880f93a18f162c44680f9e9d6fd4197e10ccb95ddfbaf5e28d4447a

See more details on using hashes here.

File details

Details for the file BTrees-4.4.0.win32-py3.4.exe.

File metadata

File hashes

Hashes for BTrees-4.4.0.win32-py3.4.exe
Algorithm Hash digest
SHA256 4af9c69792258fd771bb16fb357daa2d8d6780a8e3fe83537b878c62ae210406
MD5 67f26427e775c309a493670f4f864ebf
BLAKE2b-256 336629c5a2dc30959661fc1b41238797ce6a651aed79be11e9059429f9810b4f

See more details on using hashes here.

File details

Details for the file BTrees-4.4.0.win32-py3.3.exe.

File metadata

File hashes

Hashes for BTrees-4.4.0.win32-py3.3.exe
Algorithm Hash digest
SHA256 2cced73c98964107d3765fa608575daacc4371bfdde4a499d0a780fa94a6a3bc
MD5 af0fea2dee812a336c78e1f1e6943350
BLAKE2b-256 56353ca73251e86d554ddb08319e6aa6139e58ab8445f4e994c8657ec764e9a1

See more details on using hashes here.

File details

Details for the file BTrees-4.4.0.win32-py2.7.exe.

File metadata

File hashes

Hashes for BTrees-4.4.0.win32-py2.7.exe
Algorithm Hash digest
SHA256 1722f3272fea5f121b23d947dec1ee40785d342e2ee70d54607bffd749de2bbd
MD5 f8f922573920ecb92a24084cf4724c72
BLAKE2b-256 243731e03661288bd24acc1878ccb66c6698851cbeec888e26e6f73d7f80fec3

See more details on using hashes here.

File details

Details for the file BTrees-4.4.0-py3.4-win-amd64.egg.

File metadata

File hashes

Hashes for BTrees-4.4.0-py3.4-win-amd64.egg
Algorithm Hash digest
SHA256 a84fec42c823857944f7ab858eb9d28bffd0329ace257e3479b9bb72743fc099
MD5 012285ef9fababa087e53dc400e16faf
BLAKE2b-256 46b234f9886bba90e6c794adbf391ce00aeb05aa88a9125d7203812c5b932d2b

See more details on using hashes here.

File details

Details for the file BTrees-4.4.0-py3.4-win32.egg.

File metadata

File hashes

Hashes for BTrees-4.4.0-py3.4-win32.egg
Algorithm Hash digest
SHA256 f68307c4f4b4380fe50eaf18f2cdfa8ebb617fd3efd3be57e7133953fe586e0c
MD5 9d79e75ad617db3a3d2b04e9730d5cde
BLAKE2b-256 3f0f221e22d7e3e6370a46713a26cd3c9dbb66e1e3e1b1fa4966b7088012c53b

See more details on using hashes here.

File details

Details for the file BTrees-4.4.0-py3.3-win-amd64.egg.

File metadata

File hashes

Hashes for BTrees-4.4.0-py3.3-win-amd64.egg
Algorithm Hash digest
SHA256 d47ed9fe41933d6b7f9d1bac981b40313fd23fc11fde1d6649888a732e8eb1c3
MD5 13e5f8c49f22ce6916f4267ad4b0234f
BLAKE2b-256 5ddbd343b31c51ce5ea0ff214c1fedf2fa493ad4cd82532feb95cc251d0f2ec1

See more details on using hashes here.

File details

Details for the file BTrees-4.4.0-py3.3-win32.egg.

File metadata

File hashes

Hashes for BTrees-4.4.0-py3.3-win32.egg
Algorithm Hash digest
SHA256 dfcc111aeb3654665babc8e0cc531c05e3d28367e9aeecdc233df3f84bdf041d
MD5 19292891b1ec1b8be60aa382489964c4
BLAKE2b-256 10c6043d219ec9de961ad2b85f67d1e1598428df5a657b49c37c4e17dda4bcba

See more details on using hashes here.

File details

Details for the file BTrees-4.4.0-py2.7-win-amd64.egg.

File metadata

File hashes

Hashes for BTrees-4.4.0-py2.7-win-amd64.egg
Algorithm Hash digest
SHA256 f58ef7b0e7be8e21ae60c3b4ca69e20ddae605ff3648a090f8e30baeba630d01
MD5 8be2b9710aca95783a3c4ec99aff40bd
BLAKE2b-256 9eac795ae8e0563aa128fe21b13908757993a6209819890e3bea6e8d5c3e612f

See more details on using hashes here.

File details

Details for the file BTrees-4.4.0-py2.7-win32.egg.

File metadata

File hashes

Hashes for BTrees-4.4.0-py2.7-win32.egg
Algorithm Hash digest
SHA256 a1847fd7b890e89d21a33ff33dd2d53364d8619d64cb6c6852eecae56d27cc4d
MD5 dc5a54dfaf9a0cb373a564871642274b
BLAKE2b-256 906c1a0f0611136784686e66bab04d153afc500e807ab8c4b63f5685fc4872bb

See more details on using hashes here.

File details

Details for the file BTrees-4.4.0-cp36-cp36m-macosx_10_11_x86_64.whl.

File metadata

File hashes

Hashes for BTrees-4.4.0-cp36-cp36m-macosx_10_11_x86_64.whl
Algorithm Hash digest
SHA256 2c3e99c770d3cbbbc264f8c5d2ee42da78faeb166cab8acf821f344cb26fda4a
MD5 001f2a9ff3e0e471d3623a6444e30b25
BLAKE2b-256 077bb622ae4968aaf07303d6f5e981aa5aeb9afd4f72e6944b097d87f3c54071

See more details on using hashes here.

File details

Details for the file BTrees-4.4.0-cp35-cp35m-win_amd64.whl.

File metadata

File hashes

Hashes for BTrees-4.4.0-cp35-cp35m-win_amd64.whl
Algorithm Hash digest
SHA256 61f09c3e2b4c6ec71e1d76807faf9ec1e8e75e5730d8bb08b59222b05528182a
MD5 8b124a629e04ca1a85155726254878fd
BLAKE2b-256 e77d13e742dc776a13025e6639c1683055506aed913ffde04f75ddcc49745d16

See more details on using hashes here.

File details

Details for the file BTrees-4.4.0-cp35-cp35m-win32.whl.

File metadata

File hashes

Hashes for BTrees-4.4.0-cp35-cp35m-win32.whl
Algorithm Hash digest
SHA256 6ef62210a35c23ad2b306788da4ed58833f5ca3671fe71313f2b1639007bbdc7
MD5 d76860741524fa22ff32ce100bf694e4
BLAKE2b-256 cbd91e6d7584c3024e9c408f538e2744c1c7dcbdfb5cf4b257906849470032f4

See more details on using hashes here.

File details

Details for the file BTrees-4.4.0-cp34-cp34m-win_amd64.whl.

File metadata

File hashes

Hashes for BTrees-4.4.0-cp34-cp34m-win_amd64.whl
Algorithm Hash digest
SHA256 f8e294162d06f3836693b3a5023be2e5b7b4a3adbe4f700c012b8c172eb4d8b6
MD5 ba231c4a02b21c79276d40cba95550d0
BLAKE2b-256 f313ad9b2f3b4bfb6ac305df5973c8342dc855c6bc0679e90f8f08886a02d9ec

See more details on using hashes here.

File details

Details for the file BTrees-4.4.0-cp34-cp34m-win32.whl.

File metadata

File hashes

Hashes for BTrees-4.4.0-cp34-cp34m-win32.whl
Algorithm Hash digest
SHA256 8f7449459f7cab3498d215fca8895031691fd29662c7212e330b889ffe92f2ae
MD5 c9c8116632f8bb1854354f4f944ab614
BLAKE2b-256 bed13cd151f11ead2cb67663ad834943bdc3cf9f6106b840090f87299ec36ff6

See more details on using hashes here.

File details

Details for the file BTrees-4.4.0-cp34-cp34m-macosx_10_6_intel.whl.

File metadata

File hashes

Hashes for BTrees-4.4.0-cp34-cp34m-macosx_10_6_intel.whl
Algorithm Hash digest
SHA256 41c7248ab6d6b774c55c3bf5023954b0dbbdd084138d8b29e289e4f36e84fb4c
MD5 d50cf08385e8c46d59a65d1ce6a3a0e2
BLAKE2b-256 5a19b2efe3a6b0771f2d2a4e5bd130f0bbe87f2f6ec933299b6fbf1a441953d7

See more details on using hashes here.

File details

Details for the file BTrees-4.4.0-cp33-cp33m-win_amd64.whl.

File metadata

File hashes

Hashes for BTrees-4.4.0-cp33-cp33m-win_amd64.whl
Algorithm Hash digest
SHA256 622268bdca84687e55753b769723d5c1b3981c8f61ffab10e46c298c3dbca45a
MD5 0f861dca359fff340800c14260f3fe47
BLAKE2b-256 035270bdd5aba736fedeaf0dab22c1262ee8cfa749263b39718ddf2da7d70f15

See more details on using hashes here.

File details

Details for the file BTrees-4.4.0-cp33-cp33m-win32.whl.

File metadata

File hashes

Hashes for BTrees-4.4.0-cp33-cp33m-win32.whl
Algorithm Hash digest
SHA256 968d246afb2d7c2e29561bfff37d3ae10c0a572defb87012ee9ae2e38be548d6
MD5 0ad746205b5fa8f220858b96b3166c98
BLAKE2b-256 ac8a2fc0fe17805bb6cfa02885db532e11e554cc5859670244659976faf54ee2

See more details on using hashes here.

File details

Details for the file BTrees-4.4.0-cp27-cp27m-win_amd64.whl.

File metadata

File hashes

Hashes for BTrees-4.4.0-cp27-cp27m-win_amd64.whl
Algorithm Hash digest
SHA256 ee7d09880cfd2a024e424489773ca54222b0186a4bdc621892672d9733ac5044
MD5 d01598ef1c152f48804933f3c12782be
BLAKE2b-256 d03927600db56a980d71e42415f2f3ae2f391c04b99fe7accdb200d3e5fd1eff

See more details on using hashes here.

File details

Details for the file BTrees-4.4.0-cp27-cp27m-win32.whl.

File metadata

File hashes

Hashes for BTrees-4.4.0-cp27-cp27m-win32.whl
Algorithm Hash digest
SHA256 b16503759d3917005b6478eb16cd38c0adafc8b184d8f57640ba55893844b0db
MD5 db36eb058ed3770626d3bc4f33ff9ca0
BLAKE2b-256 eefe9f0e0fe594a2cf16f40ad1dcd4bcf12229610dd99db7577a45f024833537

See more details on using hashes here.

File details

Details for the file BTrees-4.4.0-cp27-cp27m-macosx_10_11_x86_64.whl.

File metadata

File hashes

Hashes for BTrees-4.4.0-cp27-cp27m-macosx_10_11_x86_64.whl
Algorithm Hash digest
SHA256 90d7efb780fee15a44c55c3f16c51ecea0992f06ebea1bb261225a0a0ea19347
MD5 e3bd0394e9901fdf2b151adb79604b10
BLAKE2b-256 5a5c89d416e28b84d15ab2bbd6f79efd1e55de928bb3d0b7945fb1e78c65b5c4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page