{ "info": { "author": "Arnulfo Solis", "author_email": "arnulfojr94@gmail.com", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "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 :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Internet :: WWW/HTTP :: Dynamic Content", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "# Paho's MQTT toolkit\n\nWelcome to Paho's MQTT Toolkit.\n\n## For who? and why?\n\nThis toolkit if for those who have gone through the documentation of the [Paho's MQTT library and its examples](https://www.eclipse.org/paho/clients/python/) and, like me, have felt that the API is somehow off and complicated to onboard applications.\n\nI, personally, like Paho's MQTT library and I don't wish to replace it in anyway. However, I want to write applications that in a way, are familiar to the frameworks I use, e.g., Flask or Sanic.\nAnd therefore, abstracting the underlying implementation by using a solid configuration base with a simplified API.\n\n### What's the base configuration?\n\nThe base configuration of this toolkit uses Paho's event loop implementation by using the `start_loop` and `stop_loop` methods and creating a single entrypoint method that accepts different configuration parameters, `start_async`.\n\n## Simple Usage\n\nFor more examples refer to the examples directory.\n\n\n```python\nimport time\n\nfrom paho.mqtt.client import Client\n\nfrom pahotoolkit import (\n init,\n start_async,\n stop_async,\n subscribe,\n json_message,\n)\n\nfrom my_settings import (\n HOST,\n PORT,\n USERNAME,\n PASSWORD,\n LOG_CONFIG\n)\n\n\n@subscribe('/temperature')\ndef handle_temperature(mqtt_client: Client, userdata, message):\n print(f'Got {message}')\n\n\n@subscribe('/my/topic')\n@json_message() # by default, non-json messages in the topic are ignored\ndef listen_my_topic(payload: dict, *args, **kwargs):\n # todo: do something with the payload\n pass\n\n\n@on_connect()\ndef client_connected(mqtt_client: Client, *args, **kwargs):\n \"\"\"Publish something on_connect.\"\"\"\n mqtt_client.publish('/clients', 'Paho\\'s MQTT toolkit message!')\n\n\n# log_config => https://docs.python.org/3/library/logging.config.html#logging.config.dictConfig\n# the default MQTT Client uses the default's MQTT Client constructor\n# https://github.com/eclipse/paho.mqtt.python#client-1\ndef main():\n client: Client = start_async(host=HOST, port=PORT, # port default to 1883 if not given\n username=USERNAME, password=PASSWORD, # optional fields\n initialize=False, log_config=LOG_CONFIG) # optional fields\n\n init(client) # only required if initialize=False, else by default is automatically called\n\n while True:\n time.sleep(1) # or do something in this thread...\n\n\nif __name__ == '__main__':\n try:\n main()\n finally:\n stop_async()\n```\n\n## Contact\n\nArnulfo Solis\n\n* arnulfojr94@gmail.com", "description_content_type": "text/markdown", "docs_url": null, "download_url": "https://bitbucket.org/kiotsystem/paho-toolkit/get/0.1.4.2.tar.gz", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://bitbucket.org/kiotsystem/paho-toolkit", "keywords": "paho,eclipse,mqtt,toolkit,framework", "license": "", "maintainer": "", "maintainer_email": "", "name": "pahotoolkit", "package_url": "https://pypi.org/project/pahotoolkit/", "platform": "any", "project_url": "https://pypi.org/project/pahotoolkit/", "project_urls": { "Download": "https://bitbucket.org/kiotsystem/paho-toolkit/get/0.1.4.2.tar.gz", "Homepage": "https://bitbucket.org/kiotsystem/paho-toolkit" }, "release_url": "https://pypi.org/project/pahotoolkit/0.1.4.2/", "requires_dist": null, "requires_python": "", "summary": "Paho's MQTT dev Toolkit", "version": "0.1.4.2" }, "last_serial": 4399615, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "44e524b09998eba581ce662bd97cbfd2", "sha256": "6fbdfdeba8adefa580f43527e29168f464ceeb5cd142299c411d6c4c71e0da72" }, "downloads": -1, "filename": "pahotoolkit-0.1.tar.gz", "has_sig": false, "md5_digest": "44e524b09998eba581ce662bd97cbfd2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6288, "upload_time": "2018-09-23T15:07:53", "url": "https://files.pythonhosted.org/packages/f7/d1/a0ee840a4f058ebced9f7a49743d9a2d3db70d582f7adde4aeee0439bde7/pahotoolkit-0.1.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "e881b9aac8270a09bfdbfac772bbab9b", "sha256": "bfb01efc3e0c7e9c4e45be8309f8b1ce4e1c922fd9ca6223beb49f735e0362af" }, "downloads": -1, "filename": "pahotoolkit-0.1.1.tar.gz", "has_sig": false, "md5_digest": "e881b9aac8270a09bfdbfac772bbab9b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6288, "upload_time": "2018-09-23T15:14:46", "url": "https://files.pythonhosted.org/packages/52/b4/7a2999ae2031854d55b27c930a56b3ef99b478e63bbd7d793aa200f448db/pahotoolkit-0.1.1.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "59796ebb89a1ad20e5a5163e2fffa391", "sha256": "31a869d72791fedb4ead2c1b515e9db1ee72303fe11ad165402b152070a9b196" }, "downloads": -1, "filename": "pahotoolkit-0.1.4.tar.gz", "has_sig": false, "md5_digest": "59796ebb89a1ad20e5a5163e2fffa391", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6290, "upload_time": "2018-09-23T17:19:38", "url": "https://files.pythonhosted.org/packages/3a/ca/0dfd6436c6bf8b515a06a9bfae96c1d031a49dcf1fd8e0ad07f0eed5fd2c/pahotoolkit-0.1.4.tar.gz" } ], "0.1.4.2": [ { "comment_text": "", "digests": { "md5": "e2b76f24a3b71330f0dd24f7924456d2", "sha256": "81776010fe74d0ae7da5886a83b88e1dd72cff65f43aec134351bdf82f220f6b" }, "downloads": -1, "filename": "pahotoolkit-0.1.4.2.tar.gz", "has_sig": false, "md5_digest": "e2b76f24a3b71330f0dd24f7924456d2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6335, "upload_time": "2018-10-21T14:45:32", "url": "https://files.pythonhosted.org/packages/45/6d/90dffe65de1fd76740e863afc45296c6440f8bc2bea275303885880ff60f/pahotoolkit-0.1.4.2.tar.gz" } ], "0.1a0": [ { "comment_text": "", "digests": { "md5": "cd6d810e3850142a3d42cfecb77d2282", "sha256": "c61d177da02f3e44b83fd873fd906c81dd40d583a4c73fcee27ee1f57b0924c4" }, "downloads": -1, "filename": "pahotoolkit-0.1a0.tar.gz", "has_sig": false, "md5_digest": "cd6d810e3850142a3d42cfecb77d2282", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6269, "upload_time": "2018-09-23T13:50:29", "url": "https://files.pythonhosted.org/packages/06/7b/22d730e9e8bf74569e7c5957a3c7ecfea697fdf621bee2c919c74414c1e5/pahotoolkit-0.1a0.tar.gz" } ], "0.1b2": [ { "comment_text": "", "digests": { "md5": "aceadb7c79bb5f6d8f01b838443a147d", "sha256": "3840d90043148d81f888e6cf37b684fbde44073acf7fb1e52a080a52ad92623f" }, "downloads": -1, "filename": "pahotoolkit-0.1b2.tar.gz", "has_sig": false, "md5_digest": "aceadb7c79bb5f6d8f01b838443a147d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6267, "upload_time": "2018-09-23T14:00:21", "url": "https://files.pythonhosted.org/packages/5b/8c/a38d5102b2aad578adbd1bbe7d62063fda7072a988f20162aa9548258c7c/pahotoolkit-0.1b2.tar.gz" } ], "0.1b3": [ { "comment_text": "", "digests": { "md5": "d6efcaa2c44502da1563b514084c394d", "sha256": "ba7b52a1d682e9f9b6eacf0a934663c4f65ac221e172342e6cafe07f264319d1" }, "downloads": -1, "filename": "pahotoolkit-0.1b3.tar.gz", "has_sig": false, "md5_digest": "d6efcaa2c44502da1563b514084c394d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6296, "upload_time": "2018-09-23T14:05:55", "url": "https://files.pythonhosted.org/packages/90/b2/1e02b3f0657e177fe8cce1a797fb9f33e6ce2f50e1e6dd9178c2963d6769/pahotoolkit-0.1b3.tar.gz" } ], "0.1rc0": [ { "comment_text": "", "digests": { "md5": "d91452aa87bac5b547e5b302607addce", "sha256": "6a44acb803690ef5ecdd196bf884e30bd422093bc1e0019c5674d24fccfe4bf2" }, "downloads": -1, "filename": "pahotoolkit-0.1rc0.tar.gz", "has_sig": false, "md5_digest": "d91452aa87bac5b547e5b302607addce", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6295, "upload_time": "2018-09-23T14:14:19", "url": "https://files.pythonhosted.org/packages/f3/63/42dfb31472cfb261d1737d7c11ecfc2c1e25fca7b81c8f831bcb6609c097/pahotoolkit-0.1rc0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "e2b76f24a3b71330f0dd24f7924456d2", "sha256": "81776010fe74d0ae7da5886a83b88e1dd72cff65f43aec134351bdf82f220f6b" }, "downloads": -1, "filename": "pahotoolkit-0.1.4.2.tar.gz", "has_sig": false, "md5_digest": "e2b76f24a3b71330f0dd24f7924456d2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6335, "upload_time": "2018-10-21T14:45:32", "url": "https://files.pythonhosted.org/packages/45/6d/90dffe65de1fd76740e863afc45296c6440f8bc2bea275303885880ff60f/pahotoolkit-0.1.4.2.tar.gz" } ] }