- Quotient Filter:
- Add ability to get hashes from the filter either as a list, or as a generator
- Add quotient filter expand capability, auto and on request
- Add QuotientFilterError exception
- Add merge functionality
- Add retrieve hashes from the filter
- Add resize filter, automatically or programatically
- Add merging two filters into one
- Count-Min Sketch:
- Add
QuotientFilter
implementation; see issue #37 - Add
bitarray
implementation - Bitwise operations in lieu of modulo calculations
- Add
py.typed
files so that mypy will find type annotations - Drop support for python
3.6
and3.7
- Update Build System and update project metadata
- Better support for
resolve_path
in passed filenames - Remove Python 3.5 support
- Pylint inspired updates
- Bloom Filters:
- Fix for
ValueError
exception when usingestimate_elements()
when all bits are set
- Fix for
- Add Citation file
- Bloom Filters:
- Re-implemented the entire Bloom Filter data structure to reduce complexity and code duplication
- Removed un-unsed imports
- Removed unnecessary casts
- Pylint Requested Style Changes:
- Use python 3
super()
- Use python 3 classes
- Use python 3
- Remove use of temporary variables if possible and still clear
- All Probablistic Data Structures:
- Added ability to load each
frombytes()
- Updated underlying data structures of number based lists to be more space and time efficient; see Issue #60
- Added ability to load each
- Cuckoo Filters:
- Added
fingerprint_size_bits
property - Added
error_rate
property - Added ability to initialize based on error rate
- Added
- Simplified typing
- Ensure all
filepaths
can bestr
orPath
- Additional type hinting
- Improved format parsing and serialization; see PR#81. Thanks @KOLANICH
- Bloom Filters
- Added
export_to_hex
functionality for Bloom Filters on Disk - Export as C header (*.h) for Bloom Filters on Disk and Counting Bloom Filters
- Added
- Added support for more input types for exporting and loading of saved files
- Add ability to hash bytes along with strings
- Make all tests files individually executable from the CLI. Thanks @KOLANICH
- Added type hints
- Bloom Filter:
- Export as a C header (*.h)
- Count-Min Sketch
- Add join/merge functionality
- Moved testing to use
NamedTemporaryFile
for file based tests
- BACKWARD INCOMPATIBLE CHANGES
- NOTE: Breaks backwards compatibility with previously exported blooms, counting-blooms, cuckoo filter, or count-min-sketch files using the default hash!
- Update to the FNV_1a hash function
- Simplified the default hash to use a seed value
- Ensure passing of depth to hashing function when using
hash_with_depth_int
orhash_with_depth_bytes
- Resolve issue 57 where false positive rate not stored / used the same in some instances
- Remove Python 2.7 support
- Fix
RotatingBloomFilter
to keep information on number of elements inserted when exported and loaded. see PR #50 Thanks @dvolker48
- Add additional slots
- Very minor improvement to the hashing algorithm
- Bloom Filters:
- Import/Export of Expanding and Rotating Bloom Filters
- Fix for importing standard Bloom Filters
- Bloom Filters:
- Addition of a Rotating Bloom Filter
- Bloom Filters:
- Addition of an Expanding Bloom Filter
- Use slots
- Drop support for python 3.3
- Ensure passing parameters correctly to parent classes
- Better parameter validation
- Cuckoo Filters:
- Support passing different hash function
- Support for different fingerprint size
- Utility to help generate valid hashing strategies using decorators
- hash_with_depth_bytes
- hash_with_depth_int
- Updated documentation
- Counting Cuckoo Filter
- Basic functionality: add, remove, check
- Expand
- Import / Export
- Fix and tests for utility functions
- Fix package build
- CuckooFilter
- Import / Export functionality
- Enforce single insertion per key
- Auto expand when insertion failure OR when called to do so (settable)
- Cuckoo Filter
- Added basic Cuckoo Filter code
- Counting Bloom Filter
- Estimate unique elements added
- Union
- Intersection
- Jaccard Index
- Counting Bloom Filter
- Fix counting bloom hex export / import
- Fix for overflow issue in counting bloom export
- Added ability to remove from counting bloom
- Count-Min Sketch
- Fix for not recording large numbers of inserts and deletions correctly
- Probabilistic data structures added:
- Counting Bloom Filter
- Minor code clean-up
- Re-factored Bloom Filters
- Better on-line documentation
- Changed access to some public functions
- Probabilistic data structures:
- Bloom Filter
- Bloom Filter (on disk)
- Count-Min Sketch
- Count-Mean Sketch
- Count-Mean-Min Sketch
- Heavy Hitters
- Stream Threshold
- Import and export of each