{ "info": { "author": "Lipin Dmitriy", "author_email": "blackwithwhite666@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "Intended Audience :: System Administrators", "License :: OSI Approved :: BSD License", "Operating System :: POSIX", "Programming Language :: Python :: 2.7" ], "description": "=================================================\npyart - Adaptive Radix Tree\n=================================================\n\n|travis| |bitdeli|\n\n.. |travis| image:: https://secure.travis-ci.org/blackwithwhite666/pyart.png?branch=master\n :alt: Travis badge\n :target: https://travis-ci.org/blackwithwhite666/pyart\n\n.. |bitdeli| image:: https://d2weczhvl823v0.cloudfront.net/blackwithwhite666/pyart/trend.png\n :alt: Bitdeli badge\n :target: https://bitdeli.com/free\n\nThis library is a thin python wrapper around ART implementation in https://raw.github.com/armon/hlld\n\nInstalling\n==========\n\npystat can be installed via pypi:\n\n::\n\n pip install pyart\n\n\nBuilding\n========\n\nGet the source:\n\n::\n\n git clone https://github.com/blackwithwhite666/pyart.git\n\n\nCompile extension:\n\n::\n\n python setup.py build_ext --inplace\n\n\n\nUsage\n=====\n\nWork with tree as with plain mapping:\n\n::\n\n from pyart import Tree\n t = Tree()\n t[b'foo'] = 1\n t[b'bar'] = 2\n assert t[b'foo'] == 1\n assert t[b'bar'] == 2\n assert b'foo' in t\n assert b'bar' in t\n assert len(t) == 2\n del t[b'foo']\n assert b'foo' not in t\n assert len(t) == 1\n\n\nIteration over each element of tree:\n\n::\n\n from pyart import Tree\n t = Tree()\n t['foo'] = object()\n def cb(key, value): print(key, value)\n t.each(cb)\n >>> ('foo', )\n t['foobar'] = object()\n t.each(cb)\n >>> ('foo', )\n >>> ('foobar', )\n t.each(cb, prefix=b'foo')\n >>> ('foo', )\n >>> ('foobar', )\n t.each(cb, prefix=b'bar')\n\n\nFind minimum and maximum:\n\n::\n\n from pyart import Tree\n t = Tree()\n t[b'test'] = None\n t[b'foo'] = None\n t[b'bar'] = None\n assert t.minimum == (b'bar', None)\n assert t.maximum == (b'test', None)\n\nCopy tree:\n\n::\n\n from pyart import Tree\n t = Tree()\n t[b'test'] = object()\n c = t.copy()\n assert c[b'test'] is t[b'test']\n assert len(c) == len(t)\n\n\nTODO\n====\n\n- Implement plain python iterator over tree;\n\n\nRunning the test suite\n======================\n\nUse Tox to run the test suite:\n\n::\n\n tox\n\n\nChangelog\n=========\n\n0.2.3\n-----\n\n- Fix reference counting;\n\n0.2.2\n-----\n\n- Fix iteration with single element;\n\n0.2.1\n-----\n\n- Fix segmentation fault on iterator destruction;\n\n0.2.0\n-----\n\n- Proper exception handling in `each`;\n- Support for python native iteration;\n\n0.1.0 (initial release)\n-----------------------\n\n- Prototype.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/blackwithwhite666/pyart", "keywords": "thrift soa", "license": "BSD", "maintainer": null, "maintainer_email": null, "name": "pyart", "package_url": "https://pypi.org/project/pyart/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/pyart/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/blackwithwhite666/pyart" }, "release_url": "https://pypi.org/project/pyart/0.2.3/", "requires_dist": null, "requires_python": null, "summary": "Adaptive Radix Tree (ART) implemetation for python.", "version": "0.2.3" }, "last_serial": 933325, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "905155ea7cadda5bae07cdd4b98bef6c", "sha256": "610ec51b9346e4ec869501d728b6cf366c490a84b3cfee2e94fc68e986f8a441" }, "downloads": -1, "filename": "pyart-0.1.0.tar.gz", "has_sig": false, "md5_digest": "905155ea7cadda5bae07cdd4b98bef6c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33289, "upload_time": "2013-11-14T08:52:15", "url": "https://files.pythonhosted.org/packages/15/e4/0b6a233c92d1f2b4b3b0757f03c3feea760448dd1040cc8fec990c198674/pyart-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "85e52b2003a5da62969734040058e0e1", "sha256": "ae572f48d2056fd658b0c926407deeeb067ca13040ec39950c188775b54f393e" }, "downloads": -1, "filename": "pyart-0.2.0.tar.gz", "has_sig": false, "md5_digest": "85e52b2003a5da62969734040058e0e1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 47178, "upload_time": "2013-11-30T20:52:27", "url": "https://files.pythonhosted.org/packages/71/81/119aea3e8d8825793221746b16c90539c0a20ee86e826710d8e14a7fda85/pyart-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "2620e9fa82834bd9ac98770cdbb33c00", "sha256": "2f4fd6619ae852dd45ac9d9e75142d30fcd22d9d1f9cf9c5e9540939513b596a" }, "downloads": -1, "filename": "pyart-0.2.1.tar.gz", "has_sig": false, "md5_digest": "2620e9fa82834bd9ac98770cdbb33c00", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 47273, "upload_time": "2013-12-01T12:11:47", "url": "https://files.pythonhosted.org/packages/ab/ec/97486b7a24148df1452d9a0bd995b765e50be5bd0caaee477df95eacced9/pyart-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "8d16f4b269de86e3b4734a7c0b014895", "sha256": "4c657d37444cdd05b460f89de62bb4b31f089cefb8313a50f49d0b4e191da203" }, "downloads": -1, "filename": "pyart-0.2.2.tar.gz", "has_sig": false, "md5_digest": "8d16f4b269de86e3b4734a7c0b014895", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 47550, "upload_time": "2013-12-01T14:23:27", "url": "https://files.pythonhosted.org/packages/a1/2e/97cff72ea6c3907255c4e17e9e239a3e3b3beb6704099c13badcdc12bdca/pyart-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "3c0c7bbba3f87d4ef479a9bdb2b01a29", "sha256": "b6c3caa0d18bda3dc2fc1e3ca7ac5db8da9c89d66188b0d0b911ddec3e38cc95" }, "downloads": -1, "filename": "pyart-0.2.3.tar.gz", "has_sig": false, "md5_digest": "3c0c7bbba3f87d4ef479a9bdb2b01a29", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 47609, "upload_time": "2013-12-01T21:44:10", "url": "https://files.pythonhosted.org/packages/bd/88/813ba6b870578e337b33b8954a4ec2ed87900934007ec2a7d2338935b316/pyart-0.2.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "3c0c7bbba3f87d4ef479a9bdb2b01a29", "sha256": "b6c3caa0d18bda3dc2fc1e3ca7ac5db8da9c89d66188b0d0b911ddec3e38cc95" }, "downloads": -1, "filename": "pyart-0.2.3.tar.gz", "has_sig": false, "md5_digest": "3c0c7bbba3f87d4ef479a9bdb2b01a29", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 47609, "upload_time": "2013-12-01T21:44:10", "url": "https://files.pythonhosted.org/packages/bd/88/813ba6b870578e337b33b8954a4ec2ed87900934007ec2a7d2338935b316/pyart-0.2.3.tar.gz" } ] }