{ "info": { "author": "Terry Jones", "author_email": "terry@jon.es", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Framework :: Twisted", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Operating System :: OS Independent", "Programming Language :: Python", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "txdlo - a (Twisted) deferred list observer\n==========================================\n\n``txdlo`` is a Python package that provides a class called\n``DeferredListObserver``.\n\nAs you might guess, ``DeferredListObserver`` lets you observe callback and\nerrback events from a list of `Twisted `_\n`deferreds\n`_. You\ncan add observers that will be passed information about deferreds firing.\nYou can add deferreds to the observed list at any time, which is very\nuseful if you're dynamically creating deferreds that you want to monitor.\n\nThe class can be used to easily build functions or classes that provide\ndeferreds that fire when arbitrary combinations of events from the observed\ndeferreds have occurred.\n\nFor example you can write functions or classes that support deferreds that\n\n* Implement Twisted's ``DeferredList`` or simple variants of it, or that let\n you separate the various behaviors of ``DeferredList`` into simpler\n functions.\n* Provide a deferred that fires when N of the observed deferreds have fired.\n* Provide a deferred that ignores errors until one of the observed deferred\n succeeds, only firing with an error if all the observed deferreds fail.\n* Or (a more involved example), suppose you have 3 methods that can return\n you a user's avatar: a fast local cache, a filesystem, and a slow network\n call to Gravatar. You want to write a deferred-returning function that\n launches all three lookups at once and fires its deferred with the first\n answer. But if the cache and/or filesystems fails first, you don't want\n to trigger an error, you instead want to take the result from Gravatar\n and add it to the cache and/or filesystem, as well firing the returned\n deferred with the result (wherever it comes from). Only if all three\n lookups fail do you want to errback the deferred you returned.\n\nThe source for ``txdlo`` lives at `https://github.com/terrycojones/txdlo\n`_.", "description_content_type": null, "docs_url": null, "download_url": "https://github.com/terrycojones/txdlo", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/terrycojones/txdlo", "keywords": "twisted deferred observer", "license": "UNKNOWN", "maintainer": null, "maintainer_email": null, "name": "txdlo", "package_url": "https://pypi.org/project/txdlo/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/txdlo/", "project_urls": { "Download": "https://github.com/terrycojones/txdlo", "Homepage": "https://github.com/terrycojones/txdlo" }, "release_url": "https://pypi.org/project/txdlo/0.1.8/", "requires_dist": null, "requires_python": null, "summary": "A Twisted class for observing a set of deferreds.", "version": "0.1.8" }, "last_serial": 957191, "releases": { "0.0.1": [], "0.0.2": [ { "comment_text": "", "digests": { "md5": "04f9ae85650aaea5d83922f4d2c06f5b", "sha256": "7de56bfef1aac7f24ce25dc1926f06ab7f46375e6b532329c8bf60760da61ab1" }, "downloads": -1, "filename": "txdlo-0.0.2.tar.gz", "has_sig": false, "md5_digest": "04f9ae85650aaea5d83922f4d2c06f5b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3647, "upload_time": "2013-12-30T19:05:42", "url": "https://files.pythonhosted.org/packages/d8/05/d63fe2edd15d8c394786ec82bf0803a28dcebadaa1d6213a56192d4a93cc/txdlo-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "e6debb454a551240c0c81db42d70d340", "sha256": "80c6be398381aed80f2dbee2f5fdd828351f01958356f9fe7b4c2379d58b26f8" }, "downloads": -1, "filename": "txdlo-0.0.3.tar.gz", "has_sig": false, "md5_digest": "e6debb454a551240c0c81db42d70d340", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3647, "upload_time": "2013-12-30T19:38:42", "url": "https://files.pythonhosted.org/packages/7e/b0/055f15785fa4e1b9371aa3b48f86b02670d3144e2692c5fe98a6f01fadd7/txdlo-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "488acc2be0de1dfb4f307fbc5abb1e74", "sha256": "e138c81c14d69e2dd817fd9f572b905b45d350b6c1b61cb64dd7f848ee32049e" }, "downloads": -1, "filename": "txdlo-0.0.4.tar.gz", "has_sig": false, "md5_digest": "488acc2be0de1dfb4f307fbc5abb1e74", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3677, "upload_time": "2013-12-30T19:41:34", "url": "https://files.pythonhosted.org/packages/52/22/7b23969359ffc2ae289bf8ef1f5b68c78247b8d2b4decae897a06102e7b4/txdlo-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "e0b2cd517e589877eb0f523424efbf30", "sha256": "5c042e08d93c7ba720b4a84352d20f188b8b09e45ddeffd2dd98cfc705a4ee46" }, "downloads": -1, "filename": "txdlo-0.0.5.tar.gz", "has_sig": false, "md5_digest": "e0b2cd517e589877eb0f523424efbf30", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3797, "upload_time": "2013-12-30T20:07:35", "url": "https://files.pythonhosted.org/packages/f6/97/9e1d2efae8898825533ad880499e347b1a15c4f6b5d9e625f693742bdb71/txdlo-0.0.5.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "2201df5fb1636a4713f56a72fcb0cc07", "sha256": "67a1d7c3d7df00027d9f99592b18af2693da37839f3fc4e5de85dec91ace4373" }, "downloads": -1, "filename": "txdlo-0.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2201df5fb1636a4713f56a72fcb0cc07", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 7207, "upload_time": "2013-12-31T02:01:29", "url": "https://files.pythonhosted.org/packages/0d/3c/6a829e6a5809d41da3a3ef6925bfe06312a0b9469f080dee9141a2e54a82/txdlo-0.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4b8a7ba40eb230ec1cc86f367cbd6da3", "sha256": "3fd7caa2573ad8f7caf45297987432df86167d09e01781dd0c76caf9f5ea4a9b" }, "downloads": -1, "filename": "txdlo-0.1.1.tar.gz", "has_sig": false, "md5_digest": "4b8a7ba40eb230ec1cc86f367cbd6da3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7297, "upload_time": "2013-12-31T02:01:27", "url": "https://files.pythonhosted.org/packages/34/05/6f92b349ce20160f5c88bc25561e6f5641145d9bf58de328669314e1e1fd/txdlo-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "a3c4186c68c9d28c2ee877c1a1b93a06", "sha256": "bf4813e1d7038185cb9ee54c653512f60d923c042fb5423f7e5937ec44ece345" }, "downloads": -1, "filename": "txdlo-0.1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a3c4186c68c9d28c2ee877c1a1b93a06", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 5315, "upload_time": "2013-12-31T02:04:18", "url": "https://files.pythonhosted.org/packages/35/6c/a52e76e0d8ed4919be110d44f998450299b1ce7c177aa5d2e4d98c6e0dc3/txdlo-0.1.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "761505677b79da38df4d9085648c77fd", "sha256": "63e4ab2b2ddc74a786e5884aa98c87069cb4402b9caed4d2a74bdc954408d4d4" }, "downloads": -1, "filename": "txdlo-0.1.2.tar.gz", "has_sig": false, "md5_digest": "761505677b79da38df4d9085648c77fd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5589, "upload_time": "2013-12-31T02:04:16", "url": "https://files.pythonhosted.org/packages/c0/6d/fb75cdbace16465df4f778a0ceb5458eccbb8b755aa3b3b78b6c66e7e78f/txdlo-0.1.2.tar.gz" } ], "0.1.8": [ { "comment_text": "", "digests": { "md5": "63add3b4c36b490767d2faff2d06cb3f", "sha256": "dd8a4a3ee3f8c894f8fb9b18871e595ed250ea68ea8734a1ff1c29d9da150739" }, "downloads": -1, "filename": "txdlo-0.1.8-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "63add3b4c36b490767d2faff2d06cb3f", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 5321, "upload_time": "2013-12-31T02:43:17", "url": "https://files.pythonhosted.org/packages/45/66/daee1fbb4d770643a4dc8a077112d62a7c83703e89c4f6f6703e13074041/txdlo-0.1.8-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "acbe148143c73fa7b778b3a30e1d4c0c", "sha256": "0b09f1bfbea2cac268f9e5f55d0714286e41ec7719b94210665f8e5878f23b4e" }, "downloads": -1, "filename": "txdlo-0.1.8.tar.gz", "has_sig": false, "md5_digest": "acbe148143c73fa7b778b3a30e1d4c0c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5592, "upload_time": "2013-12-31T02:43:15", "url": "https://files.pythonhosted.org/packages/fb/d4/d0bc9e1780c7a4df00e5ca0ce1df56fd2dfa9386153b40ecbccbaa3903dc/txdlo-0.1.8.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "63add3b4c36b490767d2faff2d06cb3f", "sha256": "dd8a4a3ee3f8c894f8fb9b18871e595ed250ea68ea8734a1ff1c29d9da150739" }, "downloads": -1, "filename": "txdlo-0.1.8-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "63add3b4c36b490767d2faff2d06cb3f", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 5321, "upload_time": "2013-12-31T02:43:17", "url": "https://files.pythonhosted.org/packages/45/66/daee1fbb4d770643a4dc8a077112d62a7c83703e89c4f6f6703e13074041/txdlo-0.1.8-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "acbe148143c73fa7b778b3a30e1d4c0c", "sha256": "0b09f1bfbea2cac268f9e5f55d0714286e41ec7719b94210665f8e5878f23b4e" }, "downloads": -1, "filename": "txdlo-0.1.8.tar.gz", "has_sig": false, "md5_digest": "acbe148143c73fa7b778b3a30e1d4c0c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5592, "upload_time": "2013-12-31T02:43:15", "url": "https://files.pythonhosted.org/packages/fb/d4/d0bc9e1780c7a4df00e5ca0ce1df56fd2dfa9386153b40ecbccbaa3903dc/txdlo-0.1.8.tar.gz" } ] }