{ "info": { "author": "David Keijser", "author_email": "keijser@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "smoke\n=====\n\nA concise Publish/Subscribe utility module. It supports both free-form signal\nnames and a stricter style where signals are declared first. You can also mix\nthem.\n\n.. image:: https://secure.travis-ci.org/keis/smoke.png?branch=master\n :target: http://travis-ci.org/keis/smoke\n\n.. image:: https://coveralls.io/repos/keis/smoke/badge.png?branch=master\n :target: https://coveralls.io/r/keis/smoke?branch=master\n\nUsage\n-----\n\n.. code:: python\n\n import smoke\n\n class MyCls(smoke.Broker):\n appears = smoke.signal('appears')\n leaves = smoke.signal('leaves')\n\n def say_hello(what):\n print(\"hello %s\" % (what,))\n\n def say_goodbye(what):\n print(\"good bye %s\" % (what,))\n\n # Using broker\n o = MyCls()\n o.subscribe(\"appears\", say_hello)\n o.publish(\"appears\", what='world')\n\n # Using declared signals\n o = MyCls()\n o.leaves.subscribe(say_goodbye)\n o.leaves.publish(what='world')\n\n # Mixing\n o = MyCls()\n o.subscribe(\"appears\", say_hello)\n o.appears.publish()\n", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "UNKNOWN", "keywords": "publish subscribe pubsub signal", "license": "MIT", "maintainer": null, "maintainer_email": null, "name": "smoke", "package_url": "https://pypi.org/project/smoke/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/smoke/", "project_urls": { "Download": "UNKNOWN", "Homepage": "UNKNOWN" }, "release_url": "https://pypi.org/project/smoke/0.2.0/", "requires_dist": null, "requires_python": null, "summary": "concise publish/subscribe utility", "version": "0.2.0" }, "last_serial": 942057, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "2d372c968c1853b43a76b6816351eba5", "sha256": "e388fb61051e9fd6c972e977ed963c71285a67df517eacebde312900bdb5e40a" }, "downloads": -1, "filename": "smoke-0.1.0.tar.gz", "has_sig": false, "md5_digest": "2d372c968c1853b43a76b6816351eba5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2614, "upload_time": "2012-12-22T12:13:50", "url": "https://files.pythonhosted.org/packages/57/0f/0d9eca3df03c6133fdf471fe3530716e8173e4539f87ddbb2da4ad85de44/smoke-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "52907fb59b826d15d803a5b05fc019ca", "sha256": "32dc0dd1202925ab9d0888b27b8385ea463200e9f852cdfe59e63efcbf6158a5" }, "downloads": -1, "filename": "smoke-0.1.1.tar.gz", "has_sig": false, "md5_digest": "52907fb59b826d15d803a5b05fc019ca", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3144, "upload_time": "2013-09-17T20:13:00", "url": "https://files.pythonhosted.org/packages/d6/28/46da5af897f324ba32d2d57aa30e6099e8a15f151e8f740807a9c165740c/smoke-0.1.1.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "2b8f31894f689437451f6336a7663692", "sha256": "590524074972eb9cbb8823c25fc7d112441d49711d8904195cb3f05e1e69bbad" }, "downloads": -1, "filename": "smoke-0.2.0.tar.gz", "has_sig": false, "md5_digest": "2b8f31894f689437451f6336a7663692", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4578, "upload_time": "2013-12-11T17:09:53", "url": "https://files.pythonhosted.org/packages/1c/5a/550f7cce4d9c7bce0c3139d164fb40fb9fdccb3ea5f8dcb80aef15b9c9d5/smoke-0.2.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "2b8f31894f689437451f6336a7663692", "sha256": "590524074972eb9cbb8823c25fc7d112441d49711d8904195cb3f05e1e69bbad" }, "downloads": -1, "filename": "smoke-0.2.0.tar.gz", "has_sig": false, "md5_digest": "2b8f31894f689437451f6336a7663692", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4578, "upload_time": "2013-12-11T17:09:53", "url": "https://files.pythonhosted.org/packages/1c/5a/550f7cce4d9c7bce0c3139d164fb40fb9fdccb3ea5f8dcb80aef15b9c9d5/smoke-0.2.0.tar.gz" } ] }