{ "info": { "author": "Piper Merriam", "author_email": "pipermerriam@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 2 - Pre-Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: Implementation :: PyPy" ], "description": "Ethereum Bloom Filter\n=====================\n\n|Build Status| |PyPI version| |Python versions|\n\nA python implementation of the bloom filter used by Ethereum.\n\n This library and repository was previously located at\n https://github.com/pipermerriam/ethereum-bloom. It was transferred\n to the Ethereum foundation github in November 2017 and renamed to\n ``eth-bloom``. The PyPi package was also renamed from\n ``ethereum-bloom`` to \\`eth-bloom.\n\nFor more information on what Ethereum Bloom Filters are see\n`here `__\n\nInstallation\n------------\n\n.. code:: shell\n\n $ pip install eth-bloom\n\nDevelopment\n-----------\n\n.. code:: sh\n\n pip install -e .[dev]\n\nRunning the tests\n~~~~~~~~~~~~~~~~~\n\nYou can run the tests with:\n\n.. code:: sh\n\n py.test tests\n\nOr you can install ``tox`` to run the full test suite.\n\nReleasing\n~~~~~~~~~\n\nPandoc is required for transforming the markdown README to the proper\nformat to render correctly on pypi.\n\nFor Debian-like systems:\n\n::\n\n apt install pandoc\n\nOr on OSX:\n\n.. code:: sh\n\n brew install pandoc\n\nTo release a new version:\n\n.. code:: sh\n\n bumpversion $$VERSION_PART_TO_BUMP$$\n git push && git push --tags\n make release\n\nHow to bumpversion\n^^^^^^^^^^^^^^^^^^\n\nThe version format for this repo is ``{major}.{minor}.{patch}`` for\nstable, and ``{major}.{minor}.{patch}-{stage}.{devnum}`` for unstable\n(``stage`` can be alpha or beta).\n\nTo issue the next version in line, use bumpversion and specify which\npart to bump, like ``bumpversion minor`` or ``bumpversion devnum``.\n\nIf you are in a beta version, ``bumpversion stage`` will switch to a\nstable.\n\nTo issue an unstable version when the current version is stable, specify\nthe new version explicitly, like\n``bumpversion --new-version 4.0.0-alpha.1 devnum``\n\nUsage\n-----\n\nThe ``BloomFilter`` object\n\n.. code:: python\n\n >>> from eth_bloom import BloomFilter\n >>> b = BloomFilter()\n >>> b'a value' in b # check whether a value is present\n False\n >>> b.add(b'a value') # add a single value\n >>> b'a value' in b\n True\n >>> int(b) # cast to an integer\n 3458628712844765018311492773359360516229024449585949240367644166080576879632652362184119765613545163153674691520749911733485693171622325900647078772681584616740134230153806267998022370194756399579977294154062696916779055028045657302214591620589415314367270329881298073237757853875497241510733954508399863880080986777555986663988492288946856978031023631618215522505971170427986911575695114157059398791122395379400594948096\n >>> bin(b) # cast to a binary string\n '0b100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'\n\nYou can also add an iterable of items to a bloom filter.\n\n.. code:: python\n\n >>> b = BloomFilter()\n >>> b'value-a' in b\n False\n >>> b'value-b' in b\n False\n >>> b.extend([b'value-a', b'value-b'])\n >>> b'value-a' in b\n True\n >>> b'value-b' in b\n True\n\nYou can initialize a bloom filter from an iterable of byte strings.\n\n.. code:: python\n\n >>> b = BloomFilter.from_iterable([b'value-a', b'value-b']) # initialize from an iterable of values.\n >>> b'value-a' in b\n True\n >>> b'value-b' in b\n True\n\nYou can initialize a bloom filter from the integer representation of the\nbloom bits.\n\n.. code:: python\n\n >>> b = BloomFilter(3458628712844765018311492773359360516229024449585949240367644166080576879632652362184119765613545163153674691520749911733485693171622325900647078772681584616740134230153806267998022370194756399579977294154062696916779055028045657302214591620589415314367270329881298073237757853875497241510733954508399863880080986777555986663988492288946856978031023631618215522505971170427986911575695114157059398791122395379400594948096)\n >>> b'a value' in b\n True\n\nYou can also merge bloom filters\n\n.. code:: python\n\n >>> from eth_bloom import BloomFilter\n >>> b1 = BloomFilter()\n >>> b2 = BloomFilter()\n >>> b1.add(b'a')\n >>> b1.add(b'common')\n >>> b2.add(b'b')\n >>> b2.add(b'common')\n >>> b'a' in b1\n True\n >>> b'b' in b1\n False\n >>> b'common' in b1\n True\n >>> b'a' in b2\n False\n >>> b'b' in b2\n True\n >>> b'common' in b2\n True\n >>> b3 = b1 + b2 # using addition\n >>> b'a' in b3\n True\n >>> b'b' in b3\n True\n >>> b'common' in b3\n True\n >>> b4 = b1 | b2 # or using bitwise or\n >>> b'a' in b4\n True\n >>> b'b' in b4\n True\n >>> b'common' in b4\n True\n >>> b1 |= b2 # or using in-place operations (works with += too)\n >>> b'a' in b1\n True\n >>> b'b' in b1\n True\n >>> b'common' in b1\n True\n\n.. |Build Status| image:: https://travis-ci.org/ethereum/eth-bloom.svg?branch=master\n :target: https://travis-ci.org/ethereum/eth-bloom\n.. |PyPI version| image:: https://badge.fury.io/py/eth-bloom.svg\n :target: https://badge.fury.io/py/eth-bloom\n.. |Python versions| image:: https://img.shields.io/pypi/pyversions/eth-bloom.svg\n :target: https://pypi.python.org/pypi/eth-bloom\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/ethereum/eth-bloom", "keywords": "ethereum blockchain evm trie merkle", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "eth-bloom", "package_url": "https://pypi.org/project/eth-bloom/", "platform": "", "project_url": "https://pypi.org/project/eth-bloom/", "project_urls": { "Homepage": "https://github.com/ethereum/eth-bloom" }, "release_url": "https://pypi.org/project/eth-bloom/1.0.3/", "requires_dist": [ "eth-hash (<0.3.0,>=0.1.0a3)", "bumpversion (<1.0.0,>=0.5.3) ; extra == 'deploy'", "wheel (<1.0.0,>=0.30.0) ; extra == 'deploy'", "bumpversion (<1.0.0,>=0.5.3) ; extra == 'dev'", "wheel (<1.0.0,>=0.30.0) ; extra == 'dev'", "twine ; extra == 'dev'", "pytest (==3.0.7) ; extra == 'dev'", "hypothesis (==3.7.0) ; extra == 'dev'", "tox (==2.6.0) ; extra == 'dev'", "flake8 (<4.0.0,>=3.5.0) ; extra == 'dev'", "mypy (<0.600) ; extra == 'dev'", "flake8 (<4.0.0,>=3.5.0) ; extra == 'lint'", "mypy (<0.600) ; extra == 'lint'", "pytest (==3.0.7) ; extra == 'test'", "hypothesis (==3.7.0) ; extra == 'test'", "tox (==2.6.0) ; extra == 'test'" ], "requires_python": ">=3.5, !=3.5.2, <4", "summary": "Python implementation of the Ethereum Trie structure", "version": "1.0.3" }, "last_serial": 4681801, "releases": { "0.5.2": [ { "comment_text": "", "digests": { "md5": "91f3e5a3fae4128f10e3258c02f774c7", "sha256": "37effed450d62e54a6b7a504d3e935fb2464a3b71e0da6a39333c5b98addcc5f" }, "downloads": -1, "filename": "eth_bloom-0.5.2-py3-none-any.whl", "has_sig": false, "md5_digest": "91f3e5a3fae4128f10e3258c02f774c7", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 6383, "upload_time": "2017-11-28T03:48:42", "url": "https://files.pythonhosted.org/packages/55/d5/53b36b4a9972b4d000d8cf3761e44cca3e3d6aedc9f563e4cdd1fb2095ef/eth_bloom-0.5.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5930c0e3a4e156d1cdc63008d51886de", "sha256": "c9fce7edfa614a095db2932bc4b25e27890d8abb1b9da06b46b25b1cb2d7a37c" }, "downloads": -1, "filename": "eth-bloom-0.5.2.tar.gz", "has_sig": false, "md5_digest": "5930c0e3a4e156d1cdc63008d51886de", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4976, "upload_time": "2017-11-28T03:48:33", "url": "https://files.pythonhosted.org/packages/c5/4c/4ff885719dd0a5e11c964dcaa27536dcd1803c229e486387c143f3dbdfca/eth-bloom-0.5.2.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "b1f9c7b4be4e274ad16064e992e2f732", "sha256": "d2e09a1a2ff37705100ae9d5eddf290d0e6dfc5e9bde3747967a41b3db03df36" }, "downloads": -1, "filename": "eth_bloom-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "b1f9c7b4be4e274ad16064e992e2f732", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 6823, "upload_time": "2018-02-20T16:16:38", "url": "https://files.pythonhosted.org/packages/59/d3/593f5068c38ee78954d33933f1dfcd2cfeebbb5a6608c304b42149fe18f0/eth_bloom-1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "01a0bb90177f58da95362c38d2ac2341", "sha256": "ebe57ff13e549b8da95306356decfdaab46f25bd8cc025b26cadb1b374c4963a" }, "downloads": -1, "filename": "eth-bloom-1.0.0.tar.gz", "has_sig": false, "md5_digest": "01a0bb90177f58da95362c38d2ac2341", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5272, "upload_time": "2018-02-20T16:16:32", "url": "https://files.pythonhosted.org/packages/77/02/34d51d22cdcfbb865b7197313e1e2200ac5c5c43712d7e3109fc0b9bc13c/eth-bloom-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "6ed10c3ad0ec9d445d0e339cb5f7a26c", "sha256": "ee9c2410ad93caa40cbab8e97627f5f666a04e734b772154b384ec95394ee4e3" }, "downloads": -1, "filename": "eth_bloom-1.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "6ed10c3ad0ec9d445d0e339cb5f7a26c", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 4076, "upload_time": "2018-09-07T01:30:42", "url": "https://files.pythonhosted.org/packages/a0/1c/a4ba2860ee57a730c67fddf65de973bdf981a6926e4906f6cdddf22635db/eth_bloom-1.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a2cd1bf205c7430607b2d53c523973cc", "sha256": "d00807b719981d1267b8a518837a990349cc6d71404a4657280c9185eb8df17b" }, "downloads": -1, "filename": "eth-bloom-1.0.1.tar.gz", "has_sig": false, "md5_digest": "a2cd1bf205c7430607b2d53c523973cc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5215, "upload_time": "2018-09-07T01:30:40", "url": "https://files.pythonhosted.org/packages/84/99/30678bbb727afbad35ea9bc8e2377a3f3ae47367d34f3895314a0b8eb414/eth-bloom-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "7f42f2b2b38cb5b94afe1541acfc5356", "sha256": "1b0069dfa24b865573cfecd0ca3466f31a823821691b8e0a483937f7852ff77a" }, "downloads": -1, "filename": "eth_bloom-1.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "7f42f2b2b38cb5b94afe1541acfc5356", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5, !=3.5.2, <4", "size": 5306, "upload_time": "2019-01-09T20:18:57", "url": "https://files.pythonhosted.org/packages/ae/17/57d4f49d6a1c90410c44c2bf485edb0ecca7909bf7883ff57b59bd88e340/eth_bloom-1.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f7be6c7c80bbdd443a95e37d45bbd8cb", "sha256": "32f59a55f7ec8bef22f97a83540d1a677a3dc5b892d3150d6e7678bd1a0b0218" }, "downloads": -1, "filename": "eth-bloom-1.0.2.tar.gz", "has_sig": false, "md5_digest": "f7be6c7c80bbdd443a95e37d45bbd8cb", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5, !=3.5.2, <4", "size": 5619, "upload_time": "2019-01-09T20:18:58", "url": "https://files.pythonhosted.org/packages/1c/4e/8e09299785fe8b14cd1605fede635f493f59ce8cf6c958e4f82e41ab5144/eth-bloom-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "882e6d63c6bca0bc3bb201e78834851b", "sha256": "7946722121f40d76aba2a148afe5edde714d119c7d698ddd0ef4d5a1197c3765" }, "downloads": -1, "filename": "eth_bloom-1.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "882e6d63c6bca0bc3bb201e78834851b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5, !=3.5.2, <4", "size": 5410, "upload_time": "2019-01-10T16:20:37", "url": "https://files.pythonhosted.org/packages/0a/44/addfe8e91cc3a67976a941d1fc98c23cb330ff4009cb4317b66c4e220885/eth_bloom-1.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ba18061672c5457cda7aa270ababc623", "sha256": "89d415710af1480683226e95805519f7c79b7244a3ca8d5287684301c7cee3de" }, "downloads": -1, "filename": "eth-bloom-1.0.3.tar.gz", "has_sig": false, "md5_digest": "ba18061672c5457cda7aa270ababc623", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5, !=3.5.2, <4", "size": 5718, "upload_time": "2019-01-10T16:20:39", "url": "https://files.pythonhosted.org/packages/22/a5/22dc06a087499f935bcaa3c59886ac84cd78c12754c91bdcae9c6e59ede3/eth-bloom-1.0.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "882e6d63c6bca0bc3bb201e78834851b", "sha256": "7946722121f40d76aba2a148afe5edde714d119c7d698ddd0ef4d5a1197c3765" }, "downloads": -1, "filename": "eth_bloom-1.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "882e6d63c6bca0bc3bb201e78834851b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5, !=3.5.2, <4", "size": 5410, "upload_time": "2019-01-10T16:20:37", "url": "https://files.pythonhosted.org/packages/0a/44/addfe8e91cc3a67976a941d1fc98c23cb330ff4009cb4317b66c4e220885/eth_bloom-1.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ba18061672c5457cda7aa270ababc623", "sha256": "89d415710af1480683226e95805519f7c79b7244a3ca8d5287684301c7cee3de" }, "downloads": -1, "filename": "eth-bloom-1.0.3.tar.gz", "has_sig": false, "md5_digest": "ba18061672c5457cda7aa270ababc623", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5, !=3.5.2, <4", "size": 5718, "upload_time": "2019-01-10T16:20:39", "url": "https://files.pythonhosted.org/packages/22/a5/22dc06a087499f935bcaa3c59886ac84cd78c12754c91bdcae9c6e59ede3/eth-bloom-1.0.3.tar.gz" } ] }