{ "info": { "author": "Ben Mather", "author_email": "bwhmather@bwhmather.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3 :: Only" ], "description": "==========\nSuccession\n==========\n\n|build-status| |coverage|\n\nA python library providing a useful abstraction for recording state transitions, compressing them, and distributing to multiple listeners.\n\n\n\nUsage\n=====\n\nCompression\n-----------\n\nThe :class:`Succession` class provides a way to reduce long chains of updates\ndown to a reduced chain with the same effect.\n\nFor example, assume that you only care about the sum of the numbers pushed to a\nsuccession, and that it's fine to replace all of the numbers from before you started\nlistening with the current total. You can do something like the following:\n\n>>> succession = Succession(compress=lambda items: [sum(items)])\n\n>>> from_start = succession.iter()\n>>> for i in [1, 2, 3, 4, 5]:\n... succession.push(i)\n... succession.close()\n>>> from_end = succession.iter()\n>>> list(from_start)\n[1, 2, 3, 4, 5])\n>>> list(from_end)\n[15]\n\nIterators forked earlier will not miss any transitions added from the time they\nwere created. Compression is only applied to transitions before the fork.\n\n\nInstallation\n============\nRecommended method is to use the version from `pypi`_\n\n.. code::\n\n pip install succession\n\n\nLinks\n=====\n- Source code: https://github.com/bwhmather/succession\n- Issue tracker: https://github.com/bwhmather/succession/issues\n- Continuous integration: https://travis-ci.org/bwhmather/succession\n- PyPI: https://pypi.python.org/pypi/succession\n\n\nLicense\n=======\nThe project is licensed under the BSD license. See `LICENSE`_ for details.\n\n\n.. |build-status| image:: https://travis-ci.org/bwhmather/succession.png?branch=develop\n :target: https://travis-ci.org/bwhmather/succession\n :alt: Build Status\n.. |coverage| image:: https://coveralls.io/repos/bwhmather/succession/badge.png?branch=develop\n :target: https://coveralls.io/r/bwhmather/succession?branch=develop\n :alt: Coverage\n.. _pypi: https://pypi.python.org/pypi/sucession\n.. _LICENSE: ./LICENSE\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/bwhmather/succession", "keywords": "", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "succession", "package_url": "https://pypi.org/project/succession/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/succession/", "project_urls": { "Homepage": "https://github.com/bwhmather/succession" }, "release_url": "https://pypi.org/project/succession/0.5.0/", "requires_dist": null, "requires_python": "", "summary": "A python library providing concurrent push based lazy linked lists", "version": "0.5.0" }, "last_serial": 2028937, "releases": { "0.1.0": [], "0.1.1": [ { "comment_text": "", "digests": { "md5": "c02b4bbf7d4f62ba4144bb30082fd835", "sha256": "0bb9e3b853d72eb701727d65455e02a343b9475730d434bc50926400e2b7d0cd" }, "downloads": -1, "filename": "succession-0.1.1.tar.gz", "has_sig": false, "md5_digest": "c02b4bbf7d4f62ba4144bb30082fd835", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2140, "upload_time": "2014-10-10T11:23:28", "url": "https://files.pythonhosted.org/packages/6f/8b/256068d0466b97af33429da69e28ca780777dfd1f3ce185100fbf450e955/succession-0.1.1.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "d206b832eda00a9441def33133b35ce2", "sha256": "d49ecd868b4509b88d57c098de2f1f0ec6063459860cc3a9c75186bd14aa6ff0" }, "downloads": -1, "filename": "succession-0.2.0.tar.gz", "has_sig": false, "md5_digest": "d206b832eda00a9441def33133b35ce2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3055, "upload_time": "2014-10-12T21:34:52", "url": "https://files.pythonhosted.org/packages/55/1c/41b8c593198458a7e53d110a166d7ba23998fcf5c6f8d8cf78fb3c7bc7c8/succession-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "35e5b7a25a88e030d7ec136cbd56ff4b", "sha256": "9a704d3621e3b7a44ad4cd9df7f6fd68d993d837dc9992f9952e4792ac201b05" }, "downloads": -1, "filename": "succession-0.2.1.tar.gz", "has_sig": false, "md5_digest": "35e5b7a25a88e030d7ec136cbd56ff4b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3051, "upload_time": "2014-10-12T22:06:23", "url": "https://files.pythonhosted.org/packages/08/4a/ea739c8c42bf9a4ffe6da84d5ac0f93d85011bebaf2e6035815adf23ad29/succession-0.2.1.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "f9775c69ed9ee4c8a38ccc1a486ad03b", "sha256": "9c75c4bdcc2185271d122e5179e5aeb8e550848218fa6ef4c31c471b06517a26" }, "downloads": -1, "filename": "succession-0.3.0.tar.gz", "has_sig": false, "md5_digest": "f9775c69ed9ee4c8a38ccc1a486ad03b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3264, "upload_time": "2014-10-13T09:34:17", "url": "https://files.pythonhosted.org/packages/24/ab/169ebf724d463d1a16bdea9b80dd9bc9dbc91075801e0e3fecb2d7b6b698/succession-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "16075651102579b1102bd529905359ec", "sha256": "a116353f02ca0b9701c82ac54a9f7222a9b555dc43485fe6da477288036bda83" }, "downloads": -1, "filename": "succession-0.3.1.tar.gz", "has_sig": false, "md5_digest": "16075651102579b1102bd529905359ec", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3370, "upload_time": "2014-10-19T15:37:45", "url": "https://files.pythonhosted.org/packages/95/2d/578502b05f83db1ccb2f1e42148af3e0d30fff6abd08e33e1762b93d2ff7/succession-0.3.1.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "9dfede417e92f4314ea98ed7ac1b839f", "sha256": "7e24ea96a0260d76568d2bc75cdd738a11f140d48a64c21267c3d0430e871a40" }, "downloads": -1, "filename": "succession-0.4.0.tar.gz", "has_sig": false, "md5_digest": "9dfede417e92f4314ea98ed7ac1b839f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3521, "upload_time": "2014-12-09T10:22:46", "url": "https://files.pythonhosted.org/packages/61/b7/c6dccbf7d1dae5a62b86d22ecbe876479ee06236389d5d8005fe4613a016/succession-0.4.0.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "c80671510b1c5f190c541be607c75560", "sha256": "e18722468cf8ef1a2f3de2a47550a91b930f775d0b2734915079aa0e8c39a2d6" }, "downloads": -1, "filename": "succession-0.5.0.tar.gz", "has_sig": false, "md5_digest": "c80671510b1c5f190c541be607c75560", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4121, "upload_time": "2016-03-26T22:35:19", "url": "https://files.pythonhosted.org/packages/ea/5c/4d1e97e819e58ade48fcccf29b60c9c5d87fcecbdc227bf9ff39fbec67fb/succession-0.5.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c80671510b1c5f190c541be607c75560", "sha256": "e18722468cf8ef1a2f3de2a47550a91b930f775d0b2734915079aa0e8c39a2d6" }, "downloads": -1, "filename": "succession-0.5.0.tar.gz", "has_sig": false, "md5_digest": "c80671510b1c5f190c541be607c75560", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4121, "upload_time": "2016-03-26T22:35:19", "url": "https://files.pythonhosted.org/packages/ea/5c/4d1e97e819e58ade48fcccf29b60c9c5d87fcecbdc227bf9ff39fbec67fb/succession-0.5.0.tar.gz" } ] }