{ "info": { "author": "James Rutherford", "author_email": "jim@jimr.org", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8" ], "description": "=============\nThe Noterator\n=============\n\n\n.. image:: https://img.shields.io/pypi/v/noterator.svg\n :target: https://pypi.python.org/pypi/noterator\n :alt: Latest Release\n\n.. image:: https://img.shields.io/travis/jimr/noterator.svg\n :target: https://travis-ci.org/jimr/noterator\n :alt: Build Status\n\n.. image:: https://codecov.io/gh/jimr/noterator/branch/master/graph/badge.svg\n :target: https://codecov.io/gh/jimr/noterator\n :alt: Test Coverage\n\n.. image:: https://readthedocs.org/projects/noterator/badge/?version=latest\n :target: https://noterator.readthedocs.io/en/latest/?badge=latest\n :alt: Documentation Status\n\n\nAdding notification to your iteration.\n\n.. code-block:: pycon\n\n >>> from noterator import noterate, EMAIL, TWILIO\n >>> for obj in noterate(my_objects, EMAIL|TWILIO):\n ... do_something_slow(obj)\n ... \n >>> \n\nWhen the loop completes, The Noterator will notify you by all the methods you passed in.\nIn this case it'll email you and send an SMS to your configured number with Twilio.\nOther supported notification methods are HipChat (send a notification to a room) and desktop.\n\nYou can find more usage information in the `usage docs`_.\n\n.. _`usage docs`: http://noterator.readthedocs.io/en/latest/usage.html\n\n\nConfiguration\n-------------\n\nBefore The Noterator can do anything, you'll need a ``config.ini`` file (see config.example.ini_ or the example below to get started).\n\nIt's possible to use The Noterator without a configuration file, but it's a little less concise.\nSee the `configuration docs`_ for more detail.\n\nBy default, we check for ``$HOME/.config/noterator/config.ini``, so it's probably best to keep your config there, but you can pass the ``config_file`` parameter to ``noterate`` with the path to an alternative location.\n\nYou only need to define settings for the methods you wish to use.\n\n.. _config.example.ini: https://github.com/jimr/noterator/blob/master/config.example.ini\n.. _`configuration docs`: http://noterator.readthedocs.io/en/latest/configuration.html\n\n.. code-block:: ini\n\n [desktop]\n sound = true\n\n [email]\n from_mail = The Noterator \n recipient = you@example.org\n host = smtp.example.org\n port = 25\n username = postmaster@example.org\n password = password123\n\n [hipchat]\n token = abc123\n room_id = 123456\n from_name = The Noterator\n message_colour = green\n\n [twilio]\n account_sid = abc123\n token = abc123\n from_number = +123456\n to_number = +456789\n\nTODO\n----\n\n* New notification plugins: Slack, Mattermost, logging, ...\n* Notication during iteration, a la `tqdm.write`_\n\n.. _`tqdm.write`: https://github.com/tqdm/tqdm#writing-messages\n\nLicense\n-------\n\nMIT.\n\n\nCredits\n---------\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\n\nHistory\n=======\n\n0.4.3 (2016-10-31)\n------------------\n\n* Fix a packaging issue relating to moved requirements\n\n0.4.2 (2016-10-20)\n------------------\n\n* Prevent test failure due to timing errors\n* Minor testing & packaging fixes\n\n0.4.1 (2016-10-13)\n------------------\n\n* Minor cleanups & fixes\n\n0.4.0 (2016-09-30)\n------------------\n\n* Desktop notification (Mac & Linux)\n* Improvements to testing\n* Test coverage reporting to codecov.io\n\n0.3.0 (2016-09-28)\n------------------\n\n* Allow the construction of re-usable Noterators with the ``Noterator`` class\n* Configuration is now possible without a config file (``instance.configure_plugin``)\n* Plugin validation is now triggred when iteration begins, not when the Noterator is built\n* Changed email plugin configuration keys to be consistent with, e.g. Django\n* Added tests for configuration file validation & all plugins\n* Travis CI + coverage / Coveralls integration\n\n0.2.2 (2016-09-26)\n------------------\n\n* Fixed a packaging error\n\n0.2.1 (2016-09-25)\n------------------\n\n* More appropriate exception usage in config loading / checking\n\n0.2.0 (2016-09-25)\n------------------\n\n* More safety checks in configuration\n* Added the ``every_n`` parameter to ``noterate``\n\n0.1.0 (2016-09-24)\n------------------\n\n* First release on PyPI.\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/jimr/noterator", "keywords": "noterator", "license": "MIT license", "maintainer": "", "maintainer_email": "", "name": "noterator", "package_url": "https://pypi.org/project/noterator/", "platform": "", "project_url": "https://pypi.org/project/noterator/", "project_urls": { "Homepage": "https://github.com/jimr/noterator" }, "release_url": "https://pypi.org/project/noterator/0.5.0/", "requires_dist": [ "requests[security] (==2.20.0)" ], "requires_python": "", "summary": "The Noterator: bringing notification to iteration.", "version": "0.5.0", "yanked": false, "yanked_reason": null }, "last_serial": 6012004, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "3eb93c4291d7a2f1b442eba056f208fe", "sha256": "6fbf24287b70fbf6955fc94c8101f6d6d0498fcf17ce42879ceb0ddb0caedf61" }, "downloads": -1, "filename": "noterator-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3eb93c4291d7a2f1b442eba056f208fe", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 6653, "upload_time": "2016-09-24T21:41:15", "upload_time_iso_8601": "2016-09-24T21:41:15.974539Z", "url": "https://files.pythonhosted.org/packages/bc/21/7406c2be1ae6b9e11dec871b015817b11f1aa5f302f0e19a22e409492eb6/noterator-0.1.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "972dbcf6d8151979babedae8cd57d32c", "sha256": "d2af76dfd35dec5e45d3e3b42f47cfac96334b7bf4f5b77425059b8c1c66bf3a" }, "downloads": -1, "filename": "noterator-0.1.0.tar.gz", "has_sig": false, "md5_digest": "972dbcf6d8151979babedae8cd57d32c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22282, "upload_time": "2016-09-24T21:41:13", "upload_time_iso_8601": "2016-09-24T21:41:13.207842Z", "url": "https://files.pythonhosted.org/packages/5a/9c/fdee73717deb6fb71e7d765b508cb19bbf6a479892ccb9e9be77710f3cf3/noterator-0.1.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "6e40c888091a7e8714bc467a4af37ab8", "sha256": "65f2d2fd77d1e3db7d7825623317a5e67593fe75e24ef1a6eaa0c3330a255bac" }, "downloads": -1, "filename": "noterator-0.2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6e40c888091a7e8714bc467a4af37ab8", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 7077, "upload_time": "2016-09-25T21:27:15", "upload_time_iso_8601": "2016-09-25T21:27:15.475114Z", "url": "https://files.pythonhosted.org/packages/f6/fd/66cec69632e40870158cceff5173108951a2821e8522f4a9173c2569da82/noterator-0.2.1-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "ac110bff24a59e78cedd59042e12741e", "sha256": "ba3e5506ce450dd3ac367081054d0593344338614a618ca8aa96ab3a8fbec6b9" }, "downloads": -1, "filename": "noterator-0.2.1.tar.gz", "has_sig": false, "md5_digest": "ac110bff24a59e78cedd59042e12741e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22699, "upload_time": "2016-09-25T21:27:12", "upload_time_iso_8601": "2016-09-25T21:27:12.230510Z", "url": "https://files.pythonhosted.org/packages/ad/ae/a9bf8d2f9fd326fbc788cf8a048d3614111ed28561c155268801511003a4/noterator-0.2.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "64b7a734ce019cb3b8b9896a7202e359", "sha256": "495f9526e027b98c3e8bcbde388c1d32d88f4753d52e2712fed7ff648c7a5130" }, "downloads": -1, "filename": "noterator-0.2.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "64b7a734ce019cb3b8b9896a7202e359", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 9133, "upload_time": "2016-09-26T14:03:51", "upload_time_iso_8601": "2016-09-26T14:03:51.310052Z", "url": "https://files.pythonhosted.org/packages/64/a0/ad3fa868732407227d803066b9a723cbff5ad30cbdc0c0cfc8ed97327c6d/noterator-0.2.2-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "79be812832dce26c9968e16fdfe517d4", "sha256": "2b8171472592acd87dc42829f66e429de4b8fefe275a8b0c0fee62eaa36e5448" }, "downloads": -1, "filename": "noterator-0.2.2.tar.gz", "has_sig": false, "md5_digest": "79be812832dce26c9968e16fdfe517d4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15345, "upload_time": "2016-09-26T14:03:47", "upload_time_iso_8601": "2016-09-26T14:03:47.935842Z", "url": "https://files.pythonhosted.org/packages/73/3a/bb4092f46b9d3a5b0290a1a61718114d37bb499eb2655b125fe206e9afdb/noterator-0.2.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "5d435b52fca48f70ada8385c2a37f2a3", "sha256": "5dbadb934f2f928c2ba9e3cf0fa5ad3f9cc3b3b6264a323cad922906f4d01fe5" }, "downloads": -1, "filename": "noterator-0.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5d435b52fca48f70ada8385c2a37f2a3", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 10892, "upload_time": "2016-09-28T21:57:17", "upload_time_iso_8601": "2016-09-28T21:57:17.091585Z", "url": "https://files.pythonhosted.org/packages/e9/9d/829b5f196a1bdad01212f7378c1991c0941869e275b4ee243e824cf69c91/noterator-0.3.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "c07be6fe78f1677cf61c04db15aeb1c2", "sha256": "2a4214f2161c29f6c088f455d6fbb1230590ecded81ee9f54ac55c3e2f6d6356" }, "downloads": -1, "filename": "noterator-0.3.0.tar.gz", "has_sig": false, "md5_digest": "c07be6fe78f1677cf61c04db15aeb1c2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26774, "upload_time": "2016-09-28T21:57:14", "upload_time_iso_8601": "2016-09-28T21:57:14.339080Z", "url": "https://files.pythonhosted.org/packages/8f/51/e0befb7e3d9fb7a4fbb56e5116a30486901ce4894fd03800b90a8e92193c/noterator-0.3.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "0dba22c004273a6bde9fd781544ec4d4", "sha256": "38ba5c8a105678ba1a118ef2c719159a3b23fc374ae5634d7bb659df9d2ffcca" }, "downloads": -1, "filename": "noterator-0.4.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0dba22c004273a6bde9fd781544ec4d4", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 11783, "upload_time": "2016-09-30T21:27:09", "upload_time_iso_8601": "2016-09-30T21:27:09.629131Z", "url": "https://files.pythonhosted.org/packages/95/3f/c0ac11df2fd06406aecf518acf51c014c3403562c3b2db2322a185eb5453/noterator-0.4.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "2f752fc9e760a00a4ba5e0e1b65b2fc0", "sha256": "e4ea353d40256d0011e035c021646cef962704a92f60ba98aa036d45cf443a2f" }, "downloads": -1, "filename": "noterator-0.4.0.tar.gz", "has_sig": false, "md5_digest": "2f752fc9e760a00a4ba5e0e1b65b2fc0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28459, "upload_time": "2016-09-30T21:27:06", "upload_time_iso_8601": "2016-09-30T21:27:06.353253Z", "url": "https://files.pythonhosted.org/packages/c3/fb/9a185cb69d7f0356bd84e60f89ef422c5067a9476c597ee57807bee5bdd9/noterator-0.4.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "5518ee6f66289ba2048208b5b9a21120", "sha256": "700360f42ac959fd61a3e17a448ca757c9c44bdc612c82760962506d65315112" }, "downloads": -1, "filename": "noterator-0.4.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5518ee6f66289ba2048208b5b9a21120", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 11842, "upload_time": "2016-10-13T07:19:32", "upload_time_iso_8601": "2016-10-13T07:19:32.800457Z", "url": "https://files.pythonhosted.org/packages/73/8e/282691686b54f89839a4a40d80bb48a7aeccffc37baa102c32d82b3935cd/noterator-0.4.1-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "2db36a9d9a718696995121d21af94983", "sha256": "96776cb4b8037b7b3639672cac332727b71a00fc0786fa91582158a4393cc9ed" }, "downloads": -1, "filename": "noterator-0.4.1.tar.gz", "has_sig": false, "md5_digest": "2db36a9d9a718696995121d21af94983", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20390, "upload_time": "2016-10-13T07:19:29", "upload_time_iso_8601": "2016-10-13T07:19:29.377102Z", "url": "https://files.pythonhosted.org/packages/a4/63/77fa0aeb612b4b4115b0c81ac170e840fbc15d6ea8c27f31afa471486aae/noterator-0.4.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.2": [ { "comment_text": "", "digests": { "md5": "08bd88f9e67d1dc62c83b0151e310303", "sha256": "51c3e2d6c176c20bb0df4273ff26cdaa073f9962252e0b751143940eb6129b8c" }, "downloads": -1, "filename": "noterator-0.4.2.tar.gz", "has_sig": false, "md5_digest": "08bd88f9e67d1dc62c83b0151e310303", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20520, "upload_time": "2016-10-20T19:54:30", "upload_time_iso_8601": "2016-10-20T19:54:30.196170Z", "url": "https://files.pythonhosted.org/packages/8d/9e/984078fbe89aacfcd213f0e4751ab8c1d1b626803ab9a72549eff9ac91d0/noterator-0.4.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.3": [ { "comment_text": "", "digests": { "md5": "106c16014f95df6780a892bf18f099f3", "sha256": "972533af277117ffcd0fffbaf4ffa122b8e65d6c8a97943b97a8c07eeaa69bc4" }, "downloads": -1, "filename": "noterator-0.4.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "106c16014f95df6780a892bf18f099f3", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 12012, "upload_time": "2016-10-31T17:12:37", "upload_time_iso_8601": "2016-10-31T17:12:37.839662Z", "url": "https://files.pythonhosted.org/packages/63/25/b1d8db0a777b673998db289d5da0dc693de65ceef01ca90d0dc72e061672/noterator-0.4.3-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "02d41c64f6e3c439b3a690dce3a35e92", "sha256": "f03051558d9d31a6a524a275c080c3d4a7c15ddb67ff850f43629f9bfa3efbb9" }, "downloads": -1, "filename": "noterator-0.4.3.tar.gz", "has_sig": false, "md5_digest": "02d41c64f6e3c439b3a690dce3a35e92", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20869, "upload_time": "2016-10-31T17:12:30", "upload_time_iso_8601": "2016-10-31T17:12:30.738721Z", "url": "https://files.pythonhosted.org/packages/ea/0d/c15f666d7aeeabf2370ad83ba80e0004c0b31121218cf8db85cce9df33ff/noterator-0.4.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "e343ff4a018ba7f04b06d8971786c960", "sha256": "b1629bd96201be55993fc1bc71cc9dfd571c39d9e457253392d2d6526b4f7db8" }, "downloads": -1, "filename": "noterator-0.5.0-py3-none-any.whl", "has_sig": false, "md5_digest": "e343ff4a018ba7f04b06d8971786c960", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10453, "upload_time": "2019-10-22T10:11:23", "upload_time_iso_8601": "2019-10-22T10:11:23.214746Z", "url": "https://files.pythonhosted.org/packages/22/41/c52888c6b684837f012ed30cda6514b48f24d1edfcbfd718e9f834c60eec/noterator-0.5.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "9495d0d59591298ffd2ae8245f433dee", "sha256": "20d7be374ce184732146333ba1cb1deec45bb3947173e8c9e4fbf16b0f249cd4" }, "downloads": -1, "filename": "noterator-0.5.0.tar.gz", "has_sig": false, "md5_digest": "9495d0d59591298ffd2ae8245f433dee", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23921, "upload_time": "2019-10-22T10:11:25", "upload_time_iso_8601": "2019-10-22T10:11:25.430778Z", "url": "https://files.pythonhosted.org/packages/19/cc/36bc8f5842937fe0c9fb2b6ba3b128a5907588ff9f699d0e41216e6c3604/noterator-0.5.0.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "e343ff4a018ba7f04b06d8971786c960", "sha256": "b1629bd96201be55993fc1bc71cc9dfd571c39d9e457253392d2d6526b4f7db8" }, "downloads": -1, "filename": "noterator-0.5.0-py3-none-any.whl", "has_sig": false, "md5_digest": "e343ff4a018ba7f04b06d8971786c960", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10453, "upload_time": "2019-10-22T10:11:23", "upload_time_iso_8601": "2019-10-22T10:11:23.214746Z", "url": "https://files.pythonhosted.org/packages/22/41/c52888c6b684837f012ed30cda6514b48f24d1edfcbfd718e9f834c60eec/noterator-0.5.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "9495d0d59591298ffd2ae8245f433dee", "sha256": "20d7be374ce184732146333ba1cb1deec45bb3947173e8c9e4fbf16b0f249cd4" }, "downloads": -1, "filename": "noterator-0.5.0.tar.gz", "has_sig": false, "md5_digest": "9495d0d59591298ffd2ae8245f433dee", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23921, "upload_time": "2019-10-22T10:11:25", "upload_time_iso_8601": "2019-10-22T10:11:25.430778Z", "url": "https://files.pythonhosted.org/packages/19/cc/36bc8f5842937fe0c9fb2b6ba3b128a5907588ff9f699d0e41216e6c3604/noterator-0.5.0.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }