{ "info": { "author": "Tim Bell", "author_email": "timothybell@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 2 - Pre-Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Natural Language :: English", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6" ], "description": "=========\nIrritable\n=========\n\n\n.. image:: https://img.shields.io/pypi/v/irritable.svg\n :target: https://pypi.python.org/pypi/irritable\n\n.. image:: https://img.shields.io/travis/timb07/irritable.svg\n :target: https://travis-ci.org/timb07/irritable\n\n.. image:: https://readthedocs.org/projects/irritable/badge/?version=latest\n :target: https://irritable.readthedocs.io/en/latest/?badge=latest\n :alt: Documentation Status\n\n.. image:: https://pyup.io/repos/github/timb07/irritable/shield.svg\n :target: https://pyup.io/repos/github/timb07/irritable/\n :alt: Updates\n\n\nIrritable implements broken iterators called irritables\n\n\n* Free software: BSD license\n* Documentation: https://irritable.readthedocs.io.\n\n\nFeatures\n--------\n\nIterators are defined in the docs_ ; the definition includes what\nconstitutes a broken implementation:\n\n 4.5. Iterator Types\n\n [...]\n\n Once an iterator\u2019s ``__next__()`` method raises StopIteration, it must\n continue to do so on subsequent calls. Implementations that do not\n obey this property are deemed broken.\n\n*Irritables* are like iterables, but deliberately broken. The following\ntypes of brokenness are supported:\n\n- after ``next()`` first raises ``StopIteration``, subsequent calls will\n raise ``StopIrritation`` instead;\n\n- if the irritator is instantiated with ``resume=True``, calling\n ``next()`` may raise ``StopIteration`` when items remain still remain in\n the container; subsequent calls to ``next()`` will return the remaining\n items as usual until none remain;\n\n- if the irritator is instantiated with ``repeat=True``, after the\n iterator has been exhausted and raises ``StopIteration``, the iterator\n is reset and can be iterated over again ad infinitum; in this case\n ``next()`` will never raise ``StopIrritation``;\n\n\nCredits\n---------\n\nThe idea for irritators came during Trey Hunner's talk_ \"Loop better:\na deeper look at iteration in Python\" at DjangoCon AU 2017.\n\nThis package was created with Cookiecutter_ and the `audreyr/cookiecutter-pypackage`_ project template.\n\n.. _Cookiecutter: https://github.com/audreyr/cookiecutter\n.. _`audreyr/cookiecutter-pypackage`: https://github.com/audreyr/cookiecutter-pypackage\n.. _docs: https://docs.python.org/3/library/stdtypes.html\n.. _talk: https://2017.pycon-au.org/schedule/presentation/55/\n\n\n=======\nHistory\n=======\n\n0.1.0 (2017-08-08)\n------------------\n\n* First release on PyPI.\n\n\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/timb07/irritable", "keywords": "irritable", "license": "BSD license", "maintainer": "", "maintainer_email": "", "name": "irritable", "package_url": "https://pypi.org/project/irritable/", "platform": "", "project_url": "https://pypi.org/project/irritable/", "project_urls": { "Homepage": "https://github.com/timb07/irritable" }, "release_url": "https://pypi.org/project/irritable/0.1.0/", "requires_dist": null, "requires_python": "", "summary": "Irritable implements broken iterators called irritables", "version": "0.1.0" }, "last_serial": 3079857, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "2c0af357020ad41f9f9fffcc97db8320", "sha256": "d6091be1967c32aab5b670d1917c32e6580e691a8078ba6906174c71eb4581b8" }, "downloads": -1, "filename": "irritable-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2c0af357020ad41f9f9fffcc97db8320", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5001, "upload_time": "2017-08-08T01:18:22", "url": "https://files.pythonhosted.org/packages/79/61/0f1f7d94defca7c78a43282894d3dd11050926697e4a9b24020bfcd4ae0c/irritable-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c5f2491e04da8c244fa19b665b4c9863", "sha256": "d0e4084e074b18042115aa6dac2e8bcec5612a1f6373d4d9194cd4894983311a" }, "downloads": -1, "filename": "irritable-0.1.0.tar.gz", "has_sig": false, "md5_digest": "c5f2491e04da8c244fa19b665b4c9863", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12520, "upload_time": "2017-08-08T01:18:24", "url": "https://files.pythonhosted.org/packages/0a/ff/a5acbdf26ff2edbe6d37fe9de7ec06d8c4ba0a84bbfb21492df00037a0e6/irritable-0.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "2c0af357020ad41f9f9fffcc97db8320", "sha256": "d6091be1967c32aab5b670d1917c32e6580e691a8078ba6906174c71eb4581b8" }, "downloads": -1, "filename": "irritable-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2c0af357020ad41f9f9fffcc97db8320", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5001, "upload_time": "2017-08-08T01:18:22", "url": "https://files.pythonhosted.org/packages/79/61/0f1f7d94defca7c78a43282894d3dd11050926697e4a9b24020bfcd4ae0c/irritable-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c5f2491e04da8c244fa19b665b4c9863", "sha256": "d0e4084e074b18042115aa6dac2e8bcec5612a1f6373d4d9194cd4894983311a" }, "downloads": -1, "filename": "irritable-0.1.0.tar.gz", "has_sig": false, "md5_digest": "c5f2491e04da8c244fa19b665b4c9863", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12520, "upload_time": "2017-08-08T01:18:24", "url": "https://files.pythonhosted.org/packages/0a/ff/a5acbdf26ff2edbe6d37fe9de7ec06d8c4ba0a84bbfb21492df00037a0e6/irritable-0.1.0.tar.gz" } ] }