{ "info": { "author": "Luan Guimar\u00e3es Lacerda", "author_email": "luan@live.in", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "Operating System :: POSIX", "Programming Language :: Python", "Programming Language :: Python :: 3.6", "Topic :: Software Development :: Libraries" ], "description": "\n\n \n\n\n \n\n\n \n\n\n \n\n\n\n# Python Gabby\n\nA simple controller for MQTT and MQTT-SN pipelines using Mosquitto and RSMB\n\n## Installing\n\nYou can install the package through pip\n\n```bash\npip install gabby\n```\n\n## Examples\n\nBefore run examples, please initialize the Mosquitto or RSMB server.\n\n#### Receiving messages\n\n```python\nfrom gabby.gabby import Gabby, Topic\nfrom gabby.controller import Controller\n\n\nclass PrinterGabby(Gabby):\n def transform(self, message):\n print(f'ARRIVED! Data: {message.data}')\n return []\n\n\nif __name__ == \"__main__\":\n controller = Controller()\n\n topic_A = Topic('queue/a', 'i')\n topic_B = Topic('queue/b', 'i')\n\n printer_gabby = PrinterGabby([topic_A], [topic_B])\n\n controller.add_gabby(printer_gabby)\n controller.run()\n```\n\n#### Transmitting messages\n\n```python\nfrom gabby.gabby import Gabby, Topic\nfrom gabby.message import Message\n\n\nif __name__ == \"__main__\":\n topic_A = Topic('queue/a', 'i')\n topic_B = Topic('queue/b', 'i')\n\n g = Gabby([topic_B], [topic_A])\n data = (1,)\n g.send(Message(data, g.output_topics))\n\n```\n\n#### Using UDP broker\n\n```python\nfrom gabby.gabby import Gabby, Topic\nfrom gabby.controller import Controller\n\n\nclass PrinterGabby(Gabby):\n def transform(self, message):\n print(f'ARRIVED! Data: {message.data}')\n return []\n\n\nif __name__ == \"__main__\":\n controller = Controller()\n\n topic_A = Topic('queue/a', 'i', 'udp')\n topic_B = Topic('queue/b', 'i', 'udp')\n\n printer_gabby = PrinterGabby([topic_A], [topic_B], transmission='udp')\n\n controller.add_gabby(printer_gabby)\n controller.run()\n```\n\n\n#### Using both UDP and TCP topics\n\nYou can use both TCP and UDP brokers\n\n```python\nimport logging\nfrom gabby import Gabby, Topic, Controller\n\n\nclass LoggerGabby(Gabby):\n def transform(self, message):\n logging.debug(f\"ARRIVED! Data: {message.data}\")\n\n\ndef setup_logging(level):\n \"\"\"\n Setup logging level\n \"\"\"\n logging.basicConfig(\n format='%(levelname)s: %(message)s',\n level=getattr(logging, level.upper())\n )\n\n\nif __name__ == \"__main__\":\n setup_logging('debug')\n controller = Controller()\n\n topic_A = Topic('qa', 'i', 'udp')\n topic_F = Topic('qb', 'i', 'udp')\n topic_B = Topic('queue/1', 'i', 'tcp')\n topic_C = Topic('queue/a', 'i', 'tcp')\n topic_D = Topic('queue/b', 'i', 'tcp')\n topic_E = Topic('queue/c', 'i', 'tcp')\n\n logger_gabby = LoggerGabby(\n [topic_A, topic_F, topic_B, topic_C, topic_D, topic_E],\n transmission=['tcp', 'udp']\n )\n\n controller.add_gabby(logger_gabby)\n controller.run()\n\n```\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/luanguimaraesla/gabby", "keywords": "iot,mosquitto,mqtt,mqttsn,message,queue,pipeline,multiprocessing", "license": "MIT License", "maintainer": "", "maintainer_email": "", "name": "gabby", "package_url": "https://pypi.org/project/gabby/", "platform": "", "project_url": "https://pypi.org/project/gabby/", "project_urls": { "Homepage": "https://github.com/luanguimaraesla/gabby" }, "release_url": "https://pypi.org/project/gabby/0.1.0/", "requires_dist": [ "paho-mqtt", "mqttsn", "pytest; extra == 'dev'", "pytest-cov; extra == 'dev'", "coverage; extra == 'dev'", "flake8; extra == 'dev'", "bumpversion; extra == 'dev'", "docutils; extra == 'docs'", "sphinx-autobuild; extra == 'docs'" ], "requires_python": "", "summary": "A simple controller for message queue pipelines", "version": "0.1.0" }, "last_serial": 3972561, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "cd95b30b70f0ed76c38a94e2746b7a6c", "sha256": "37c8f50c84a42512dc09a09fe59c4e51559709ab91ff4376c7c3be03e08cb3cb" }, "downloads": -1, "filename": "gabby-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "cd95b30b70f0ed76c38a94e2746b7a6c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 1890, "upload_time": "2018-05-24T21:39:15", "url": "https://files.pythonhosted.org/packages/d6/f5/aa58b3132dbb8b6fc0634a8ae37ee6394d57ed8bc92f2ec88533d4551b28/gabby-0.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9a48f668248aa24bf25119c283fca5dd", "sha256": "e6bffdb02adf71e0a750a6778d5a622b8c82977561107b8e449bcdb81a2d897a" }, "downloads": -1, "filename": "gabby-0.0.1.tar.gz", "has_sig": false, "md5_digest": "9a48f668248aa24bf25119c283fca5dd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1738, "upload_time": "2018-05-24T21:39:17", "url": "https://files.pythonhosted.org/packages/cf/c6/e8238f8f1cd7496886682b238dcd0636b8ee82bbb5452dc19817a62efc7d/gabby-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "7c48bc232db5dc5ba69260ce196c506b", "sha256": "7d0b2477eb5f48bbb2a0bafcbb7102ce392288ebf65570091bd6eda6477f671c" }, "downloads": -1, "filename": "gabby-0.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "7c48bc232db5dc5ba69260ce196c506b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6509, "upload_time": "2018-05-28T15:16:06", "url": "https://files.pythonhosted.org/packages/14/4c/f7e2569578cf90f1f1efa9f939d3e22edfed12f1e8305375e4ec0af16e09/gabby-0.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f919acfc75a1a29ff73e231517538838", "sha256": "4268c36fc51a1b9f0f8763699911d1acc7d4467c988ffafead40f75e0593aaf7" }, "downloads": -1, "filename": "gabby-0.0.2.tar.gz", "has_sig": false, "md5_digest": "f919acfc75a1a29ff73e231517538838", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4806, "upload_time": "2018-05-28T15:16:08", "url": "https://files.pythonhosted.org/packages/d5/1a/9b4b07f53227c14676d3800f0f02fd5517e3deae1c3d85d68c3d41a66a23/gabby-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "57efe67d1588eacabb9b00fbc6bbd7e4", "sha256": "81c7b31ef1191d8234a463149b4d1aeffc0d6ed26cabf882b4bbfb50448ee920" }, "downloads": -1, "filename": "gabby-0.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "57efe67d1588eacabb9b00fbc6bbd7e4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7024, "upload_time": "2018-05-30T17:23:49", "url": "https://files.pythonhosted.org/packages/12/b1/0deecdc58acec168ef71db82ad22775a8018bfa346af25f85372eb1f1e72/gabby-0.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bb3c65f74ca8bb820a18647dc5e89ca6", "sha256": "1cd09f598a2d7c22eb8b368e09f7dae3afa6dfc08feb1a58e393f0164eeba72b" }, "downloads": -1, "filename": "gabby-0.0.3.tar.gz", "has_sig": false, "md5_digest": "bb3c65f74ca8bb820a18647dc5e89ca6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5250, "upload_time": "2018-05-30T17:23:50", "url": "https://files.pythonhosted.org/packages/34/8e/b16abec8fa93064375fa153cb54a55b19802b551981e503d598fcc0de88a/gabby-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "76b7ba53ad34f2a8963a79cb7767edee", "sha256": "33c9bde73226e33298d69ea08a643eb7eba76e4afcebc0049bada0aa190c0193" }, "downloads": -1, "filename": "gabby-0.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "76b7ba53ad34f2a8963a79cb7767edee", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7089, "upload_time": "2018-06-01T19:49:48", "url": "https://files.pythonhosted.org/packages/18/e3/0a82169a5c58565bc9fbca53fa6e4362674be778fdcc942d49591ba2b8cb/gabby-0.0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b57a295f33b2d46dc90f1795787917b1", "sha256": "7a2f2eadaec7c8ca4d7186bd3291a5c6bf34b5e4769b6a70fa0cd93cc5e983cb" }, "downloads": -1, "filename": "gabby-0.0.4.tar.gz", "has_sig": false, "md5_digest": "b57a295f33b2d46dc90f1795787917b1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5318, "upload_time": "2018-06-01T19:49:50", "url": "https://files.pythonhosted.org/packages/c0/93/3817d317649fa813daf99a4835dcc7a1988877dc0c7cf149764176d71f49/gabby-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "c525c5411e798f70f935649d93a0d481", "sha256": "c7c9c3a7c7f5ef4c7169387cb479f1266e22b714d0dd8d08254b714550aa1d33" }, "downloads": -1, "filename": "gabby-0.0.5-py3-none-any.whl", "has_sig": false, "md5_digest": "c525c5411e798f70f935649d93a0d481", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7806, "upload_time": "2018-06-01T23:25:50", "url": "https://files.pythonhosted.org/packages/99/89/4311b3a3dcc2c910f09ebb5714ba9ff550c8c1fe3d507ceafbe03776cc5f/gabby-0.0.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f16619c0e6467ca8498b496099a34f4f", "sha256": "5ce34933342e3c351ee6b635d4ffe3849262747e105680b93a680e1c3525ee6a" }, "downloads": -1, "filename": "gabby-0.0.5.tar.gz", "has_sig": false, "md5_digest": "f16619c0e6467ca8498b496099a34f4f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5697, "upload_time": "2018-06-01T23:25:51", "url": "https://files.pythonhosted.org/packages/ab/01/a6f7db39182e23e50ee47ca4694fba58a0404968a55904316b4bfb7b8272/gabby-0.0.5.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "b0c8c9812e09210f6d94086973604ba1", "sha256": "adaf3af8035f0d1609dc1c93bc4dbc22b34c04f966cb7c19ebd64e7ad996f7b0" }, "downloads": -1, "filename": "gabby-0.0.6-py3-none-any.whl", "has_sig": false, "md5_digest": "b0c8c9812e09210f6d94086973604ba1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7816, "upload_time": "2018-06-06T22:57:07", "url": "https://files.pythonhosted.org/packages/fc/e3/3a53a5dbb5c047bdcb8382cec6f6fac9a9f6c25958aacb925495725eb751/gabby-0.0.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "88ec6c0b666a25e65b3876913c3918a2", "sha256": "e7b819690066f096264959efea3af2566403f9d45fb5bfa3478c21593b257e38" }, "downloads": -1, "filename": "gabby-0.0.6.tar.gz", "has_sig": false, "md5_digest": "88ec6c0b666a25e65b3876913c3918a2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5712, "upload_time": "2018-06-06T22:57:08", "url": "https://files.pythonhosted.org/packages/5f/85/1c30130d7c1a55996f004e7cf6658fb36002583e549ebc8f96d27fc98f59/gabby-0.0.6.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "e121e4f410e3fef194bffd895a58dadc", "sha256": "300e170e059fd8e230f1ccade2ceebbc9aeb52669507fc677e045887024fc634" }, "downloads": -1, "filename": "gabby-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "e121e4f410e3fef194bffd895a58dadc", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10999, "upload_time": "2018-06-18T06:35:10", "url": "https://files.pythonhosted.org/packages/44/00/29a39b78b177fd1c8ad15d29dab1436d28a2306740f00c3e0939c2b98a50/gabby-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bee5eb813f2ae2aae374773352ee1aea", "sha256": "6c8eddb31967782544085c5c7ddbcff167a590dae682521a07318b9b2b125663" }, "downloads": -1, "filename": "gabby-0.1.0.tar.gz", "has_sig": false, "md5_digest": "bee5eb813f2ae2aae374773352ee1aea", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7495, "upload_time": "2018-06-18T06:35:11", "url": "https://files.pythonhosted.org/packages/ec/fb/9252033bcd6625d6aa6d486c60994547933a23b1cc0e703e918bb628a407/gabby-0.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "e121e4f410e3fef194bffd895a58dadc", "sha256": "300e170e059fd8e230f1ccade2ceebbc9aeb52669507fc677e045887024fc634" }, "downloads": -1, "filename": "gabby-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "e121e4f410e3fef194bffd895a58dadc", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10999, "upload_time": "2018-06-18T06:35:10", "url": "https://files.pythonhosted.org/packages/44/00/29a39b78b177fd1c8ad15d29dab1436d28a2306740f00c3e0939c2b98a50/gabby-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bee5eb813f2ae2aae374773352ee1aea", "sha256": "6c8eddb31967782544085c5c7ddbcff167a590dae682521a07318b9b2b125663" }, "downloads": -1, "filename": "gabby-0.1.0.tar.gz", "has_sig": false, "md5_digest": "bee5eb813f2ae2aae374773352ee1aea", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7495, "upload_time": "2018-06-18T06:35:11", "url": "https://files.pythonhosted.org/packages/ec/fb/9252033bcd6625d6aa6d486c60994547933a23b1cc0e703e918bb628a407/gabby-0.1.0.tar.gz" } ] }