{ "info": { "author": "Gurux Ltd", "author_email": "gurux@gurux.org", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: GNU General Public License v2 (GPLv2)", "Operating System :: OS Independent", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "See An [Gurux](http://www.gurux.org/ \"Gurux\") for an overview.\n\nJoin the Gurux Community or follow [@Gurux](https://twitter.com/guruxorg \"@Gurux\") for project updates.\n\nWith gurux.serial component you can send data easily syncronously or asyncronously using serial port connection.\n\nOpen Source GXNet media component, made by Gurux Ltd, is a part of GXMedias set of media components, which programming interfaces help you implement communication by chosen connection type. Gurux media components also support the following connection types: serial port.\n\nFor more info check out [Gurux](http://www.gurux.org/ \"Gurux\").\n\nWe are updating documentation on Gurux web page. \n\nIf you have problems you can ask your questions in Gurux [Forum](http://www.gurux.org/forum).\n\nYou can get source codes from http://www.github.com/gurux or intall package: \n\n```python\npip install gurux-common\npip install gurux-serial\n```\n\nSimple example\n=========================== \nBefore use you must set following settings:\n* PortName\n* BaudRate\n* DataBits\n* Parity\n* StopBits\n\nIt is also good to add listener to listen following events.\n* onError\n* onReceived\n* onMediaStateChange\n* onTrace\n* onPropertyChanged\n\nThis example sends data to the serial port and waits reply.\nChange serial port before use.\n\n\n```python\nimport time\nfrom gurux_common import ReceiveParameters\nfrom gurux_common import IGXMediaListener\nfrom gurux_common.enums.TraceLevel import TraceLevel\nfrom gurux_serial import GXSerial\n\n#pylint: disable=no-self-argument\nclass sampleclient(IGXMediaListener):\n\n def __init__(self):\n #List available serial ports.\n print(\"Available ports:\")\n print(str(GXSerial.getPortNames()))\n #Define End Of Packet char.\n eop = '\\r'\n #TODO: Update correct port and serial port settings.\n media = GXSerial(\"SERIAL PORT TO USE\")\n #Start to listen events from the media.\n media.addListener(self)\n #Show all traces.\n media.trace = TraceLevel.VERBOSE\n #Set EOP for the media.\n media.eop = eop\n try:\n #Open the connection.\n media.open()\n r = ReceiveParameters()\n r.eop = eop\n #Minimium amount of bytes to receive.\n r.count = 5\n #Wait reply for 2 seconds.\n r.waitTime = 2000\n ############################\n #Send data synchronously.\n with media.getSynchronous():\n media.send(\"Hello world!\")\n #Send EOP\n media.send('\\r')\n ret = media.receive(r)\n if ret:\n print(str(r.reply.decode(\"ascii\")))\n else:\n raise Exception(\"Failed to receive reply from the server.\")\n ############################\n #Send async data.\n media.send(\"Notify from the meter!\\r\")\n #Wait 1 second to receive reply from the server.\n time.sleep(1)\n except Exception as ex:\n print(ex)\n media.close()\n media.removeListener(self)\n\n def onError(self, sender, ex):\n \"\"\"\n Represents the method that will handle the error event of a Gurux\n component.\n\n sender : The source of the event.\n ex : An Exception object that contains the event data.\n \"\"\"\n print(\"Error has occured. \" + str(ex))\n\n def onReceived(self, sender, e):\n \"\"\"Media component sends received data through this method.\n\n sender : The source of the event.\n e : Event arguments.\n \"\"\"\n print(\"New data is received. \" + str(e))\n\n def onMediaStateChange(self, sender, e):\n \"\"\"Media component sends notification, when its state changes.\n sender : The source of the event.\n e : Event arguments.\n \"\"\"\n print(\"Media state changed. \" + str(e))\n\n def onTrace(self, sender, e):\n \"\"\"Called when the Media is sending or receiving data.\n\n sender : The source of the event.\n e : Event arguments.\n \"\"\"\n print(\"trace:\" + str(e))\n\n def onPropertyChanged(self, sender, e):\n \"\"\"\n Event is raised when a property is changed on a component.\n\n sender : The source of the event.\n e : Event arguments.\n \"\"\"\n print(\"Property {!r} has hanged.\".format(str(e)))\n\nif __name__ == '__main__':\n sampleclient()\n```\n\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/gurux/gurux.serial.python", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "gurux-serial", "package_url": "https://pypi.org/project/gurux-serial/", "platform": "", "project_url": "https://pypi.org/project/gurux-serial/", "project_urls": { "Homepage": "https://github.com/gurux/gurux.serial.python" }, "release_url": "https://pypi.org/project/gurux-serial/1.0.12/", "requires_dist": [ "gurux-common" ], "requires_python": "", "summary": "Gurux serial media is used to commmunication with serial port connections.", "version": "1.0.12" }, "last_serial": 5730985, "releases": { "1.0.1": [ { "comment_text": "", "digests": { "md5": "527b70e18d94c9d831829252c0ebf912", "sha256": "de42afc14c636394f55b38e95344f76f5e263dcf326ffde806aa02394b4ae572" }, "downloads": -1, "filename": "gurux_serial-1.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "527b70e18d94c9d831829252c0ebf912", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 26988, "upload_time": "2019-08-09T13:13:18", "url": "https://files.pythonhosted.org/packages/3f/e9/da85b8f946013e6c2a5c83b80e4d05e2c0d819bc2d3c300a51224d2a0add/gurux_serial-1.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9944ec3486aa4df90b9a9f36e89adbea", "sha256": "4bde479a70d499d96a44b3e88d596ec301dc885f3ee13541a9ca0c995859a5e8" }, "downloads": -1, "filename": "gurux_serial-1.0.1.tar.gz", "has_sig": false, "md5_digest": "9944ec3486aa4df90b9a9f36e89adbea", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13378, "upload_time": "2019-08-09T13:13:21", "url": "https://files.pythonhosted.org/packages/a7/40/ed09633434e41d70184125f1b296465d9b0645a3d92a740f792890010e3d/gurux_serial-1.0.1.tar.gz" } ], "1.0.10": [ { "comment_text": "", "digests": { "md5": "8160d3ac257cc3e258f8b93cf076877e", "sha256": "60229ec194365abe5c88be0fa470e969d0b4a95dc3f9de3e00ca2d2f3a9f061e" }, "downloads": -1, "filename": "gurux_serial-1.0.10-py3-none-any.whl", "has_sig": false, "md5_digest": "8160d3ac257cc3e258f8b93cf076877e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 29245, "upload_time": "2019-08-22T07:53:56", "url": "https://files.pythonhosted.org/packages/c2/8b/3c2ff971d54924529613c1d0bb78e487bde682f7777ddd0fcf42fe688e65/gurux_serial-1.0.10-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9a8abb07a200a7699e385d4814bd2181", "sha256": "a12a70d9c95a6b77351900cafa99dd6a01786971a04f880f293998b130d71a3c" }, "downloads": -1, "filename": "gurux_serial-1.0.10.tar.gz", "has_sig": false, "md5_digest": "9a8abb07a200a7699e385d4814bd2181", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17168, "upload_time": "2019-08-22T07:53:58", "url": "https://files.pythonhosted.org/packages/f0/74/68b0579a84a9a75feb09c3f43c62c18a7eae7ee82240e1e1c432cf56df83/gurux_serial-1.0.10.tar.gz" } ], "1.0.11": [ { "comment_text": "", "digests": { "md5": "1429c93182bc8f97d275c13d730fec80", "sha256": "ab934e04cb69040d1a4835d29635d359d159e5f5cf5268e43d3b228d3cb7e713" }, "downloads": -1, "filename": "gurux_serial-1.0.11-py3-none-any.whl", "has_sig": false, "md5_digest": "1429c93182bc8f97d275c13d730fec80", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 29279, "upload_time": "2019-08-26T07:16:13", "url": "https://files.pythonhosted.org/packages/9f/ca/72bcd0e76334938f1255e5b76ec060333e1f271224bf7cd9613801937e46/gurux_serial-1.0.11-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d91a3944f4110e0a8727bb6bfa2a4f22", "sha256": "c2c70e526b583c48b3ef7201a8349f49abb52576a69f36fcab5cd78cadf6bb4a" }, "downloads": -1, "filename": "gurux_serial-1.0.11.tar.gz", "has_sig": false, "md5_digest": "d91a3944f4110e0a8727bb6bfa2a4f22", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17204, "upload_time": "2019-08-26T07:16:15", "url": "https://files.pythonhosted.org/packages/15/fb/426989c335915e705ca4c9a2f3c405dfd7c6510f5f344bda602ebfa86616/gurux_serial-1.0.11.tar.gz" } ], "1.0.12": [ { "comment_text": "", "digests": { "md5": "66312c0b8a1e8672d3315585ba72e48f", "sha256": "eb7fca5fe9d6cd77062b64d63915396ffcc3baacdd624d62916fa73cb8780222" }, "downloads": -1, "filename": "gurux_serial-1.0.12-py3-none-any.whl", "has_sig": false, "md5_digest": "66312c0b8a1e8672d3315585ba72e48f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 29463, "upload_time": "2019-08-26T13:46:43", "url": "https://files.pythonhosted.org/packages/26/83/f443b6520c5773987f71993b48842686863521769a635755d73fd944b963/gurux_serial-1.0.12-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a240d30a68a4741d1730284a6926eba5", "sha256": "94fdbe370ea3534d1572438e28c466f471e8b7553b0800e845c5cc69b46fa4e9" }, "downloads": -1, "filename": "gurux_serial-1.0.12.tar.gz", "has_sig": false, "md5_digest": "a240d30a68a4741d1730284a6926eba5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17362, "upload_time": "2019-08-26T13:46:45", "url": "https://files.pythonhosted.org/packages/62/6c/afe353e42bd480daa45b424f8354f4792033b45b4c5b869128c3ba8b0da0/gurux_serial-1.0.12.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "316dac23f49f991eacf0604567f7ee92", "sha256": "469fb6eb587888223d94162731ac61d7e520303ff3355c4fa68cc4ab9395a1f3" }, "downloads": -1, "filename": "gurux_serial-1.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "316dac23f49f991eacf0604567f7ee92", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 27069, "upload_time": "2019-08-12T08:39:46", "url": "https://files.pythonhosted.org/packages/81/21/63bee4fe9047416b1d081dd019c7a859265c7124bf9c78993b65e1c37835/gurux_serial-1.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b7968df391c6a896cd786a40a9ad5423", "sha256": "72d6f9bae4445c9de15022d15d974e9db488d07a5ed9ce7f06131c4a0b6dbce3" }, "downloads": -1, "filename": "gurux_serial-1.0.2.tar.gz", "has_sig": false, "md5_digest": "b7968df391c6a896cd786a40a9ad5423", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13448, "upload_time": "2019-08-12T08:39:48", "url": "https://files.pythonhosted.org/packages/e7/fd/19a111918953adf912a47d3e9a08d6168ee9cf7c380de2ab8f24e6f6a29a/gurux_serial-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "bc97df4242cab5c4838517c7b378da6e", "sha256": "dc49c144a0c1c9ed95bd843c85692d5ab4d6f72851c252e9a55ea64225cc17b7" }, "downloads": -1, "filename": "gurux_serial-1.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "bc97df4242cab5c4838517c7b378da6e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 27012, "upload_time": "2019-08-12T12:05:43", "url": "https://files.pythonhosted.org/packages/5f/f9/fe5ee05c135200ef7c37c9f288c8b7eac215c5b6a39ca5f5301c524813af/gurux_serial-1.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "27a0ab13af31d2274863be1982b2eb45", "sha256": "a0c930f47d51c668b542a1896df62d7cb606ae2960da22ec230e6cd730ed110f" }, "downloads": -1, "filename": "gurux_serial-1.0.3.tar.gz", "has_sig": false, "md5_digest": "27a0ab13af31d2274863be1982b2eb45", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13376, "upload_time": "2019-08-12T12:05:45", "url": "https://files.pythonhosted.org/packages/92/d5/586aa0cd336e5aea5ca0f03122437f1856234408e52d23a909c22b3b03c3/gurux_serial-1.0.3.tar.gz" } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "8a8dc4e790cce248221ab186e49b3b05", "sha256": "cb69e121b434d20041b99bd0f0ba2cbfc9f5897c212bc3eb41b1213fc4c8f799" }, "downloads": -1, "filename": "gurux_serial-1.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "8a8dc4e790cce248221ab186e49b3b05", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 28742, "upload_time": "2019-08-14T16:32:26", "url": "https://files.pythonhosted.org/packages/02/19/ce7a0a4dc738f1a39767ed419f69b5638c05564e8f2b03467d2f05edecca/gurux_serial-1.0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d60eabaa93031983b4fa17b72fb7d6d1", "sha256": "3a7ed6cec900e5701335715faf8888e6990ab2378c0c8eaf9ec208250a2bbe9e" }, "downloads": -1, "filename": "gurux_serial-1.0.4.tar.gz", "has_sig": false, "md5_digest": "d60eabaa93031983b4fa17b72fb7d6d1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16740, "upload_time": "2019-08-14T16:32:28", "url": "https://files.pythonhosted.org/packages/37/a2/8285372d3797904d51a3061cac336e1174786defdb1f403459db24ede18e/gurux_serial-1.0.4.tar.gz" } ], "1.0.5": [ { "comment_text": "", "digests": { "md5": "19394ecd76b30b63a20a12cc80a4b056", "sha256": "a1c2d44f8f97ee9751ec9d9491aa87d5ec78be4e8bc5664b40af9f0c83af3358" }, "downloads": -1, "filename": "gurux_serial-1.0.5-py3-none-any.whl", "has_sig": false, "md5_digest": "19394ecd76b30b63a20a12cc80a4b056", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 29257, "upload_time": "2019-08-15T10:53:46", "url": "https://files.pythonhosted.org/packages/d3/f8/093de2d4afc866ac47fd14bfff5b2cb859a79829ff02b0111212a4d4b41d/gurux_serial-1.0.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "33aa612754df57257c092e8d0b14c9b4", "sha256": "0b9af38eae0939a05a616f8bd2b26d734cd93d90019533f5d55d2bf4e6893044" }, "downloads": -1, "filename": "gurux_serial-1.0.5.tar.gz", "has_sig": false, "md5_digest": "33aa612754df57257c092e8d0b14c9b4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17263, "upload_time": "2019-08-15T10:53:47", "url": "https://files.pythonhosted.org/packages/1b/d2/c679a1a3ed6f9c55a9c5b7c68a4e6dd18f52c76855fefa2981faab85dfbc/gurux_serial-1.0.5.tar.gz" } ], "1.0.6": [ { "comment_text": "", "digests": { "md5": "35be881cef66679483fd40ee26654515", "sha256": "13e4a33c2c5d1816057a26dd0cbe3612c4b409d8531f8fa4809e33af19debe3e" }, "downloads": -1, "filename": "gurux_serial-1.0.6-py3-none-any.whl", "has_sig": false, "md5_digest": "35be881cef66679483fd40ee26654515", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 29233, "upload_time": "2019-08-19T13:24:02", "url": "https://files.pythonhosted.org/packages/51/58/cd6ff69772789c153741c0fbc52bbb573c8a8eb0f307194352b6790450e5/gurux_serial-1.0.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a9450210d2ebb3e6889693e16164ea46", "sha256": "79d2cc216e4e5665b8d8ae7df4fc729ad5a7cf4de07c55533c557f8ebeb9905d" }, "downloads": -1, "filename": "gurux_serial-1.0.6.tar.gz", "has_sig": false, "md5_digest": "a9450210d2ebb3e6889693e16164ea46", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17139, "upload_time": "2019-08-19T13:24:04", "url": "https://files.pythonhosted.org/packages/88/9e/ea8244e6677e94a87bf87ab8a5854df978ea2757ebf3222a7c0f9a66a028/gurux_serial-1.0.6.tar.gz" } ], "1.0.7": [ { "comment_text": "", "digests": { "md5": "5bf22d2a0cbb451d9ff5e0631d556c03", "sha256": "5205fc78ae9dce57b2241e763665bad2be8561d53aeb7657fc0022983a7c3822" }, "downloads": -1, "filename": "gurux_serial-1.0.7-py3-none-any.whl", "has_sig": false, "md5_digest": "5bf22d2a0cbb451d9ff5e0631d556c03", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 29238, "upload_time": "2019-08-19T13:30:36", "url": "https://files.pythonhosted.org/packages/f7/85/a06042110c0f59aaf4ccc49e127df17104b11c88f71508907f9e08ef4441/gurux_serial-1.0.7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "591bdcd3dcd96acbec79fc18bc1a2be8", "sha256": "c684f3a00393ed7b5d5a6b1dbff469a7d113ae3e36fad96582bbed1ef63eae98" }, "downloads": -1, "filename": "gurux_serial-1.0.7.tar.gz", "has_sig": false, "md5_digest": "591bdcd3dcd96acbec79fc18bc1a2be8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17138, "upload_time": "2019-08-19T13:30:38", "url": "https://files.pythonhosted.org/packages/ac/dd/e1086fe3344fced71cb7fdf3f54449787fed771d665ccc37073991f0868d/gurux_serial-1.0.7.tar.gz" } ], "1.0.8": [ { "comment_text": "", "digests": { "md5": "c2b8618b50c8a2643aaa093aabe82cb7", "sha256": "97fa9c76ab7c7f4b9dc406051bdca5d2f18e5f9a01383626e866fa75cba1908a" }, "downloads": -1, "filename": "gurux_serial-1.0.8-py3-none-any.whl", "has_sig": false, "md5_digest": "c2b8618b50c8a2643aaa093aabe82cb7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 29240, "upload_time": "2019-08-20T15:05:41", "url": "https://files.pythonhosted.org/packages/8e/e9/018bbcd03a8e1e4169a611602f8f33a19849237b6259ce2ea28620aee14c/gurux_serial-1.0.8-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f58b6f02b755b9ed391516e04c2d29b8", "sha256": "c965918487a4ae2614bef610f66aa0a1b891f26686349a8d713c68622b691bc7" }, "downloads": -1, "filename": "gurux_serial-1.0.8.tar.gz", "has_sig": false, "md5_digest": "f58b6f02b755b9ed391516e04c2d29b8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17140, "upload_time": "2019-08-20T15:05:44", "url": "https://files.pythonhosted.org/packages/d6/1c/85e42a497851ef8af9f24c8afcce35edb5bbb29720a06e8fcf46d83fc4ef/gurux_serial-1.0.8.tar.gz" } ], "1.0.9": [ { "comment_text": "", "digests": { "md5": "a7b514c4a28ec1b7af1d26439ade095e", "sha256": "164d1bd7c95edd2ce5b9a2a1ed5a627d4e422a45b7bad7d206443c9acbee4559" }, "downloads": -1, "filename": "gurux_serial-1.0.9-py3-none-any.whl", "has_sig": false, "md5_digest": "a7b514c4a28ec1b7af1d26439ade095e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 29233, "upload_time": "2019-08-21T09:33:41", "url": "https://files.pythonhosted.org/packages/bf/7e/449322016bbcd59d0f8192be6301ea36cac33efaa21c3bad1c1737553a3f/gurux_serial-1.0.9-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7cdbb1b5f2282b59c34def1f0f4406b8", "sha256": "2aa506cbbcaff5f5dd52be6e25fc360186b51ae31174a82715e89e06368c8c4e" }, "downloads": -1, "filename": "gurux_serial-1.0.9.tar.gz", "has_sig": false, "md5_digest": "7cdbb1b5f2282b59c34def1f0f4406b8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17146, "upload_time": "2019-08-21T09:33:42", "url": "https://files.pythonhosted.org/packages/32/d0/657c384a631068097ed5efe70a11460b7a72144b59e6167f523786fcf2ca/gurux_serial-1.0.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "66312c0b8a1e8672d3315585ba72e48f", "sha256": "eb7fca5fe9d6cd77062b64d63915396ffcc3baacdd624d62916fa73cb8780222" }, "downloads": -1, "filename": "gurux_serial-1.0.12-py3-none-any.whl", "has_sig": false, "md5_digest": "66312c0b8a1e8672d3315585ba72e48f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 29463, "upload_time": "2019-08-26T13:46:43", "url": "https://files.pythonhosted.org/packages/26/83/f443b6520c5773987f71993b48842686863521769a635755d73fd944b963/gurux_serial-1.0.12-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a240d30a68a4741d1730284a6926eba5", "sha256": "94fdbe370ea3534d1572438e28c466f471e8b7553b0800e845c5cc69b46fa4e9" }, "downloads": -1, "filename": "gurux_serial-1.0.12.tar.gz", "has_sig": false, "md5_digest": "a240d30a68a4741d1730284a6926eba5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17362, "upload_time": "2019-08-26T13:46:45", "url": "https://files.pythonhosted.org/packages/62/6c/afe353e42bd480daa45b424f8354f4792033b45b4c5b869128c3ba8b0da0/gurux_serial-1.0.12.tar.gz" } ] }