{ "info": { "author": "jxub", "author_email": "jjanarek@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy" ], "description": "\ndm_pybloom\n=======\n\n.. image:: https://travis-ci.org/jaybaird/python-bloomfilter.svg?branch=master\n :target: https://travis-ci.org/jaybaird/python-bloomfilter\n\n``dm_pybloom`` is a module that includes a Bloom Filter data structure along with\nan implmentation of Scalable Bloom Filters as discussed in:\n\nP. Almeida, C.Baquero, N. Pregui\u00e7a, D. Hutchison, Scalable Bloom Filters,\n(GLOBECOM 2007), IEEE, 2007.\n\nBloom filters are great if you understand what amount of bits you need to set\naside early to store your entire set. Scalable Bloom Filters allow your bloom\nfilter bits to grow as a function of false positive probability and size.\n\nA filter is \"full\" when at capacity: M * ((ln 2 ^ 2) / abs(ln p)), where M\nis the number of bits and p is the false positive probability. When capacity\nis reached a new filter is then created exponentially larger than the last\nwith a tighter probability of false positives and a larger number of hash\nfunctions.\n\n.. code-block:: python\n\n >>> from dm_pybloom import BloomFilter\n >>> f = BloomFilter(capacity=1000, error_rate=0.001)\n >>> [f.add(x) for x in range(10)]\n [False, False, False, False, False, False, False, False, False, False]\n >>> all([(x in f) for x in range(10)])\n True\n >>> 10 in f\n False\n >>> 5 in f\n True\n >>> f = BloomFilter(capacity=1000, error_rate=0.001)\n >>> for i in xrange(0, f.capacity):\n ... _ = f.add(i)\n >>> (1.0 - (len(f) / float(f.capacity))) <= f.error_rate + 2e-18\n True\n\n >>> from dm_pybloom import ScalableBloomFilter\n >>> sbf = ScalableBloomFilter(mode=ScalableBloomFilter.SMALL_SET_GROWTH)\n >>> count = 10000\n >>> for i in xrange(0, count):\n ... _ = sbf.add(i)\n ...\n >>> (1.0 - (len(sbf) / float(count))) <= sbf.error_rate + 2e-18\n True\n\n # len(sbf) may not equal the entire input length. 0.01% error is well\n # below the default 0.1% error threshold. As the capacity goes up, the\n # error will approach 0.1%.\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/datamaranai/python-bloomfilter/", "keywords": "data structures,bloom filter,bloom,filter,probabilistic,set", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "dm-pybloom", "package_url": "https://pypi.org/project/dm-pybloom/", "platform": "any", "project_url": "https://pypi.org/project/dm-pybloom/", "project_urls": { "Homepage": "https://github.com/datamaranai/python-bloomfilter/" }, "release_url": "https://pypi.org/project/dm-pybloom/3.0.4/", "requires_dist": [ "bitarray (>=0.3.4)" ], "requires_python": "", "summary": "Datamaran's fork of Pybloom adapted to Python3", "version": "3.0.4" }, "last_serial": 3860641, "releases": { "3.0.2": [ { "comment_text": "", "digests": { "md5": "bbc8911494e80a62eb283797c6b6f708", "sha256": "fb31e529dc4dfa25bc1fff53fbadd1ef03933191c1e2d1e53d976abf86e300e9" }, "downloads": -1, "filename": "dm_pybloom-3.0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "bbc8911494e80a62eb283797c6b6f708", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10680, "upload_time": "2018-05-14T11:45:40", "url": "https://files.pythonhosted.org/packages/28/8b/72ca0e69e26628c9138b5a10ad2f44dd2c261743155c07840c1c62784467/dm_pybloom-3.0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f7a81377223c93d72c7faddd7363c671", "sha256": "bc7e1e1a25fb63fa172551771786e0263cdc03870e2d3b336bcd1487f1688b3e" }, "downloads": -1, "filename": "dm_pybloom-3.0.2.tar.gz", "has_sig": false, "md5_digest": "f7a81377223c93d72c7faddd7363c671", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9270, "upload_time": "2018-05-14T11:45:41", "url": "https://files.pythonhosted.org/packages/e0/b6/4f2461ce38eb890219407116dbe32b8db4727198c7259937d746e0ee5ff1/dm_pybloom-3.0.2.tar.gz" } ], "3.0.3": [ { "comment_text": "", "digests": { "md5": "6c38f11f8aadce946a6fc954595dab00", "sha256": "02513f34a47dd34d2eefada470f373ccddc0d6537bc530dccdab3769e0b1983e" }, "downloads": -1, "filename": "dm_pybloom-3.0.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6c38f11f8aadce946a6fc954595dab00", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10679, "upload_time": "2018-05-14T11:46:15", "url": "https://files.pythonhosted.org/packages/6f/72/385fbb8f8160eb25dc99a23fa87b7eded7c6a79d10a56cf02b4a387b8afa/dm_pybloom-3.0.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "445c6d3555673005fe54c3a965901946", "sha256": "66472c3964018735c5dbebed96c3ba0281acd5c14a9be49b82cbe2c87bc48895" }, "downloads": -1, "filename": "dm_pybloom-3.0.3.tar.gz", "has_sig": false, "md5_digest": "445c6d3555673005fe54c3a965901946", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9270, "upload_time": "2018-05-14T11:46:17", "url": "https://files.pythonhosted.org/packages/f0/9f/7a1460fb4a6bf3128f481788f5122d07904dc140b8f50c1800f26b8f314a/dm_pybloom-3.0.3.tar.gz" } ], "3.0.4": [ { "comment_text": "", "digests": { "md5": "39ec85b6b0c42cba21a7f9256951c17d", "sha256": "e9be7ca1d6b6e2bf37dff737b5765381da34431d6c376f4b1d089d0d83d84a92" }, "downloads": -1, "filename": "dm_pybloom-3.0.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "39ec85b6b0c42cba21a7f9256951c17d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10686, "upload_time": "2018-05-14T11:47:49", "url": "https://files.pythonhosted.org/packages/25/65/0b7828b36aca661594c3765e37409c5d2ed9a523c5e8fbac055f99a73197/dm_pybloom-3.0.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7ca03bc999a97ce168b2be08d4781c19", "sha256": "a98fbd293158b3412696d9585044fb422330b51d6056ed87acdd46158ac15bdb" }, "downloads": -1, "filename": "dm_pybloom-3.0.4.tar.gz", "has_sig": false, "md5_digest": "7ca03bc999a97ce168b2be08d4781c19", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9279, "upload_time": "2018-05-14T11:47:50", "url": "https://files.pythonhosted.org/packages/6e/27/2e1d03cc38f0cb89149a47702e97895d19ac4d29919c25526e7f7b26db12/dm_pybloom-3.0.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "39ec85b6b0c42cba21a7f9256951c17d", "sha256": "e9be7ca1d6b6e2bf37dff737b5765381da34431d6c376f4b1d089d0d83d84a92" }, "downloads": -1, "filename": "dm_pybloom-3.0.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "39ec85b6b0c42cba21a7f9256951c17d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10686, "upload_time": "2018-05-14T11:47:49", "url": "https://files.pythonhosted.org/packages/25/65/0b7828b36aca661594c3765e37409c5d2ed9a523c5e8fbac055f99a73197/dm_pybloom-3.0.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7ca03bc999a97ce168b2be08d4781c19", "sha256": "a98fbd293158b3412696d9585044fb422330b51d6056ed87acdd46158ac15bdb" }, "downloads": -1, "filename": "dm_pybloom-3.0.4.tar.gz", "has_sig": false, "md5_digest": "7ca03bc999a97ce168b2be08d4781c19", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9279, "upload_time": "2018-05-14T11:47:50", "url": "https://files.pythonhosted.org/packages/6e/27/2e1d03cc38f0cb89149a47702e97895d19ac4d29919c25526e7f7b26db12/dm_pybloom-3.0.4.tar.gz" } ] }