{ "info": { "author": "Romain Dorgueil", "author_email": "romain@dorgueil.net", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "Intended Audience :: Information Technology", "License :: OSI Approved :: Apache Software License", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3 :: Only", "Topic :: Software Development :: Libraries", "Topic :: Utilities" ], "description": "Whistle\n=======\n\n`Whistle` is a lightweight python library that allow your application components to communicate with each other by\ndispatching events and listening to them.\n\n.. image:: https://img.shields.io/pypi/v/whistle.svg\n :target: https://pypi.python.org/pypi/whistle\n :alt: PyPI\n\n.. image:: https://img.shields.io/pypi/pyversions/whistle.svg\n :target: https://pypi.python.org/pypi/whistle\n :alt: Versions\n\n.. image:: https://readthedocs.org/projects/whistle/badge/?version=latest\n :target: http://whistle.readthedocs.org/en/latest/?badge=latest\n :alt: Documentation Status\n\n.. image:: https://travis-ci.org/python-whistle/whistle.svg?branch=master\n :target: https://travis-ci.org/python-whistle/whistle\n\n.. image:: https://img.shields.io/coveralls/python-whistle/whistle/master.svg\n :target: https://coveralls.io/github/python-whistle/whistle?branch=master\n :alt: Coverage\n\n.. image:: https://app.fossa.io/api/projects/git%2Bgithub.com%2Fpython-whistle%2Fwhistle.svg?type=shield\n :target: https://app.fossa.io/projects/git%2Bgithub.com%2Fpython-whistle%2Fwhistle?ref=badge_shield\n :alt: License Status\n\n* Homepage: https://python-whistle.github.io/\n* Issues: https://github.com/python-whistle/whistle/issues\n\n\nInstall\n:::::::\n\n.. code-block:: shell\n\n pip install whistle\n\n\nQuick start\n:::::::::::\n\nInstall the `whistle` package:\n\n.. code-block:: shell-session\n\n $ pip install whistle\n\nCreate an event dispatcher:\n\n.. code-block:: python\n\n from whistle import EventDispatcher\n\n dispatcher = EventDispatcher()\n\nAdd a listener to react to events\n\n.. code-block:: python\n\n def on_spectacle_starts(event):\n print('Please turn down your phones!')\n\n dispatcher.add_listener('spectacle.starts', on_spectacle_starts)\n\nDispatch!\n\n.. code-block:: python\n\n dispatcher.dispatch('spectacle.starts')\n\n\n----\n\nMade with \u2665 by `Romain Dorgueil `_ and `contributors `_.\n\n.. image:: https://app.fossa.io/api/projects/git%2Bgithub.com%2Fpython-whistle%2Fwhistle.svg?type=large\n :target: https://app.fossa.io/projects/git%2Bgithub.com%2Fpython-whistle%2Fwhistle?ref=badge_large\n :alt: License Status\n\n\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "https://github.com/python-whistle/whistle/tarball/1.0.1", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://python-whistle.github.io/", "keywords": "", "license": "Apache License, Version 2.0", "maintainer": "", "maintainer_email": "", "name": "whistle", "package_url": "https://pypi.org/project/whistle/", "platform": "", "project_url": "https://pypi.org/project/whistle/", "project_urls": { "Download": "https://github.com/python-whistle/whistle/tarball/1.0.1", "Homepage": "https://python-whistle.github.io/" }, "release_url": "https://pypi.org/project/whistle/1.0.1/", "requires_dist": [ "coverage (~=4.4); extra == 'dev'", "pytest (~=3.4); extra == 'dev'", "pytest-cov (~=2.5); extra == 'dev'", "pytest-sugar (~=0.9.1); extra == 'dev'", "sphinx (~=1.7); extra == 'dev'", "yapf; extra == 'dev'" ], "requires_python": ">=3.5", "summary": "Event dispatcher (see python-whistle.github.io).", "version": "1.0.1" }, "last_serial": 3680689, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "56b5895eb98522303069043dca5db776", "sha256": "178c0cdc2ed6a6e1b4efcb0b3cc1aed678c77a7c6ed989f711a4e085969b2159" }, "downloads": -1, "filename": "whistle-1.0.0-py3.5.egg", "has_sig": false, "md5_digest": "56b5895eb98522303069043dca5db776", "packagetype": "bdist_egg", "python_version": "3.5", "requires_python": null, "size": 6676, "upload_time": "2017-11-04T11:07:37", "url": "https://files.pythonhosted.org/packages/65/de/0996cdc98d43211ebf175cc48d2f8c83b9a62a710a613a344cddcb5b53a8/whistle-1.0.0-py3.5.egg" }, { "comment_text": "", "digests": { "md5": "738e75eea79830ac91c24716a7a08df9", "sha256": "73b36a4fe6fac34009d03d66b287c719413006937ab31e8aaf2c050b154238ad" }, "downloads": -1, "filename": "whistle-1.0.0-py3.6.egg", "has_sig": false, "md5_digest": "738e75eea79830ac91c24716a7a08df9", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": null, "size": 6616, "upload_time": "2017-11-04T11:07:38", "url": "https://files.pythonhosted.org/packages/7a/75/1f3d94b9d7aa79c4ad0c84118a84886cd717fd8ea454ce864a118eedd493/whistle-1.0.0-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "6c540ff1a7f9fc7ee4ed00d66e9f06fa", "sha256": "0e56802c96be33fa9b546e6c775c66613422017e9f595648a5b96754c961c424" }, "downloads": -1, "filename": "whistle-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "6c540ff1a7f9fc7ee4ed00d66e9f06fa", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4661, "upload_time": "2017-11-04T11:07:35", "url": "https://files.pythonhosted.org/packages/0b/b7/02aa88126f5b2e7ef6beaf6fed08824b1da816c59da4be00bc7096b568e5/whistle-1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9fd99f0b3557588f22b1ee58e76315f8", "sha256": "036ace344894cbd1c045d9de86e09c6f66054a3975a0f547ae3fe65ab72da586" }, "downloads": -1, "filename": "whistle-1.0.0.tar.gz", "has_sig": false, "md5_digest": "9fd99f0b3557588f22b1ee58e76315f8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3580, "upload_time": "2017-11-04T11:07:41", "url": "https://files.pythonhosted.org/packages/50/ab/7684ec6b62587d7211a1d083f57ec0e9208f9363861f5ea88bf5b9534af1/whistle-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "30a564c6365026918e49d68e52c0ffa4", "sha256": "356e894f36bcb06b50107fb26c5dfc8471368648a409f1a8f63cb86eeb707234" }, "downloads": -1, "filename": "whistle-1.0.1-py3.5.egg", "has_sig": false, "md5_digest": "30a564c6365026918e49d68e52c0ffa4", "packagetype": "bdist_egg", "python_version": "3.5", "requires_python": ">=3.5", "size": 7319, "upload_time": "2018-03-18T11:18:04", "url": "https://files.pythonhosted.org/packages/5d/1c/ab5e895d4199e17528c2856a42ba57213cb1fc94b612dfa39623a7e104d4/whistle-1.0.1-py3.5.egg" }, { "comment_text": "", "digests": { "md5": "27c5181e2360fa19256d4af2f03c9aa2", "sha256": "75ed6427bf6f01b2ae641dc3eb24b0734798d315b80e6861ff0e90909f8f2653" }, "downloads": -1, "filename": "whistle-1.0.1-py3.6.egg", "has_sig": false, "md5_digest": "27c5181e2360fa19256d4af2f03c9aa2", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": ">=3.5", "size": 7251, "upload_time": "2018-03-18T11:18:06", "url": "https://files.pythonhosted.org/packages/cb/d4/9b636ddcb22be73258a4ac38a9689ec908ef21e6993bb767e7fbd60b2fa1/whistle-1.0.1-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "4e868f22c3c7d6ecb852630d654e7ba3", "sha256": "fb38d24a97b2ebc436aad3e79e28f8782dc31fb94a6568532655d02be727fd57" }, "downloads": -1, "filename": "whistle-1.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "4e868f22c3c7d6ecb852630d654e7ba3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 5860, "upload_time": "2018-03-18T11:18:02", "url": "https://files.pythonhosted.org/packages/63/88/b7efd8f76a2f2bd9ba5767345e724e2d29cf618c8de489d093fb887aa6a8/whistle-1.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e08c7659a8cfb0f8a9c54f54682bbc22", "sha256": "960775d90bd26cab4b135df901593cee7ae9e99c489d4e2c8d6224355c5f2b90" }, "downloads": -1, "filename": "whistle-1.0.1.tar.gz", "has_sig": false, "md5_digest": "e08c7659a8cfb0f8a9c54f54682bbc22", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 4475, "upload_time": "2018-03-18T11:18:07", "url": "https://files.pythonhosted.org/packages/94/d1/ead7c9c53b5a39a131ccd89e9d4c95f4e810d7c310eb7d6bea275eaecd63/whistle-1.0.1.tar.gz" } ], "1.0a1": [ { "comment_text": "", "digests": { "md5": "28ad5784354f405870f9cffc75a3d34c", "sha256": "f6df34d27d880f231c9d58c454ec41fcda83a4009d094124514b769996261a22" }, "downloads": -1, "filename": "whistle-1.0a1-py3.5.egg", "has_sig": false, "md5_digest": "28ad5784354f405870f9cffc75a3d34c", "packagetype": "bdist_egg", "python_version": "3.5", "requires_python": null, "size": 7340, "upload_time": "2017-10-17T09:16:46", "url": "https://files.pythonhosted.org/packages/00/90/e3c721088f459b86bb0ed27aca2b17b5ba583fc18db1ba11621bb0b8d443/whistle-1.0a1-py3.5.egg" }, { "comment_text": "", "digests": { "md5": "6d154f05ee836b97724079491c99de8f", "sha256": "b9252db8e5b6e13009c69099fe5db8e49174046a76de28bb390f31d63c743562" }, "downloads": -1, "filename": "whistle-1.0a1-py3.6.egg", "has_sig": false, "md5_digest": "6d154f05ee836b97724079491c99de8f", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": null, "size": 7251, "upload_time": "2017-10-17T09:16:47", "url": "https://files.pythonhosted.org/packages/8c/7f/62e23b4c6bba4b51acfd31cfb6f81ff79b5d1d93c6e10c659bd05f717d12/whistle-1.0a1-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "5d491e5de287bd7158ad14f29270c859", "sha256": "30deff1d89c7b53780dd77d6a5eb567abe00bf7ef109da82e634fdf7bb415afb" }, "downloads": -1, "filename": "whistle-1.0a1-py3-none-any.whl", "has_sig": false, "md5_digest": "5d491e5de287bd7158ad14f29270c859", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4889, "upload_time": "2017-10-17T09:16:44", "url": "https://files.pythonhosted.org/packages/4a/54/347a76d95e76f1a3f8487226f58f763746c63dd45f932ae9d6b2a4096ab2/whistle-1.0a1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "24ebb03312eb0131e40dba6f4bfece1b", "sha256": "5817944041258872fd8737e1361f38aac983b979431a5dfe5513de1a646ff133" }, "downloads": -1, "filename": "whistle-1.0a1.tar.gz", "has_sig": false, "md5_digest": "24ebb03312eb0131e40dba6f4bfece1b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3378, "upload_time": "2017-10-17T09:16:48", "url": "https://files.pythonhosted.org/packages/89/31/58f44116dfda20ae70d61880e50e8a66fd01be75cdfe82c51898ce68d0ce/whistle-1.0a1.tar.gz" } ], "1.0a2": [ { "comment_text": "", "digests": { "md5": "fa82233795a1724fc2e312f06461087a", "sha256": "bd55aad94ef22e6b392f26c282fbcc74e0db62e4eb6a707e63b396fa54afa460" }, "downloads": -1, "filename": "whistle-1.0a2-py3.5.egg", "has_sig": false, "md5_digest": "fa82233795a1724fc2e312f06461087a", "packagetype": "bdist_egg", "python_version": "3.5", "requires_python": null, "size": 6236, "upload_time": "2017-10-17T09:24:10", "url": "https://files.pythonhosted.org/packages/5a/69/5adc2ee935354e4595e79c3b7f467fb7cc0e1fe065d2d03f35665acdbfb0/whistle-1.0a2-py3.5.egg" }, { "comment_text": "", "digests": { "md5": "a0ab5ef0e2415db094a5f20ebad8453c", "sha256": "b80614675fbebd528c085d8f139221dd38898272d5519bbdaac52ef9423b08cb" }, "downloads": -1, "filename": "whistle-1.0a2-py3.6.egg", "has_sig": false, "md5_digest": "a0ab5ef0e2415db094a5f20ebad8453c", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": null, "size": 6158, "upload_time": "2017-10-17T09:24:11", "url": "https://files.pythonhosted.org/packages/fb/83/47c90d133a2bcb8db8851ca2655523dceca935ca46db67791c1dd5420b4a/whistle-1.0a2-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "87e3f4eb4bd74681b823b6bb16f8b428", "sha256": "1dbdbaceab01251d7c8ca95f0fa47a89f150d1d4cc04c6028126bfa6c23a4a9b" }, "downloads": -1, "filename": "whistle-1.0a2-py3-none-any.whl", "has_sig": false, "md5_digest": "87e3f4eb4bd74681b823b6bb16f8b428", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4436, "upload_time": "2017-10-17T09:24:09", "url": "https://files.pythonhosted.org/packages/99/d4/867dbd4eb9a1ae4956b6d1fcc00fa34934be92f3b5f9a8ebd7808f850994/whistle-1.0a2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b6bbe798bf15bb0e7bd5ccfbfe201feb", "sha256": "69661d4c3ce1601ef7f45f2bedd8b9b1e1b27bcf19e953aa8c5f0e80041225a2" }, "downloads": -1, "filename": "whistle-1.0a2.tar.gz", "has_sig": false, "md5_digest": "b6bbe798bf15bb0e7bd5ccfbfe201feb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3303, "upload_time": "2017-10-17T09:24:12", "url": "https://files.pythonhosted.org/packages/cd/55/755470f03e8a16a159851edc81cce2f40f50ce7eb203c4a14bdc270e8b33/whistle-1.0a2.tar.gz" } ], "1.0a3": [ { "comment_text": "", "digests": { "md5": "9616dfdc5f901fabb706c3853c1075cc", "sha256": "db0c423a0c95e6337cf184e030fab8815629516ae3e56de0034ec4a2bdc8579b" }, "downloads": -1, "filename": "whistle-1.0a3-py3.5.egg", "has_sig": false, "md5_digest": "9616dfdc5f901fabb706c3853c1075cc", "packagetype": "bdist_egg", "python_version": "3.5", "requires_python": null, "size": 6694, "upload_time": "2017-10-17T10:45:48", "url": "https://files.pythonhosted.org/packages/bc/76/a776377a687bcd91f094df9f68d93247e51c66324f7ebcf1971b87b01f1a/whistle-1.0a3-py3.5.egg" }, { "comment_text": "", "digests": { "md5": "8b728f4efa7952915a6b84789d5b2744", "sha256": "c7e26fe5f86e3bdafbef92426769a402ba5b3c741645e624b428b5ef925001ec" }, "downloads": -1, "filename": "whistle-1.0a3-py3.6.egg", "has_sig": false, "md5_digest": "8b728f4efa7952915a6b84789d5b2744", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": null, "size": 6620, "upload_time": "2017-10-17T10:45:49", "url": "https://files.pythonhosted.org/packages/72/e2/2c5f2875da7fbd4ef68d8edf2adcb1a9116ff4b69f70b39190fde96427a1/whistle-1.0a3-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "53cf72a82a21e66020be46f9cc99fad3", "sha256": "8932d4ed1f0d1078e049d839e2b1c2361daf3894c23fea8b50a30161710742a8" }, "downloads": -1, "filename": "whistle-1.0a3-py3-none-any.whl", "has_sig": false, "md5_digest": "53cf72a82a21e66020be46f9cc99fad3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4653, "upload_time": "2017-10-17T10:45:46", "url": "https://files.pythonhosted.org/packages/f8/46/cb9f8f849ebc4b2dc31e5e3945d3cd914571ea0a0fd57a18a8a53ac2b2cc/whistle-1.0a3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8461eecf8da0b0e2b7f4bb1a04c2d223", "sha256": "a4896649e2df2e60b4ce74c360d06044cc59e3ac97de96efaad9b45ba1ab90e9" }, "downloads": -1, "filename": "whistle-1.0a3.tar.gz", "has_sig": false, "md5_digest": "8461eecf8da0b0e2b7f4bb1a04c2d223", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3561, "upload_time": "2017-10-17T10:45:50", "url": "https://files.pythonhosted.org/packages/2e/81/7a1a78134fa31c33a9922a5c003a5e2d15012a9077c2febfa8ebb613bc0f/whistle-1.0a3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "30a564c6365026918e49d68e52c0ffa4", "sha256": "356e894f36bcb06b50107fb26c5dfc8471368648a409f1a8f63cb86eeb707234" }, "downloads": -1, "filename": "whistle-1.0.1-py3.5.egg", "has_sig": false, "md5_digest": "30a564c6365026918e49d68e52c0ffa4", "packagetype": "bdist_egg", "python_version": "3.5", "requires_python": ">=3.5", "size": 7319, "upload_time": "2018-03-18T11:18:04", "url": "https://files.pythonhosted.org/packages/5d/1c/ab5e895d4199e17528c2856a42ba57213cb1fc94b612dfa39623a7e104d4/whistle-1.0.1-py3.5.egg" }, { "comment_text": "", "digests": { "md5": "27c5181e2360fa19256d4af2f03c9aa2", "sha256": "75ed6427bf6f01b2ae641dc3eb24b0734798d315b80e6861ff0e90909f8f2653" }, "downloads": -1, "filename": "whistle-1.0.1-py3.6.egg", "has_sig": false, "md5_digest": "27c5181e2360fa19256d4af2f03c9aa2", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": ">=3.5", "size": 7251, "upload_time": "2018-03-18T11:18:06", "url": "https://files.pythonhosted.org/packages/cb/d4/9b636ddcb22be73258a4ac38a9689ec908ef21e6993bb767e7fbd60b2fa1/whistle-1.0.1-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "4e868f22c3c7d6ecb852630d654e7ba3", "sha256": "fb38d24a97b2ebc436aad3e79e28f8782dc31fb94a6568532655d02be727fd57" }, "downloads": -1, "filename": "whistle-1.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "4e868f22c3c7d6ecb852630d654e7ba3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 5860, "upload_time": "2018-03-18T11:18:02", "url": "https://files.pythonhosted.org/packages/63/88/b7efd8f76a2f2bd9ba5767345e724e2d29cf618c8de489d093fb887aa6a8/whistle-1.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e08c7659a8cfb0f8a9c54f54682bbc22", "sha256": "960775d90bd26cab4b135df901593cee7ae9e99c489d4e2c8d6224355c5f2b90" }, "downloads": -1, "filename": "whistle-1.0.1.tar.gz", "has_sig": false, "md5_digest": "e08c7659a8cfb0f8a9c54f54682bbc22", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 4475, "upload_time": "2018-03-18T11:18:07", "url": "https://files.pythonhosted.org/packages/94/d1/ead7c9c53b5a39a131ccd89e9d4c95f4e810d7c310eb7d6bea275eaecd63/whistle-1.0.1.tar.gz" } ] }