{ "info": { "author": "Mikhail Turchunovich", "author_email": "mitu@gurtam.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "[![Build Status](https://travis-ci.com/wialon/gmqtt.svg?branch=master)](https://travis-ci.com/wialon/gmqtt) [![codecov](https://codecov.io/gh/wialon/gmqtt/branch/master/graph/badge.svg)](https://codecov.io/gh/wialon/gmqtt)\n\n### Python MQTT client implementation.\n\n\n### Installation \n\nThe latest stable version is available in the Python Package Index (PyPi) and can be installed using\n```bash\npip3 install gmqtt\n```\n\n\n### Usage\n#### Getting Started\n\nHere is a very simple example that subscribes to the broker TOPIC topic and prints out the resulting messages:\n\n```python\nimport asyncio\nimport os\nimport signal\nimport time\n\nfrom gmqtt import Client as MQTTClient\n\n# gmqtt also compatibility with uvloop \nimport uvloop\nasyncio.set_event_loop_policy(uvloop.EventLoopPolicy())\n\n\nSTOP = asyncio.Event()\n\n\ndef on_connect(client, flags, rc, properties):\n print('Connected')\n client.subscribe('TEST/#', qos=0)\n\n\ndef on_message(client, topic, payload, qos, properties):\n print('RECV MSG:', payload)\n\n\ndef on_disconnect(client, packet, exc=None):\n print('Disconnected')\n\ndef on_subscribe(client, mid, qos):\n print('SUBSCRIBED')\n\ndef ask_exit(*args):\n STOP.set()\n\nasync def main(broker_host, token):\n client = MQTTClient(\"client-id\")\n\n client.on_connect = on_connect\n client.on_message = on_message\n client.on_disconnect = on_disconnect\n client.on_subscribe = on_subscribe\n\n client.set_auth_credentials(token, None)\n await client.connect(broker_host)\n\n client.publish('TEST/TIME', str(time.time()), qos=1)\n\n await STOP.wait()\n await client.disconnect()\n\n\nif __name__ == '__main__':\n loop = asyncio.get_event_loop()\n\n host = 'mqtt.flespi.io'\n token = os.environ.get('FLESPI_TOKEN')\n\n loop.add_signal_handler(signal.SIGINT, ask_exit)\n loop.add_signal_handler(signal.SIGTERM, ask_exit)\n\n loop.run_until_complete(main(host, token))\n``` \n\n### MQTT Version 5.0\ngmqtt supports MQTT version 5.0 protocol\n\n#### Version setup\nVersion 5.0 is used by default. If your broker does not support 5.0 protocol version and responds with proper CONNACK reason code, client will downgrade to 3.1 and reconnect automatically. Note, that some brokers just fail to parse the 5.0 format CONNECT packet, so first check manually if your broker handles this properly. \nYou can also force version in connect method:\n```python\nfrom gmqtt.mqtt.constants import MQTTv311\nclient = MQTTClient('clientid')\nclient.set_auth_credentials(token, None)\nawait client.connect(broker_host, 1883, keepalive=60, version=MQTTv311)\n```\n\n#### Properties\nMQTT 5.0 protocol allows to include custom properties into packages, here is example of passing response topic property in published message:\n```python\n\nTOPIC = 'testtopic/TOPIC'\n\ndef on_connect(client, flags, rc, properties):\n client.subscribe(TOPIC, qos=1)\n print('Connected')\n\ndef on_message(client, topic, payload, qos, properties):\n print('RECV MSG:', topic, payload.decode(), properties)\n\nasync def main(broker_host, token):\n client = MQTTClient('asdfghjk')\n client.on_message = on_message\n client.on_connect = on_connect\n client.set_auth_credentials(token, None)\n await client.connect(broker_host, 1883, keepalive=60)\n client.publish(TOPIC, 'Message payload', response_topic='RESPONSE/TOPIC')\n\n await STOP.wait()\n await client.disconnect()\n```\n##### Connect properties\nConnect properties are passed to `Client` object as kwargs (later they are stored together with properties received from broker in `client.properties` field). See example below.\n* `session_expiry_interval` - `int` Session expiry interval in seconds. If the Session Expiry Interval is absent the value 0 is used. If it is set to 0, or is absent, the Session ends when the Network Connection is closed. If the Session Expiry Interval is 0xFFFFFFFF (max possible value), the Session does not expire.\n* `receive_maximum` - `int` The Client uses this value to limit the number of QoS 1 and QoS 2 publications that it is willing to process concurrently.\n* `user_property` - `tuple(str, str)` This property may be used to provide additional diagnostic or other information (key-value pairs).\n* `maximum_packet_size` - `int` The Client uses the Maximum Packet Size (in bytes) to inform the Server that it will not process packets exceeding this limit.\n\nExample:\n```\nclient = gmqtt.Client(\"lenkaklient\", receive_maximum=24000, session_expiry_interval=60, user_property=('myid', '12345'))\n```\n\n##### Publish properties\nThis properties will be also sent in publish packet from broker, they will be passed to `on_message` callback.\n* `message_expiry_interval` - `int` If present, the value is the lifetime of the Application Message in seconds.\n* `content_type` - `unicode` UTF-8 Encoded String describing the content of the Application Message. The value of the Content Type is defined by the sending and receiving application.\n* `user_property` - `tuple(str, str)`\n* `subscription_identifier` - `int` (see subscribe properties) sent by broker\n\nExample:\n```\ndef on_message(client, topic, payload, qos, properties):\n # properties example here: {'content_type': ['json'], 'user_property': [('timestamp', '1524235334.881058')], 'message_expiry_interval': [60], 'subscription_identifier': [42, 64]}\n print('RECV MSG:', topic, payload, properties)\n\nclient.publish('TEST/TIME', str(time.time()), qos=1, retain=True, message_expiry_interval=60, content_type='json')\n```\n\n##### Subscribe properties\n* `subscription_identifier` - `int` If the Client specified a Subscription Identifier for any of the overlapping subscriptions the Server MUST send those Subscription Identifiers in the message which is published as the result of the subscriptions.\n\n### Reconnects\nBy default, connected MQTT client will always try to reconnect in case of lost connections. Number of reconnect attempts is unlimited.\nIf you want to change this behaviour, do the following:\n```python\nclient = MQTTClient(\"client-id\")\nclient.set_config({'reconnect_retries': 10, 'reconnect_delay': 60})\n```\nCode above will set number of reconnect attempts to 10 and delay between reconnect attempts to 1min (60s). By default `reconnect_delay=6` and `reconnect_retries=-1` which stands for infinity.\nNote that manually calling `await client.disconnect()` will set `reconnect_retries` for 0, which will stop auto reconnect.\n\n### Asynchronous on_message callback\nYou can define asynchronous on_message callback.\nNote that it must return valid PUBACK code (`0` is success code, see full list in [constants](gmqtt/mqtt/constants.py#L69))\n```python\nasync def on_message(client, topic, payload, qos, properties):\n pass\n return 0\n```\n\n### Other examples\nCheck [examples directory](examples) for more use cases.\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "https://github.com/wialon/gmqtt", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/wialon/gmqtt", "keywords": "Gurtam MQTT client.", "license": "", "maintainer": "", "maintainer_email": "", "name": "gmqtt", "package_url": "https://pypi.org/project/gmqtt/", "platform": "", "project_url": "https://pypi.org/project/gmqtt/", "project_urls": { "Download": "https://github.com/wialon/gmqtt", "Homepage": "https://github.com/wialon/gmqtt" }, "release_url": "https://pypi.org/project/gmqtt/0.4.4/", "requires_dist": null, "requires_python": "", "summary": "Client for MQTT protocol", "version": "0.4.4" }, "last_serial": 5923045, "releases": { "0.0.10": [ { "comment_text": "", "digests": { "md5": "98468618666598aafcbb4310ba4111b7", "sha256": "c8a037418a4e2bb194e9f9dfb88ca664a63869e962d10f8e4a72f42e3df6fe81" }, "downloads": -1, "filename": "gmqtt-0.0.10.tar.gz", "has_sig": false, "md5_digest": "98468618666598aafcbb4310ba4111b7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8872, "upload_time": "2018-03-16T08:41:28", "url": "https://files.pythonhosted.org/packages/18/3a/8432b3f54075644c9cadebe1ed9d4df6b78afb2f6e399fcea67b7aa545fa/gmqtt-0.0.10.tar.gz" } ], "0.0.11": [ { "comment_text": "", "digests": { "md5": "feb372fc8d3cbc41f7fde07583c531a6", "sha256": "bb6f594461d22815574b7cab8f85a391768b7652816c4748226f6c2cdcca6513" }, "downloads": -1, "filename": "gmqtt-0.0.11.tar.gz", "has_sig": false, "md5_digest": "feb372fc8d3cbc41f7fde07583c531a6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10747, "upload_time": "2018-04-03T12:57:43", "url": "https://files.pythonhosted.org/packages/20/c6/001c0c6249704c963d42a2677610304c34437c6234208938a40b90486155/gmqtt-0.0.11.tar.gz" } ], "0.0.12": [ { "comment_text": "", "digests": { "md5": "456e279fc10ad6f206d0580fcb43ecc1", "sha256": "704554915cd47c9aa63933f7d6628156a460cce37d36a2fb654c5fd715816102" }, "downloads": -1, "filename": "gmqtt-0.0.12.tar.gz", "has_sig": false, "md5_digest": "456e279fc10ad6f206d0580fcb43ecc1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10762, "upload_time": "2018-04-06T11:49:10", "url": "https://files.pythonhosted.org/packages/c0/f5/8f9ce411ebe3e5efbd48cada176ca4ae3997365a95c03cf892bc786404a8/gmqtt-0.0.12.tar.gz" } ], "0.0.13": [ { "comment_text": "", "digests": { "md5": "f9c4b8b59d1960dee1bd61ada8fe9982", "sha256": "7aaf1be66d83c6e58c690ee1d2dd11ebcccc79e0713281785048ebcd7fe43506" }, "downloads": -1, "filename": "gmqtt-0.0.13.tar.gz", "has_sig": false, "md5_digest": "f9c4b8b59d1960dee1bd61ada8fe9982", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10847, "upload_time": "2018-04-12T09:23:51", "url": "https://files.pythonhosted.org/packages/93/d6/375b2abd880a0f433acab4365aa5bce8738edeb5136248c8347026ea04fe/gmqtt-0.0.13.tar.gz" } ], "0.0.14": [ { "comment_text": "", "digests": { "md5": "8392968db347e2ecb7c57bcbffd00383", "sha256": "25240361c63e0742375ca279edba7cd3e3cc73c5376875963197292e1e0afa72" }, "downloads": -1, "filename": "gmqtt-0.0.14.tar.gz", "has_sig": false, "md5_digest": "8392968db347e2ecb7c57bcbffd00383", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10845, "upload_time": "2018-04-20T09:23:48", "url": "https://files.pythonhosted.org/packages/c6/84/f9774c7985448b18b38b1696bd914e1a29bb6f8369e5845f6f0b83828fdf/gmqtt-0.0.14.tar.gz" } ], "0.0.15": [ { "comment_text": "", "digests": { "md5": "a661a94bf5d82dc645d46f802bfb91f4", "sha256": "b54d189b4a87f90f4a9ba10cfbdde897748be0e3d7738935ad195aaa23c852be" }, "downloads": -1, "filename": "gmqtt-0.0.15.tar.gz", "has_sig": false, "md5_digest": "a661a94bf5d82dc645d46f802bfb91f4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12618, "upload_time": "2018-05-14T11:39:48", "url": "https://files.pythonhosted.org/packages/84/09/7443529a8c1aed3a1b521f2249a96900e31740c9eb71fc479c9b90bae9eb/gmqtt-0.0.15.tar.gz" } ], "0.0.16": [ { "comment_text": "", "digests": { "md5": "bcbc75f2f330392014a9b6b006b05482", "sha256": "425ce3e877249a056c351764803b03800b38e3d035424581003647a2d48b9223" }, "downloads": -1, "filename": "gmqtt-0.0.16.tar.gz", "has_sig": false, "md5_digest": "bcbc75f2f330392014a9b6b006b05482", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12747, "upload_time": "2018-06-12T09:03:03", "url": "https://files.pythonhosted.org/packages/1b/d6/176716e9d72de3436e31775ac14c9f11c6cf920c898d4a38eb4fc347174c/gmqtt-0.0.16.tar.gz" } ], "0.0.17": [ { "comment_text": "", "digests": { "md5": "2fefef63fe1029fa1eb1c7c5f7feaa33", "sha256": "dbd84f6f18022a3f2f6ce7136b2c95699f0140bf54db2d7f1be63eba3dc839ae" }, "downloads": -1, "filename": "gmqtt-0.0.17.tar.gz", "has_sig": false, "md5_digest": "2fefef63fe1029fa1eb1c7c5f7feaa33", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13308, "upload_time": "2018-07-07T12:26:58", "url": "https://files.pythonhosted.org/packages/22/f1/dfd947b6d1f181e6966e60a1fc50daaa266c4dd1fc97b8e2d48efe911c55/gmqtt-0.0.17.tar.gz" } ], "0.0.18": [ { "comment_text": "", "digests": { "md5": "a5e0443ff73272269af441a67ddb530c", "sha256": "c62efbf269acc33acfdc88322120fb4c7600f751345b1eeeb8c2346d2c46633f" }, "downloads": -1, "filename": "gmqtt-0.0.18.tar.gz", "has_sig": false, "md5_digest": "a5e0443ff73272269af441a67ddb530c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13326, "upload_time": "2018-07-10T10:18:51", "url": "https://files.pythonhosted.org/packages/3d/1d/10503e9020a12fb08e26f1c0114b3ae6721429dd7f47333e358f7e80e89d/gmqtt-0.0.18.tar.gz" } ], "0.0.19": [ { "comment_text": "", "digests": { "md5": "3e378c510cccd868606338254bdc3454", "sha256": "8debbd24ec4427e942377854b90ed34b9d6f4e752c0a2baf8b6c52d42610cec0" }, "downloads": -1, "filename": "gmqtt-0.0.19.tar.gz", "has_sig": false, "md5_digest": "3e378c510cccd868606338254bdc3454", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13651, "upload_time": "2018-07-23T11:41:17", "url": "https://files.pythonhosted.org/packages/34/d7/baeed5861feef6421f115016eb74f992767b369f219cf9e040141d1a368f/gmqtt-0.0.19.tar.gz" } ], "0.0.20": [ { "comment_text": "", "digests": { "md5": "6ce4fbdd46ea0a79c37963c0bf0cfbbf", "sha256": "c6581c4c75839b2164f588a3a6599633e3a11cc04e4199e314409404559cda26" }, "downloads": -1, "filename": "gmqtt-0.0.20.tar.gz", "has_sig": false, "md5_digest": "6ce4fbdd46ea0a79c37963c0bf0cfbbf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13677, "upload_time": "2018-07-27T14:42:21", "url": "https://files.pythonhosted.org/packages/70/b0/e342f48137cebf86137e9b9c1887f4eeef849ba6120191297beab1e3f938/gmqtt-0.0.20.tar.gz" } ], "0.0.21": [ { "comment_text": "", "digests": { "md5": "cb76a4d3459de05ae7ad8b9f69295233", "sha256": "828a4fea71156ea9d86d18bfcd62402884e191fd812f7749b05a13ca617278b1" }, "downloads": -1, "filename": "gmqtt-0.0.21.tar.gz", "has_sig": false, "md5_digest": "cb76a4d3459de05ae7ad8b9f69295233", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14836, "upload_time": "2018-08-08T15:26:56", "url": "https://files.pythonhosted.org/packages/55/b5/7aa8e862f5edad8e42c94ffab2ee788289c6117a33d8f6c7ca25f083e948/gmqtt-0.0.21.tar.gz" } ], "0.0.22": [ { "comment_text": "", "digests": { "md5": "c8cd578ecfdc3695dade22c922750e87", "sha256": "9a300b3198524e987d2e1a7591141b8a1480773a641f854ecc915c7c52181405" }, "downloads": -1, "filename": "gmqtt-0.0.22.tar.gz", "has_sig": false, "md5_digest": "c8cd578ecfdc3695dade22c922750e87", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16226, "upload_time": "2018-08-17T15:00:24", "url": "https://files.pythonhosted.org/packages/90/5d/853e2ec8a030fe3ad9b901534ea800e921700fb49a4fad2c96cce66cb071/gmqtt-0.0.22.tar.gz" } ], "0.0.23": [ { "comment_text": "", "digests": { "md5": "23d0eba019b3d7d4a8065979113683f8", "sha256": "ba9dbbb796519179595b01c0c264bad49ba503e3f3eb2fbc88bd3e8b320e420c" }, "downloads": -1, "filename": "gmqtt-0.0.23.tar.gz", "has_sig": false, "md5_digest": "23d0eba019b3d7d4a8065979113683f8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16292, "upload_time": "2018-09-12T07:47:10", "url": "https://files.pythonhosted.org/packages/37/9d/126a0ad46b9483b017b084102e07cf9d49cae860e84f09c6dbfda393ea90/gmqtt-0.0.23.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "c4b6186517a615e3298f1a957b033b5e", "sha256": "260a29128def2ae2ec65546f3c6ee2264d7f9dfc6448e918ae8b7a71cdd4f5ce" }, "downloads": -1, "filename": "gmqtt-0.0.5.tar.gz", "has_sig": false, "md5_digest": "c4b6186517a615e3298f1a957b033b5e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7531, "upload_time": "2018-02-19T09:24:36", "url": "https://files.pythonhosted.org/packages/8e/de/c614efa02dce4659c30540aa6f775bea88f2c39ec32cc924de77a67789df/gmqtt-0.0.5.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "c33b14751346e318723121a06453ad48", "sha256": "0faa2e3e24921eb2debc5feee73093f596feba14033c9662d89d1d2f33d3f42f" }, "downloads": -1, "filename": "gmqtt-0.0.6.tar.gz", "has_sig": false, "md5_digest": "c33b14751346e318723121a06453ad48", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7640, "upload_time": "2018-02-22T12:45:08", "url": "https://files.pythonhosted.org/packages/ab/6e/b884b6a9a52ce714e45a56e1f49093fb68f8eaad9203cbbd0dbbf892c0c4/gmqtt-0.0.6.tar.gz" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "6fdec0089d7816913b2becf9446660e8", "sha256": "609ec136264e55f2ad1ad426a94b550412594e3d128d6b6eabac01dd70877fb7" }, "downloads": -1, "filename": "gmqtt-0.0.7.tar.gz", "has_sig": false, "md5_digest": "6fdec0089d7816913b2becf9446660e8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8408, "upload_time": "2018-02-23T12:59:24", "url": "https://files.pythonhosted.org/packages/8b/de/f3a6fd79eb3445f8627182a6d653d68fc7a906d6344d2f1d0e103542925c/gmqtt-0.0.7.tar.gz" } ], "0.0.8": [ { "comment_text": "", "digests": { "md5": "66d7a3cd5eb09adc86653d79dcdeecaf", "sha256": "9acd27862896a3280caeeaf4ef907339b6b8050ed727d0abcc9b8f62316b9a1a" }, "downloads": -1, "filename": "gmqtt-0.0.8.tar.gz", "has_sig": false, "md5_digest": "66d7a3cd5eb09adc86653d79dcdeecaf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8739, "upload_time": "2018-03-03T12:58:14", "url": "https://files.pythonhosted.org/packages/3d/be/038f032e6bfec26244e27da51cbf984956773a56b7a7b6437c233435c077/gmqtt-0.0.8.tar.gz" } ], "0.0.9": [ { "comment_text": "", "digests": { "md5": "e9d22ac406c3cc6c343c6b3a49f25cfa", "sha256": "f1d6679add30ed7a98c1da0820f3f4cbca9b202987f5e3fdc834d27c51fd4e76" }, "downloads": -1, "filename": "gmqtt-0.0.9.tar.gz", "has_sig": false, "md5_digest": "e9d22ac406c3cc6c343c6b3a49f25cfa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8786, "upload_time": "2018-03-13T09:52:32", "url": "https://files.pythonhosted.org/packages/61/47/a0a54327ff7d9ffa519e0dfc781fdcd5156583255b5348bc7f7073e9cbdf/gmqtt-0.0.9.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "3feaf3ac43b4fe060c6e88f30b8a1683", "sha256": "9457a8e906428f3967c831bc092c8517cd8cd64f809d51922ac99b1acf446e51" }, "downloads": -1, "filename": "gmqtt-0.1.0.tar.gz", "has_sig": false, "md5_digest": "3feaf3ac43b4fe060c6e88f30b8a1683", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18367, "upload_time": "2018-09-24T14:23:59", "url": "https://files.pythonhosted.org/packages/b0/66/694af847cfe13be450d6eeaa145a0b825e7de7918f9d971c827821fd301d/gmqtt-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "bad3c5fa272dd894af99b45b49d39cb5", "sha256": "89a00496735ec8a5d1783d7153bc26589a9828e5070bdcc16f44e2fbee694d28" }, "downloads": -1, "filename": "gmqtt-0.1.1.tar.gz", "has_sig": false, "md5_digest": "bad3c5fa272dd894af99b45b49d39cb5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18462, "upload_time": "2018-09-26T12:19:41", "url": "https://files.pythonhosted.org/packages/19/3f/922c39e00b6840a003e647d37c48caa78cc542e89d8fd1c24afe97a2ed43/gmqtt-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "4d4caea43d109d5224b0c061420fb1af", "sha256": "4e81a6101d5ee657f7c4cad7f0946d630e0b8f65ca57d749f628d135edda89cb" }, "downloads": -1, "filename": "gmqtt-0.1.2.tar.gz", "has_sig": false, "md5_digest": "4d4caea43d109d5224b0c061420fb1af", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18477, "upload_time": "2018-09-28T06:58:47", "url": "https://files.pythonhosted.org/packages/15/aa/617952d67fdeb075e0f7de47f7eb12f51a69dbc2048a19648e4f68838f55/gmqtt-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "45afe71e2b42d0ed211a52176f9cefd9", "sha256": "89668b28d8375f84e89cc83a1283f4a8b1dc5cd071f30a78e31cd13c2b474903" }, "downloads": -1, "filename": "gmqtt-0.1.3.tar.gz", "has_sig": false, "md5_digest": "45afe71e2b42d0ed211a52176f9cefd9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18697, "upload_time": "2018-10-24T10:32:08", "url": "https://files.pythonhosted.org/packages/43/d5/5227a2cb972c167d345b5666971bec3e9cf3acf9d7e4fd1a76d04f806c82/gmqtt-0.1.3.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "ef9d1f04864dcceda93f7d75dedda22c", "sha256": "2abd9483d11e9d9f9a94b5c8982b3253c5d2b4ebf2506dc329020d52bb46b2dc" }, "downloads": -1, "filename": "gmqtt-0.2.0.tar.gz", "has_sig": false, "md5_digest": "ef9d1f04864dcceda93f7d75dedda22c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18768, "upload_time": "2018-11-22T07:43:41", "url": "https://files.pythonhosted.org/packages/c8/93/f47ceacea015aefbb7821728bc5ec3f280e8260b6296fb1440b52f5d06fe/gmqtt-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "b96b299414374b8b439a65bf05a0b27a", "sha256": "ac3c1bfa38c4ac863fea470e937dd79c98eb7112edf36e27e32d5d7024854645" }, "downloads": -1, "filename": "gmqtt-0.2.1.tar.gz", "has_sig": false, "md5_digest": "b96b299414374b8b439a65bf05a0b27a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18847, "upload_time": "2019-01-11T14:18:44", "url": "https://files.pythonhosted.org/packages/74/84/3abb834357f057349cf3c96fa59f2285c753881f214d2a013c3d02cfcc77/gmqtt-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "99ffeb3f5d1743656d2bbc4efe186b6e", "sha256": "4de80ecfebcd7e4852643bb67c523f4521bc0772072e4311edab70a8f28aa507" }, "downloads": -1, "filename": "gmqtt-0.2.2.tar.gz", "has_sig": false, "md5_digest": "99ffeb3f5d1743656d2bbc4efe186b6e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18904, "upload_time": "2019-01-22T09:04:04", "url": "https://files.pythonhosted.org/packages/07/0c/2f96152a1ae403d3d960b9169a3e58889306ee5f011a74836db8feef15f8/gmqtt-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "0dc8f2340a3632e8442bd42e049edebc", "sha256": "7d3a94d64138a5f8abf95140ab09228163ab8a79dd56251eb10b81316c38287b" }, "downloads": -1, "filename": "gmqtt-0.2.3.tar.gz", "has_sig": false, "md5_digest": "0dc8f2340a3632e8442bd42e049edebc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18935, "upload_time": "2019-02-25T15:12:06", "url": "https://files.pythonhosted.org/packages/ce/4b/c15fdf75c50e9113471023c3a4a4b1a9e880234640381b459cfbb820b6ca/gmqtt-0.2.3.tar.gz" } ], "0.2.4": [ { "comment_text": "", "digests": { "md5": "1bc7f09330f981246ee382a39c1bbc84", "sha256": "8a6e1e48b0757ee826e2a2a4416b2eec7bc6447450ff70977318cbf26f34c087" }, "downloads": -1, "filename": "gmqtt-0.2.4.tar.gz", "has_sig": false, "md5_digest": "1bc7f09330f981246ee382a39c1bbc84", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18976, "upload_time": "2019-03-28T11:10:22", "url": "https://files.pythonhosted.org/packages/73/fa/5de5b1fcda24ede2ae0488163bbf237d12c6a7e61c435579a70ef8246b4d/gmqtt-0.2.4.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "90430dd5cda8369123d93835cceae14c", "sha256": "96ae5b4e0774da3a706f958af772f0b4fa261118b0f8f1b14e56a1d683100ac3" }, "downloads": -1, "filename": "gmqtt-0.3.1.tar.gz", "has_sig": false, "md5_digest": "90430dd5cda8369123d93835cceae14c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19249, "upload_time": "2019-04-09T14:13:30", "url": "https://files.pythonhosted.org/packages/bc/68/9728641d8d65f82979a92432269b766634632897504dab1e957306d10fc5/gmqtt-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "f7f891bdb2756320455693565503d9a3", "sha256": "b2e9bd444f46a81b8e85f9e93ddf58d726e96398c09cf56da002e50fc6f7332b" }, "downloads": -1, "filename": "gmqtt-0.3.2.tar.gz", "has_sig": false, "md5_digest": "f7f891bdb2756320455693565503d9a3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19432, "upload_time": "2019-04-11T08:12:16", "url": "https://files.pythonhosted.org/packages/a4/78/348dcf028880ac40d043cfe35dc9f9104c3a695b4d65d02c9c1b163966ee/gmqtt-0.3.2.tar.gz" } ], "0.3.3": [ { "comment_text": "", "digests": { "md5": "9574de8ad98995c7b984229dc1b24b6e", "sha256": "aa9fb7cfdd3e626e70fb2bbf4534c0586f75715b36a2fa6bc58564959149b50b" }, "downloads": -1, "filename": "gmqtt-0.3.3.tar.gz", "has_sig": false, "md5_digest": "9574de8ad98995c7b984229dc1b24b6e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19770, "upload_time": "2019-04-12T12:11:07", "url": "https://files.pythonhosted.org/packages/e4/da/91a831cde04cac84a5e3729e873351f83e0fbb749edfe34996aed5170389/gmqtt-0.3.3.tar.gz" } ], "0.3.4": [ { "comment_text": "", "digests": { "md5": "8f1c78aaef80fed69ceead8c7187307a", "sha256": "c9623219c542aa63407fb30c98d183bfec81494e6887d8273f30cf769aafad6f" }, "downloads": -1, "filename": "gmqtt-0.3.4.tar.gz", "has_sig": false, "md5_digest": "8f1c78aaef80fed69ceead8c7187307a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19929, "upload_time": "2019-04-17T12:33:07", "url": "https://files.pythonhosted.org/packages/52/bf/d6e5ff5c04b51b434f2856005185c8325db1e4913e3907be1cd314eb198e/gmqtt-0.3.4.tar.gz" } ], "0.3.5": [ { "comment_text": "", "digests": { "md5": "3cec625e657f481abb7bff9be1ebfa7a", "sha256": "1e278a0fc7c711db4161b98ac918236ac86f129543ead529af35ebd32514e248" }, "downloads": -1, "filename": "gmqtt-0.3.5.tar.gz", "has_sig": false, "md5_digest": "3cec625e657f481abb7bff9be1ebfa7a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20099, "upload_time": "2019-05-04T06:53:19", "url": "https://files.pythonhosted.org/packages/66/3b/d4dffec1b578daa81a21952656507223fff353e6dd158aba64ff78e18df9/gmqtt-0.3.5.tar.gz" } ], "0.3.6": [ { "comment_text": "", "digests": { "md5": "d4c20c41242eab94b45a8dfa7c9c287a", "sha256": "c11ddb4e2a2d80c567c6a98f7785f098f7cc3dce71ff27762b6ba59d338943fc" }, "downloads": -1, "filename": "gmqtt-0.3.6.tar.gz", "has_sig": false, "md5_digest": "d4c20c41242eab94b45a8dfa7c9c287a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19598, "upload_time": "2019-05-21T09:23:09", "url": "https://files.pythonhosted.org/packages/6d/59/d3c3604b6521fb06c638b8375d9899202b0872cef56d0631e6bb2fb945b1/gmqtt-0.3.6.tar.gz" } ], "0.3.7": [ { "comment_text": "", "digests": { "md5": "e6e8a735cc9e314d39faa9c232be6cdc", "sha256": "9a494c5b5490591c60c41115ec6c777eace3dd6bcb4b9403af57b5f526dcd3c6" }, "downloads": -1, "filename": "gmqtt-0.3.7.tar.gz", "has_sig": false, "md5_digest": "e6e8a735cc9e314d39faa9c232be6cdc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20113, "upload_time": "2019-06-06T11:04:47", "url": "https://files.pythonhosted.org/packages/49/8a/2606e8259e2448506c870329238a2238b76132b2fd914fbde03047d17dc3/gmqtt-0.3.7.tar.gz" } ], "0.3.8": [ { "comment_text": "", "digests": { "md5": "8efa53f518b0cf60163421fe2f52920b", "sha256": "27f8c8f7b131aebc582d4ab78f77958e8861c79fab4733259d4a23c3ecc4dc5d" }, "downloads": -1, "filename": "gmqtt-0.3.8-py3-none-any.whl", "has_sig": false, "md5_digest": "8efa53f518b0cf60163421fe2f52920b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 27235, "upload_time": "2019-08-12T07:55:43", "url": "https://files.pythonhosted.org/packages/8b/03/d744cae81c6889921976cd0b76a9f0d805d7132568f087c266f77b20072e/gmqtt-0.3.8-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3a16a5792f99d63109fffcf16c939c23", "sha256": "2c7966301d28ba880a6c49b52dbe4d89fbb950299d139744210727a7592c264c" }, "downloads": -1, "filename": "gmqtt-0.3.8.tar.gz", "has_sig": false, "md5_digest": "3a16a5792f99d63109fffcf16c939c23", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20184, "upload_time": "2019-08-12T07:55:47", "url": "https://files.pythonhosted.org/packages/e3/ba/031ec41541a697c141f32f5914e855aeff319b328958d4c16d0d8a15d61a/gmqtt-0.3.8.tar.gz" } ], "0.3.9": [ { "comment_text": "", "digests": { "md5": "4925af29334ca5b0c3e9119d380959e9", "sha256": "7a125f4e429ff92582152e3a915e8bb7d5d876de3abd58d7b5df0b1fcfdfb025" }, "downloads": -1, "filename": "gmqtt-0.3.9-py3-none-any.whl", "has_sig": false, "md5_digest": "4925af29334ca5b0c3e9119d380959e9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 27312, "upload_time": "2019-08-13T14:25:00", "url": "https://files.pythonhosted.org/packages/6c/d4/00a5be0c01745c60b241513bd7c9064674e77c569f66b0fe557bd3d760ff/gmqtt-0.3.9-py3-none-any.whl" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "4dcb964004f20b8bde4242fd84c14d80", "sha256": "7aa475362dd3d53316b54910faf449503e463e85d85b6e607388c35a90299abe" }, "downloads": -1, "filename": "gmqtt-0.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "4dcb964004f20b8bde4242fd84c14d80", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 27518, "upload_time": "2019-08-14T10:02:30", "url": "https://files.pythonhosted.org/packages/4c/90/62a2aea6bcdec7d28dd635140225c25036f1e22ad3dae0f29511dec0ecc7/gmqtt-0.4.0-py3-none-any.whl" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "36ff6863349218732d8773cd8dd4e1eb", "sha256": "ffcd86a749a08af633c2859699acc94e767cbc60a10bebe7ba2dc43bcee078de" }, "downloads": -1, "filename": "gmqtt-0.4.1-py3-none-any.whl", "has_sig": false, "md5_digest": "36ff6863349218732d8773cd8dd4e1eb", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 27670, "upload_time": "2019-10-01T06:59:56", "url": "https://files.pythonhosted.org/packages/03/ca/4e58fb67bcc4c260a329a8a763fb573ceed9b8a29dfb12affd2b171acfe2/gmqtt-0.4.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "658b6d94ba79cd47412d35252a13f4b8", "sha256": "998b9900af615efa2fbd5b9566ebd1f038ce1f326c1a4a08a12d21b6239b67f1" }, "downloads": -1, "filename": "gmqtt-0.4.1.tar.gz", "has_sig": false, "md5_digest": "658b6d94ba79cd47412d35252a13f4b8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20754, "upload_time": "2019-10-01T06:59:58", "url": "https://files.pythonhosted.org/packages/60/20/d3fbce280a84a07f6fe8f38b80ada34a868fcbdcb679d78c98d57e5af133/gmqtt-0.4.1.tar.gz" } ], "0.4.2": [ { "comment_text": "", "digests": { "md5": "f932240995fd6ed75fc8f9b1e06d41ac", "sha256": "11c06bce38b7188e034b4faef101b4a8dc56d8a0e26e5bd5f1c48f504b2593ba" }, "downloads": -1, "filename": "gmqtt-0.4.2-py3-none-any.whl", "has_sig": false, "md5_digest": "f932240995fd6ed75fc8f9b1e06d41ac", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 27965, "upload_time": "2019-10-01T12:00:09", "url": "https://files.pythonhosted.org/packages/7c/16/bc650a1468a441366aee3f9b47b985d69cfd2ac941deb1877065cb2070c7/gmqtt-0.4.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "706dc381e3c53067f2c09289a712e42c", "sha256": "4a2dad12332160dbaaef240ccb3adaca0d4bfdd2c2aa8a5acd994f3fbd7c08da" }, "downloads": -1, "filename": "gmqtt-0.4.2.tar.gz", "has_sig": false, "md5_digest": "706dc381e3c53067f2c09289a712e42c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21047, "upload_time": "2019-10-01T12:00:11", "url": "https://files.pythonhosted.org/packages/3d/c5/566662e9eb8f1bd1ceca723f47494a672d5501170bad68e3d89503a55423/gmqtt-0.4.2.tar.gz" } ], "0.4.3": [ { "comment_text": "", "digests": { "md5": "bbab8a1ef907334280f9d209b550fffc", "sha256": "7d71a7a44cc57d994c793faffe2fa494bc2aa04f91e38bce2f1db9cea595153f" }, "downloads": -1, "filename": "gmqtt-0.4.3-py3-none-any.whl", "has_sig": false, "md5_digest": "bbab8a1ef907334280f9d209b550fffc", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 27972, "upload_time": "2019-10-02T08:23:44", "url": "https://files.pythonhosted.org/packages/31/6a/4472bd788f9cefdbed83bf86de66ddb10f29a81d69e96b14fddd0653eca7/gmqtt-0.4.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "33852a9ac411b05dc6501d936b40fc56", "sha256": "cb8c36e1f319d4a75f329fa5ece37431c30076289f2a4a2f7fa08f69b0e6dc1e" }, "downloads": -1, "filename": "gmqtt-0.4.3.tar.gz", "has_sig": false, "md5_digest": "33852a9ac411b05dc6501d936b40fc56", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21067, "upload_time": "2019-10-02T08:23:46", "url": "https://files.pythonhosted.org/packages/9e/4c/5b7945dd94848099c7b33c5b6d6c688420ce5d7069a0ddc27c9a90c6a14f/gmqtt-0.4.3.tar.gz" } ], "0.4.4": [ { "comment_text": "", "digests": { "md5": "64e3dd24c6d4ef13293bb5e0c7a819fc", "sha256": "2ff50815ff9a82d7812df7f5aeb1bde0e762a5ff126094f9e956383dd8770ba2" }, "downloads": -1, "filename": "gmqtt-0.4.4-py3-none-any.whl", "has_sig": false, "md5_digest": "64e3dd24c6d4ef13293bb5e0c7a819fc", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 28064, "upload_time": "2019-10-03T11:45:01", "url": "https://files.pythonhosted.org/packages/fe/10/677e4d9be4cae38391897860055943bc4c114cd13969b19830597c10dc1f/gmqtt-0.4.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "af3a2c6c2f8e3c934b31159ffdce5fd6", "sha256": "b96bca8a54b8af057d4cc42a79f9e2b40cdbb5a2bfebbc5f05ee35575d3e3089" }, "downloads": -1, "filename": "gmqtt-0.4.4.tar.gz", "has_sig": false, "md5_digest": "af3a2c6c2f8e3c934b31159ffdce5fd6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21100, "upload_time": "2019-10-03T11:45:04", "url": "https://files.pythonhosted.org/packages/20/80/446aa14cd1bc09071f90b590bb685f37be94fb34e0f3b8e2497c692fc561/gmqtt-0.4.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "64e3dd24c6d4ef13293bb5e0c7a819fc", "sha256": "2ff50815ff9a82d7812df7f5aeb1bde0e762a5ff126094f9e956383dd8770ba2" }, "downloads": -1, "filename": "gmqtt-0.4.4-py3-none-any.whl", "has_sig": false, "md5_digest": "64e3dd24c6d4ef13293bb5e0c7a819fc", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 28064, "upload_time": "2019-10-03T11:45:01", "url": "https://files.pythonhosted.org/packages/fe/10/677e4d9be4cae38391897860055943bc4c114cd13969b19830597c10dc1f/gmqtt-0.4.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "af3a2c6c2f8e3c934b31159ffdce5fd6", "sha256": "b96bca8a54b8af057d4cc42a79f9e2b40cdbb5a2bfebbc5f05ee35575d3e3089" }, "downloads": -1, "filename": "gmqtt-0.4.4.tar.gz", "has_sig": false, "md5_digest": "af3a2c6c2f8e3c934b31159ffdce5fd6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21100, "upload_time": "2019-10-03T11:45:04", "url": "https://files.pythonhosted.org/packages/20/80/446aa14cd1bc09071f90b590bb685f37be94fb34e0f3b8e2497c692fc561/gmqtt-0.4.4.tar.gz" } ] }