{ "info": { "author": "Will Roberts", "author_email": "wildwilhelm@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.2", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Topic :: Software Development :: Build Tools" ], "description": "============\n pyredblack\n============\n\n.. image:: https://travis-ci.org/wroberts/pyredblack.svg?branch=master\n :target: https://travis-ci.org/wroberts/pyredblack\n\n.. image:: https://coveralls.io/repos/wroberts/pyredblack/badge.svg?branch=master\n :target: https://coveralls.io/r/wroberts/pyredblack?branch=master\n :alt: Test code coverage\n\n.. image:: https://img.shields.io/pypi/v/pyredblack.svg\n :target: https://pypi.python.org/pypi/pyredblack/\n :alt: Latest Version\n\nCopyright (c) 2015 Will Roberts \n\nLicensed under the MIT License (see ``LICENSE.rst`` for details).\n\nCython interface to red-black trees implemented in C++.\n\n`Red-black trees`_ are a kind of `self-balancing binary tree`_. They\nmaintain their entries in sorted order and have O(log n) for\ninsertion, lookup, and deletion. You can `read more about red-black\ntrees`_ and `see animations of insertion, lookup, and deletion`_.\n\n.. _`Red-black trees`: http://en.wikipedia.org/wiki/Red%E2%80%93black_tree\n.. _`self-balancing binary tree`: http://en.wikipedia.org/wiki/Self-balancing_binary_search_tree\n.. _`read more about red-black trees`: http://www.eternallyconfuzzled.com/tuts/datastructures/jsw_tut_rbtree.aspx\n.. _`see animations of insertion, lookup, and deletion`: https://www.cs.usfca.edu/~galles/visualization/RedBlack.html\n\nThis package provides dictionary and set objects based on\nred-black-trees; these can be used as drop-in replacements for the\nbuilt-in ``dict`` and ``set`` types, except that they maintain their\ncontents in sorted order.\n\nDictionary (``rbdict``)::\n\n >>> import pyredblack\n >>> d = pyredblack.rbdict(Germany = 'Berlin',\n Hungary = 'Budapest',\n Ireland = 'Dublin',\n Portugal = 'Lisbon',\n Cyprus = 'Nicosia',\n Greenland = 'Nuuk',\n Iceland = 'Reykjavik',\n Macedonia = 'Skopje',\n Bulgaria = 'Sofia',\n Sweden = 'Stockholm')\n >>> len(d)\n 10\n >>> d['Ireland']\n 'Dublin'\n >>> d.keys()\n ['Bulgaria', 'Cyprus', 'Germany', 'Greenland', 'Hungary',\n 'Iceland', 'Ireland', 'Macedonia', 'Portugal', 'Sweden']\n >>> d.values()\n ['Sofia', 'Nicosia', 'Berlin', 'Nuuk', 'Budapest',\n 'Reykjavik', 'Dublin', 'Skopje', 'Lisbon', 'Stockholm']\n >>> d.popitem()\n ('Bulgaria', 'Sofia')\n >>> d.popitem()\n ('Cyprus', 'Nicosia')\n >>> d.popitem()\n ('Germany', 'Berlin')\n\nSet (``rbset``)::\n\n >>> fruit = pyredblack.rbset(['apple', 'orange', 'apple', 'pear',\n 'orange', 'banana'])\n >>> 'orange' in fruit\n True\n >>> 'crabgrass' in fruit\n False\n >>> a = pyredblack.rbset('abracadabra')\n >>> b = pyredblack.rbset('alacazam')\n >>> list(a)\n ['a', 'b', 'c', 'd', 'r']\n >>> list(a - b)\n ['b', 'd', 'r']\n >>> list(a | b)\n ['a', 'b', 'c', 'd', 'l', 'm', 'r', 'z']\n >>> list(a & b)\n ['a', 'c']\n >>> list(a ^ b)\n ['b', 'd', 'l', 'm', 'r', 'z']\n >>> a.pop()\n 'a'\n >>> a.pop()\n 'b'\n >>> a.pop()\n 'c'\n\nRequirements\n------------\n\n- Python 2.7, Python 3.2+\n- Cython (and a C++ compiler)\n\nTodo\n----\n\n- implement slicing on dictionaries", "description_content_type": null, "docs_url": null, "download_url": null, "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/wroberts/pyredblack", "keywords": "data structure algorithm", "license": "MIT", "maintainer": null, "maintainer_email": null, "name": "pyredblack", "package_url": "https://pypi.org/project/pyredblack/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/pyredblack/", "project_urls": { "Homepage": "https://github.com/wroberts/pyredblack" }, "release_url": "https://pypi.org/project/pyredblack/0.1.1/", "requires_dist": null, "requires_python": null, "summary": "Red/black trees in C++ for Python", "version": "0.1.1" }, "last_serial": 2453247, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "61fd40707d2ef98d6e998323b2e1141a", "sha256": "05050bd1ade7e8c89cac8ca3e488b3373a90662c7d43c503ae89cced6098eb41" }, "downloads": -1, "filename": "pyredblack-0.1.0-cp27-none-macosx_10_7_x86_64.whl", "has_sig": false, "md5_digest": "61fd40707d2ef98d6e998323b2e1141a", "packagetype": "bdist_wheel", "python_version": "cp27", "requires_python": null, "size": 169586, "upload_time": "2015-02-26T22:25:02", "url": "https://files.pythonhosted.org/packages/f1/65/ee3b47f9ffb5e5e1e8deeee23b5669349ee97f6bc5e59614332cb6dccb60/pyredblack-0.1.0-cp27-none-macosx_10_7_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "e6da824ee2d6ee89311a45a718396716", "sha256": "2041e4656fa9386a21da82394be573f9ca80a51d4be86537e84b2268fe0a34d7" }, "downloads": -1, "filename": "pyredblack-0.1.0-cp34-cp34m-macosx_10_7_x86_64.whl", "has_sig": false, "md5_digest": "e6da824ee2d6ee89311a45a718396716", "packagetype": "bdist_wheel", "python_version": "cp34", "requires_python": null, "size": 70857, "upload_time": "2015-02-26T22:25:06", "url": "https://files.pythonhosted.org/packages/a0/b4/f58c2006c06aba1a6cc65d9cc9e54c4d5641b5b06d332f5134b872105c0c/pyredblack-0.1.0-cp34-cp34m-macosx_10_7_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "3c2925831e9d119119c93eb41ed13aaa", "sha256": "baa00945effc813e843433221917812bfd6d840804c77cd5329bb42f99228101" }, "downloads": -1, "filename": "pyredblack-0.1.0.tar.gz", "has_sig": false, "md5_digest": "3c2925831e9d119119c93eb41ed13aaa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 79742, "upload_time": "2015-02-26T22:25:10", "url": "https://files.pythonhosted.org/packages/2f/7a/b6230bad628d607964d787b7708607f30f7ff1be5201493fbb6a0e591d99/pyredblack-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "fabfe66b7ba44991788886157669ccf8", "sha256": "141040cbb8d06f0737b9fa9766064099688adb8e09bb7bb3fd8af2865eb2e613" }, "downloads": -1, "filename": "pyredblack-0.1.1-cp27-none-macosx_10_11_x86_64.whl", "has_sig": false, "md5_digest": "fabfe66b7ba44991788886157669ccf8", "packagetype": "bdist_wheel", "python_version": "cp27", "requires_python": null, "size": 84009, "upload_time": "2016-11-10T15:42:50", "url": "https://files.pythonhosted.org/packages/37/94/81032a0f9efce24ab7c30a40255ce0fec055f22c454b640d7c60d469db1f/pyredblack-0.1.1-cp27-none-macosx_10_11_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "3e8326054d2c85c2547d235a261cfb31", "sha256": "8a4ff3b951b0872d01ce2d05943a60a311e063e38d81d0699a6475eadf2a316b" }, "downloads": -1, "filename": "pyredblack-0.1.1-cp34-cp34m-macosx_10_11_x86_64.whl", "has_sig": false, "md5_digest": "3e8326054d2c85c2547d235a261cfb31", "packagetype": "bdist_wheel", "python_version": "cp34", "requires_python": null, "size": 83783, "upload_time": "2016-11-10T15:42:53", "url": "https://files.pythonhosted.org/packages/d8/c7/e2ad5b3bd972455720b499fbea534e3fbb779d7ab9560801fda91cadbda0/pyredblack-0.1.1-cp34-cp34m-macosx_10_11_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "0e57ae90fa99a54eb0686acea9dfcc0e", "sha256": "d1935966d13b91c1fc9ebdb434bc2d4c66f6ac3b4e4d74d4eb80e20c7b17118a" }, "downloads": -1, "filename": "pyredblack-0.1.1-cp35-cp35m-macosx_10_11_x86_64.whl", "has_sig": false, "md5_digest": "0e57ae90fa99a54eb0686acea9dfcc0e", "packagetype": "bdist_wheel", "python_version": "cp35", "requires_python": null, "size": 83596, "upload_time": "2016-11-10T15:42:58", "url": "https://files.pythonhosted.org/packages/85/ea/4b43a2869cf41ed529e96e524828a26d13f1b85a11690e1c73c259779723/pyredblack-0.1.1-cp35-cp35m-macosx_10_11_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "9bd4e6e92252caa542db7d372009060a", "sha256": "de4b67ca1e62d783a862bef1c594dcda088d1f309a762d5408a803c8f70c3603" }, "downloads": -1, "filename": "pyredblack-0.1.1.tar.gz", "has_sig": false, "md5_digest": "9bd4e6e92252caa542db7d372009060a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 88723, "upload_time": "2016-11-10T15:43:01", "url": "https://files.pythonhosted.org/packages/e1/9e/6779fafd66df75cf5b1881929db7626f09717fb4900a7a5aeb200b134b34/pyredblack-0.1.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "fabfe66b7ba44991788886157669ccf8", "sha256": "141040cbb8d06f0737b9fa9766064099688adb8e09bb7bb3fd8af2865eb2e613" }, "downloads": -1, "filename": "pyredblack-0.1.1-cp27-none-macosx_10_11_x86_64.whl", "has_sig": false, "md5_digest": "fabfe66b7ba44991788886157669ccf8", "packagetype": "bdist_wheel", "python_version": "cp27", "requires_python": null, "size": 84009, "upload_time": "2016-11-10T15:42:50", "url": "https://files.pythonhosted.org/packages/37/94/81032a0f9efce24ab7c30a40255ce0fec055f22c454b640d7c60d469db1f/pyredblack-0.1.1-cp27-none-macosx_10_11_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "3e8326054d2c85c2547d235a261cfb31", "sha256": "8a4ff3b951b0872d01ce2d05943a60a311e063e38d81d0699a6475eadf2a316b" }, "downloads": -1, "filename": "pyredblack-0.1.1-cp34-cp34m-macosx_10_11_x86_64.whl", "has_sig": false, "md5_digest": "3e8326054d2c85c2547d235a261cfb31", "packagetype": "bdist_wheel", "python_version": "cp34", "requires_python": null, "size": 83783, "upload_time": "2016-11-10T15:42:53", "url": "https://files.pythonhosted.org/packages/d8/c7/e2ad5b3bd972455720b499fbea534e3fbb779d7ab9560801fda91cadbda0/pyredblack-0.1.1-cp34-cp34m-macosx_10_11_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "0e57ae90fa99a54eb0686acea9dfcc0e", "sha256": "d1935966d13b91c1fc9ebdb434bc2d4c66f6ac3b4e4d74d4eb80e20c7b17118a" }, "downloads": -1, "filename": "pyredblack-0.1.1-cp35-cp35m-macosx_10_11_x86_64.whl", "has_sig": false, "md5_digest": "0e57ae90fa99a54eb0686acea9dfcc0e", "packagetype": "bdist_wheel", "python_version": "cp35", "requires_python": null, "size": 83596, "upload_time": "2016-11-10T15:42:58", "url": "https://files.pythonhosted.org/packages/85/ea/4b43a2869cf41ed529e96e524828a26d13f1b85a11690e1c73c259779723/pyredblack-0.1.1-cp35-cp35m-macosx_10_11_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "9bd4e6e92252caa542db7d372009060a", "sha256": "de4b67ca1e62d783a862bef1c594dcda088d1f309a762d5408a803c8f70c3603" }, "downloads": -1, "filename": "pyredblack-0.1.1.tar.gz", "has_sig": false, "md5_digest": "9bd4e6e92252caa542db7d372009060a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 88723, "upload_time": "2016-11-10T15:43:01", "url": "https://files.pythonhosted.org/packages/e1/9e/6779fafd66df75cf5b1881929db7626f09717fb4900a7a5aeb200b134b34/pyredblack-0.1.1.tar.gz" } ] }