A python port of https://github.com/pda/flexihash , aiming for 1:1 compatibility
Switch branches/tags
Nothing to show
Clone or download
Permalink
Failed to load latest commit information.
flexihash use empty string for searching, as strings and None aren't comparable Dec 13, 2017
.gitignore Initial commit Apr 30, 2013
.travis.yml py3 compat and a little file compaction Sep 3, 2017
LICENSE.txt port test suite May 11, 2013
README.md
setup.py py3 compat and a little file compaction Sep 3, 2017

README.md

python-flexihash

A python port of https://github.com/pda/flexihash , aiming for 1:1 compatibility

Usage Example

import flexihash

hash = flexihash.Flexihash()

# bulk add
hash.addTargets(['cache-1', 'cache-2', 'cache-3'])

# simple lookup
hash.lookup('object-a')  # "cache-1"
hash.lookup('object-b')  # "cache-2"

# add and remove
hash \
  .addTarget('cache-4') \
  .removeTarget('cache-1')

# lookup with next-best fallback (for redundant writes)
hash.lookupList('object', 2)  # ["cache-2", "cache-4"]

# remove cache-2, expect object to hash to cache-4
hash.removeTarget('cache-2')
hash.lookup('object')  # "cache-4"