- Use context manager on files to prevent ResourceWarning.
Bigdict.__init__
gets new parametermax_readers
with default 126.- Call
env.__enter__()
upon creation of a new Environment object. (Not sure this fixes anything, but low-level errors has been observed in corner cases.) - Finetuned the finalizer code, hoping to fix corner-case resource errors.
- More cleanup in
Bigdict.flush
. - New methods
as_readonly
. map_size_mb
default was increased from 64 to 1024.
get_buffer
commits in a read/write object if needed, so that user does not need to remember to commit after writes and before calling it.
- Fixed/improved
__len__
and__bool__
. - New method
get_buffer
. - New parameter
buffers
to methodsvalues
anditems
.
- Removed context manager; use multiprocessing.util.Finalize instead.
Significant refactor with simplifications, corrections, and enhancements.
- Complete redesign around the use of transactions. Do not use separate transactions for reading and writing.
- Added method
update
. - Do not call
destroy
in__del__
. - Removed parameter
keep_files
toBigdict.new
. - Added parameter
readonly
to__init__
, default toTrue
.
- Changed Python requirement to 3.10.
- Changed KeyType to
str
; changed (or fixed) methodsencode_key
,decode_key
, and_shard
. - Bumped "storage_version" to 2.
- Made
BigDict
subclassMutableMapping
andGeneric
; improved type annotations. - Remove support for
rocksdb
.
- New method
compact
. - Revised parameter handling regarding
map_size
. - Removed parameter
read_only
to__init__
.
- Add support for sharding via the parameter
shard_level
toBigdict.new
. - Change default
map_size
to 64 MB.
- Allow customizing
lmdb.Environment
config by additional args passed to__init__
andnew
.
Revoked. A new parameter introduced is revised in 0.2.5.
- Small bug fix.
- Method
setdefault
- Method
commit
- Method
rollback
- Fix pickle protocol for
encode_key
.
- Makes dependency on
rocksdb
optional.
Major refactor to move storage engine from RocksDB to LMDB. While the reading of old datasets is supported for a while, API will evolve (including some breaking changes) with the new storage engine.
- class
DictView
- method
clear
- method
reload
- Revert dependency from
lbry-rocksdb
back torocksdb
because the former does not provide build artifacts for python 3.10. - Change version schema away from datetime; yank the previous releases; prep to move away from rocksdb in upcoming releases.
- Change devel base image from
py3
topy3-build
, which contains Rocksdb dependencies.
This release changes versioning scheme from datetime-based to numeric and prepare to refactor in the future.
This release 0.1.0 is the same as the previous 22.5.29.
There are difficulties in the ordering or even the visibility of the version 0.1.0 and the older ones 22.5.29, 21.4.11, and 21.1.5 on Github. Since the older releases are not that important going forward, they are deleted. Their info remains in CHANGELOG.md.
- Changed dependency to
lbry-rocksdb
, which has more recent maintenance. - Bumped Python requirement from 3.7 to 3.8, because that is the version this is developed and tested on, although the code does not use any recent language features.
- Changed dependency from
python-rocksdb
torocksdb
, which provides a built package in a wheel, greately simplifying build and installation. - Bumped Python requirement from 3.6 to 3.7, because
rocksdb
provides wheels for 3.7-3.8 only. - Enforce all
mypy
andpylint
checks.
Initial release. Uploaded to Pypi.