{ "info": { "author": "Daniel Andersson", "author_email": "daniel.4ndersson@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Console", "Intended Audience :: Developers", "Intended Audience :: Education", "Intended Audience :: Science/Research", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Operating System :: Microsoft :: Windows :: Windows 10", "Operating System :: POSIX :: Linux", "Programming Language :: C", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: Implementation :: CPython", "Topic :: Software Development :: Version Control :: Git" ], "description": "Welcome to InfluxDB line-protocol-parser\n========================================\n\nParse InfluxDB `line protocol`_ strings into Python dictionaries.\n\nExample:\n^^^^^^^^\n\n >>> from line_protocol_parser import parse_line\n >>> data = parse_line('myMeas,someTag=ABC field1=3.14,field2=\"Hello, World!\" 123')\n >>> print(data)\n {'measurement': 'myMeas',\n 'fields': {'field1': 3.14, 'field2': 'Hello, World!'},\n 'tags': {'someTag': 'ABC'},\n 'time': 123}\n\n\n**The InfluxDB line protocol is a text based format for writing points to InfluxDB.\nThis project can read this format and convert line strings to Python dicitonaries.**\n\nThe line protocol has the following format:\n\n [,=[,=]] =[,=] []\n\nand is documented here: `InfluxDB line protocol`_.\n\nThe ``line_protocol_parser`` module only contains the ``parse_line`` function and the ``LineFormatError`` exception which is raised on failure.\n\nInstallation\n^^^^^^^^^^^^\nFrom PyPI:\n\n.. code-block:: bash\n\n $ python3 -m pip install line-protocol-parser\n\nor from source (make sure you have ``python3 -m pip install wheel setuptools`` first):\n\n.. code-block:: bash\n\n $ git clone https://github.com/Penlect/line-protocol-parser.git\n $ cd line-protocol-parser\n $ python3 setup.py bdist_wheel\n $ python3 -m pip install ./dist/line-protocol-parser-*.whl\n\nor from generated Debian package:\n\n.. code-block:: bash\n\n # Install build dependencies\n $ sudo apt install python3-all python3-all-dev python3-setuptools dh-python\n $ git clone https://github.com/Penlect/line-protocol-parser.git\n $ cd line-protocol-parser\n $ make deb\n $ sudo apt install ./python3-line-protocol-parser_*.deb\n\nUse Case 1: Read points from a file\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nSuppose you have a text file with influxDB measurement points, \"my_influxDB_points.txt\"::\n\n myMeasurement,someTag=A temperature=37.0 1570977942581909918\n myMeasurement,someTag=A temperature=37.3 1570977942581910000\n myMeasurement,someTag=A temperature=36.9 1570977942581912345\n myMeasurement,someTag=A temperature=37.1 1570977942581923399\n ...\n\nThen you can load each line into a dicitonary to be printed like this:\n\n.. code-block:: python3\n\n >>> from line_protocol_parser import parse_line\n >>> with open('my_influxDB_points.txt', 'r') as f_obj:\n ... for line in f_obj:\n ... print(parse_line(line))\n\n\nUse Case 2: InfluxDB subscriptions\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nInfluxDB subscriptions are documented here: `InfluxDB Subscriptions`_.\n\nInfluxDB subscriptions are local or remote endpoints to which all data written to InfluxDB is copied. Endpoint able to accept UDP, HTTP, or HTTPS connections can subscribe to InfluxDB and receive a copy of all data as it is written.\n\nIn this example we will do the following:\n\n1) Setup and run a InfluxDB container.\n2) Create a subscription.\n3) Create a Python server and register it as an endpoint.\n4) Use ``line_protocol_parser`` to read and print incoming data.\n\n**Step 1**. Run the following commands to run a `InfluxDB container`_ and attach to the influx client.\n\n.. code-block:: bash\n\n $ docker run -d --network=\"host\" --name inf influxdb\n $ docker exec -it inf influx\n\n\n**Step 2**. Create subscription. Run these commands in the influx client prompt.\n\n\n.. code-block:: bash\n\n > CREATE DATABASE mydb\n > USE mydb\n > CREATE SUBSCRIPTION \"mysub\" ON \"mydb\".\"autogen\" DESTINATIONS ALL 'http://localhost:9090'\n\nSince we used `--network=\"host\"` we can use localhost from inside the container.\n\n**Step 3 & 4**. Python server to receive InfluxDB data.\n\nCreate a python file *server.py* with the following content:\n\n.. code-block:: python\n\n from pprint import pprint\n from http.server import HTTPServer, BaseHTTPRequestHandler\n from line_protocol_parser import parse_line\n\n class PostHandler(BaseHTTPRequestHandler):\n\n def do_POST(self):\n content_length = int(self.headers['Content-Length'])\n post_data = self.rfile.read(content_length)\n pprint(parse_line(post_data))\n self.send_response(200)\n self.end_headers()\n\n if __name__ == '__main__':\n server = HTTPServer(('localhost', 9090), PostHandler)\n print('Starting server, use to stop')\n server.serve_forever()\n\n\nStart the server:\n\n.. code-block:: bash\n\n $ python3 server.py\n Starting server, use to stop\n\n\nNext, go back to your influx client and insert a data point:\n\n.. code-block:: bash\n\n > INSERT oven,room=kitchen temperature=225.0 1234567890\n\nHead back to your Python server and watch the output:\n\n.. code-block:: bash\n\n $ python3 server.py\n Starting server, use to stop\n {'fields': {'temperature': 225.0},\n 'measurement': 'oven',\n 'tags': {'room': 'kitchen'},\n 'time': 1234567890}\n 172.17.0.2 - - [14/Oct/2019 21:02:57] \"POST /write?consistency=&db=mydb&precision=ns&rp=autogen HTTP/1.1\" 200 -\n\n\nPure C usage\n^^^^^^^^^^^^\nIf you are not interested in the Python wrapper you may find the pure-c files useful:\n\n* ``include/line_protocol_parser.h``\n* ``src/line_protocol_parser.c``\n\nExample:\n\n.. code-block:: c\n\n int main()\n {\n const char *line = \"measurement,tag=value field=\\\"Hello, world!\\\" 1570283407262541159\";\n struct LP_Point *point;\n int status = 0;\n point = LP_parse_line(line, &status);\n if (point == NULL) {\n LP_DEBUG_PRINT(\"ERROR STATUS: %d\\n\", status);\n }\n // < Do something useful with point here >\n LP_free_point(point);\n return status;\n }\n\nPlease see the comments in the source and header file for more information.\n\nExamples from the Test Cases\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nThe test cases are a good source of examples. Please see: `tests/test_parse_line.py `_.\n\nChangelog\n^^^^^^^^^\nThe changelog is maintained in the debian directory, please check there: `changelog `_.\n\n.. _line protocol: https://docs.influxdata.com/influxdb/latest/write_protocols/line_protocol_reference/\n.. _InfluxDB line protocol: https://docs.influxdata.com/influxdb/latest/write_protocols/line_protocol_reference/\n.. _InfluxDB Subscriptions: https://docs.influxdata.com/influxdb/latest/administration/subscription-management/\n.. _InfluxDB container: https://hub.docker.com/_/influxdb", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/Penlect/line-protocol-parser", "keywords": "InfluxDB influx line protocol parser reader", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "line-protocol-parser", "package_url": "https://pypi.org/project/line-protocol-parser/", "platform": "", "project_url": "https://pypi.org/project/line-protocol-parser/", "project_urls": { "Homepage": "https://github.com/Penlect/line-protocol-parser" }, "release_url": "https://pypi.org/project/line-protocol-parser/1.0.0/", "requires_dist": null, "requires_python": "", "summary": "Parse InfluxDB line protocol string into Python dictionary", "version": "1.0.0" }, "last_serial": 6002834, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "2b1bb28033d2b09d54796612dd579295", "sha256": "a34ed33f81d079a8ba6e1a0ddeaae21d9792d76399315bc10e78812f690448a1" }, "downloads": -1, "filename": "line_protocol_parser-1.0.0-cp35-cp35m-linux_armv7l.whl", "has_sig": false, "md5_digest": "2b1bb28033d2b09d54796612dd579295", "packagetype": "bdist_wheel", "python_version": "cp35", "requires_python": null, "size": 27467, "upload_time": "2019-10-20T12:01:06", "url": "https://files.pythonhosted.org/packages/b7/65/394a3150eae2e80cd8b22ab0225bf9a5f1b3de1eff07d7d8955ec8b1a722/line_protocol_parser-1.0.0-cp35-cp35m-linux_armv7l.whl" }, { "comment_text": "", "digests": { "md5": "86f225e38439ebb99b55cccc01b3c681", "sha256": "2ed1b31b8c9ff25f3582ce14032dc556d536cb7be9ac4cd80cbf5dde27ea22a4" }, "downloads": -1, "filename": "line_protocol_parser-1.0.0-cp36-cp36m-linux_armv7l.whl", "has_sig": false, "md5_digest": "86f225e38439ebb99b55cccc01b3c681", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 27328, "upload_time": "2019-10-20T13:12:33", "url": "https://files.pythonhosted.org/packages/47/e4/cdca70d2d31252d5fc8882a1fd775c75ccfece9e9682ce23be2203da382f/line_protocol_parser-1.0.0-cp36-cp36m-linux_armv7l.whl" }, { "comment_text": "", "digests": { "md5": "267951c91b762672360c1f1fa30a0444", "sha256": "5c5dd2298b16fceab68a1a3cda6be700741e006ca57c770c3fbd0389a626ba2d" }, "downloads": -1, "filename": "line_protocol_parser-1.0.0-cp36-cp36m-win32.whl", "has_sig": false, "md5_digest": "267951c91b762672360c1f1fa30a0444", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 17858, "upload_time": "2019-10-20T11:48:19", "url": "https://files.pythonhosted.org/packages/7a/16/b894e796a0d902986f11561f5a3a92a4727834c7d467219305fc6f72f900/line_protocol_parser-1.0.0-cp36-cp36m-win32.whl" }, { "comment_text": "", "digests": { "md5": "d2259088d36181a92242746832efa12c", "sha256": "12dff2d328258f1c5f08aaacc50d0e011888af1d2f28eabe060aabf23f9bc8be" }, "downloads": -1, "filename": "line_protocol_parser-1.0.0-cp36-cp36m-win_amd64.whl", "has_sig": false, "md5_digest": "d2259088d36181a92242746832efa12c", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 18588, "upload_time": "2019-10-20T11:48:20", "url": "https://files.pythonhosted.org/packages/92/fd/5b1a94caab19d13e9eff5b2b688ca3b4b4a64af3661a7ce5cf9aaa78dca5/line_protocol_parser-1.0.0-cp36-cp36m-win_amd64.whl" }, { "comment_text": "", "digests": { "md5": "ac431c68ce5f552c3aaf697f9e8a3fae", "sha256": "98827c02fc962032f6d883010ca647a7c0e8c7eac5830741a0aadad076890bf4" }, "downloads": -1, "filename": "line_protocol_parser-1.0.0-cp37-cp37m-linux_armv7l.whl", "has_sig": false, "md5_digest": "ac431c68ce5f552c3aaf697f9e8a3fae", "packagetype": "bdist_wheel", "python_version": "cp37", "requires_python": null, "size": 28329, "upload_time": "2019-10-20T13:12:35", "url": "https://files.pythonhosted.org/packages/0d/9e/7953c787c483ca3512ae564bf7b4684695913a28fdd626b72fc236ce71f0/line_protocol_parser-1.0.0-cp37-cp37m-linux_armv7l.whl" }, { "comment_text": "", "digests": { "md5": "8bf2e382e70c54795fb7facfa269e56c", "sha256": "c1b2721bfeebd1fd4be8f5cf1e9cfc7c4fca458bce57d4dd0fccb0333fcb7679" }, "downloads": -1, "filename": "line_protocol_parser-1.0.0-cp37-cp37m-win32.whl", "has_sig": false, "md5_digest": "8bf2e382e70c54795fb7facfa269e56c", "packagetype": "bdist_wheel", "python_version": "cp37", "requires_python": null, "size": 13112, "upload_time": "2019-10-20T11:48:22", "url": "https://files.pythonhosted.org/packages/fe/c0/bb944daff8c29c23d3f70cab835476262e1becabb7493ea48aae53686a53/line_protocol_parser-1.0.0-cp37-cp37m-win32.whl" }, { "comment_text": "", "digests": { "md5": "ce529ab439a2bf3bd5c8c57023ba3afe", "sha256": "5d9f3a4448e49fe294aa22cf3565141f3aaed5be2039a339071944eb5873a780" }, "downloads": -1, "filename": "line_protocol_parser-1.0.0-cp37-cp37m-win_amd64.whl", "has_sig": false, "md5_digest": "ce529ab439a2bf3bd5c8c57023ba3afe", "packagetype": "bdist_wheel", "python_version": "cp37", "requires_python": null, "size": 18591, "upload_time": "2019-10-20T11:48:24", "url": "https://files.pythonhosted.org/packages/78/42/31b3bfdc2c74d8c261481900f1fb2baa5c0c3cf2986355a792159b73eaee/line_protocol_parser-1.0.0-cp37-cp37m-win_amd64.whl" }, { "comment_text": "", "digests": { "md5": "218c6e450137321e2ccb61fddee12029", "sha256": "73c382677c7518bf409ce2bed8ddbedf7ef8ea4f17be6235bd3ed2cd17146422" }, "downloads": -1, "filename": "line_protocol_parser-1.0.0-cp38-cp38-linux_armv7l.whl", "has_sig": false, "md5_digest": "218c6e450137321e2ccb61fddee12029", "packagetype": "bdist_wheel", "python_version": "cp38", "requires_python": null, "size": 28345, "upload_time": "2019-10-20T13:12:38", "url": "https://files.pythonhosted.org/packages/05/3e/3164cc12b7aca7def6dac9e4ec8014ba8ce53590f8f6e190de213e022fab/line_protocol_parser-1.0.0-cp38-cp38-linux_armv7l.whl" }, { "comment_text": "", "digests": { "md5": "4fabc8d7568af2fc38b0da930eb85000", "sha256": "319d6a7fe753fd1a4f0d312d2b61c439f35773a46de9afbe76b9c37394c3c5c6" }, "downloads": -1, "filename": "line_protocol_parser-1.0.0-cp38-cp38-win32.whl", "has_sig": false, "md5_digest": "4fabc8d7568af2fc38b0da930eb85000", "packagetype": "bdist_wheel", "python_version": "cp38", "requires_python": null, "size": 13162, "upload_time": "2019-10-20T11:48:27", "url": "https://files.pythonhosted.org/packages/4b/b3/0ab6ad3816ae443d1ae2d6bd514f193cf55190a4cf8e7983adc6486658d7/line_protocol_parser-1.0.0-cp38-cp38-win32.whl" }, { "comment_text": "", "digests": { "md5": "7fb8936073a7b4afb2270244572a8fe8", "sha256": "43b4f5b04b170cdca10ea96d807db2b760fb8e3e75c286a1c39986a45a4082ab" }, "downloads": -1, "filename": "line_protocol_parser-1.0.0-cp38-cp38-win_amd64.whl", "has_sig": false, "md5_digest": "7fb8936073a7b4afb2270244572a8fe8", "packagetype": "bdist_wheel", "python_version": "cp38", "requires_python": null, "size": 14049, "upload_time": "2019-10-20T11:48:29", "url": "https://files.pythonhosted.org/packages/0d/7b/bc2bca65465e4fd694bafdc64b7feba71164f0480ad7373c8c1161c42ef4/line_protocol_parser-1.0.0-cp38-cp38-win_amd64.whl" }, { "comment_text": "", "digests": { "md5": "b0dc0dac7d54980c8e63e5f3ddf8738d", "sha256": "ac7791803920a3fb799fb0d346385bbc50467bd17e9c45dfe5e0aa711e350e14" }, "downloads": -1, "filename": "line-protocol-parser-1.0.0.tar.gz", "has_sig": false, "md5_digest": "b0dc0dac7d54980c8e63e5f3ddf8738d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10367, "upload_time": "2019-10-20T11:26:28", "url": "https://files.pythonhosted.org/packages/56/4c/d5def2c9eb2a37898dfdcb57f2c472ea028eeb7f45e8e519fd6ef1843618/line-protocol-parser-1.0.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "2b1bb28033d2b09d54796612dd579295", "sha256": "a34ed33f81d079a8ba6e1a0ddeaae21d9792d76399315bc10e78812f690448a1" }, "downloads": -1, "filename": "line_protocol_parser-1.0.0-cp35-cp35m-linux_armv7l.whl", "has_sig": false, "md5_digest": "2b1bb28033d2b09d54796612dd579295", "packagetype": "bdist_wheel", "python_version": "cp35", "requires_python": null, "size": 27467, "upload_time": "2019-10-20T12:01:06", "url": "https://files.pythonhosted.org/packages/b7/65/394a3150eae2e80cd8b22ab0225bf9a5f1b3de1eff07d7d8955ec8b1a722/line_protocol_parser-1.0.0-cp35-cp35m-linux_armv7l.whl" }, { "comment_text": "", "digests": { "md5": "86f225e38439ebb99b55cccc01b3c681", "sha256": "2ed1b31b8c9ff25f3582ce14032dc556d536cb7be9ac4cd80cbf5dde27ea22a4" }, "downloads": -1, "filename": "line_protocol_parser-1.0.0-cp36-cp36m-linux_armv7l.whl", "has_sig": false, "md5_digest": "86f225e38439ebb99b55cccc01b3c681", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 27328, "upload_time": "2019-10-20T13:12:33", "url": "https://files.pythonhosted.org/packages/47/e4/cdca70d2d31252d5fc8882a1fd775c75ccfece9e9682ce23be2203da382f/line_protocol_parser-1.0.0-cp36-cp36m-linux_armv7l.whl" }, { "comment_text": "", "digests": { "md5": "267951c91b762672360c1f1fa30a0444", "sha256": "5c5dd2298b16fceab68a1a3cda6be700741e006ca57c770c3fbd0389a626ba2d" }, "downloads": -1, "filename": "line_protocol_parser-1.0.0-cp36-cp36m-win32.whl", "has_sig": false, "md5_digest": "267951c91b762672360c1f1fa30a0444", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 17858, "upload_time": "2019-10-20T11:48:19", "url": "https://files.pythonhosted.org/packages/7a/16/b894e796a0d902986f11561f5a3a92a4727834c7d467219305fc6f72f900/line_protocol_parser-1.0.0-cp36-cp36m-win32.whl" }, { "comment_text": "", "digests": { "md5": "d2259088d36181a92242746832efa12c", "sha256": "12dff2d328258f1c5f08aaacc50d0e011888af1d2f28eabe060aabf23f9bc8be" }, "downloads": -1, "filename": "line_protocol_parser-1.0.0-cp36-cp36m-win_amd64.whl", "has_sig": false, "md5_digest": "d2259088d36181a92242746832efa12c", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 18588, "upload_time": "2019-10-20T11:48:20", "url": "https://files.pythonhosted.org/packages/92/fd/5b1a94caab19d13e9eff5b2b688ca3b4b4a64af3661a7ce5cf9aaa78dca5/line_protocol_parser-1.0.0-cp36-cp36m-win_amd64.whl" }, { "comment_text": "", "digests": { "md5": "ac431c68ce5f552c3aaf697f9e8a3fae", "sha256": "98827c02fc962032f6d883010ca647a7c0e8c7eac5830741a0aadad076890bf4" }, "downloads": -1, "filename": "line_protocol_parser-1.0.0-cp37-cp37m-linux_armv7l.whl", "has_sig": false, "md5_digest": "ac431c68ce5f552c3aaf697f9e8a3fae", "packagetype": "bdist_wheel", "python_version": "cp37", "requires_python": null, "size": 28329, "upload_time": "2019-10-20T13:12:35", "url": "https://files.pythonhosted.org/packages/0d/9e/7953c787c483ca3512ae564bf7b4684695913a28fdd626b72fc236ce71f0/line_protocol_parser-1.0.0-cp37-cp37m-linux_armv7l.whl" }, { "comment_text": "", "digests": { "md5": "8bf2e382e70c54795fb7facfa269e56c", "sha256": "c1b2721bfeebd1fd4be8f5cf1e9cfc7c4fca458bce57d4dd0fccb0333fcb7679" }, "downloads": -1, "filename": "line_protocol_parser-1.0.0-cp37-cp37m-win32.whl", "has_sig": false, "md5_digest": "8bf2e382e70c54795fb7facfa269e56c", "packagetype": "bdist_wheel", "python_version": "cp37", "requires_python": null, "size": 13112, "upload_time": "2019-10-20T11:48:22", "url": "https://files.pythonhosted.org/packages/fe/c0/bb944daff8c29c23d3f70cab835476262e1becabb7493ea48aae53686a53/line_protocol_parser-1.0.0-cp37-cp37m-win32.whl" }, { "comment_text": "", "digests": { "md5": "ce529ab439a2bf3bd5c8c57023ba3afe", "sha256": "5d9f3a4448e49fe294aa22cf3565141f3aaed5be2039a339071944eb5873a780" }, "downloads": -1, "filename": "line_protocol_parser-1.0.0-cp37-cp37m-win_amd64.whl", "has_sig": false, "md5_digest": "ce529ab439a2bf3bd5c8c57023ba3afe", "packagetype": "bdist_wheel", "python_version": "cp37", "requires_python": null, "size": 18591, "upload_time": "2019-10-20T11:48:24", "url": "https://files.pythonhosted.org/packages/78/42/31b3bfdc2c74d8c261481900f1fb2baa5c0c3cf2986355a792159b73eaee/line_protocol_parser-1.0.0-cp37-cp37m-win_amd64.whl" }, { "comment_text": "", "digests": { "md5": "218c6e450137321e2ccb61fddee12029", "sha256": "73c382677c7518bf409ce2bed8ddbedf7ef8ea4f17be6235bd3ed2cd17146422" }, "downloads": -1, "filename": "line_protocol_parser-1.0.0-cp38-cp38-linux_armv7l.whl", "has_sig": false, "md5_digest": "218c6e450137321e2ccb61fddee12029", "packagetype": "bdist_wheel", "python_version": "cp38", "requires_python": null, "size": 28345, "upload_time": "2019-10-20T13:12:38", "url": "https://files.pythonhosted.org/packages/05/3e/3164cc12b7aca7def6dac9e4ec8014ba8ce53590f8f6e190de213e022fab/line_protocol_parser-1.0.0-cp38-cp38-linux_armv7l.whl" }, { "comment_text": "", "digests": { "md5": "4fabc8d7568af2fc38b0da930eb85000", "sha256": "319d6a7fe753fd1a4f0d312d2b61c439f35773a46de9afbe76b9c37394c3c5c6" }, "downloads": -1, "filename": "line_protocol_parser-1.0.0-cp38-cp38-win32.whl", "has_sig": false, "md5_digest": "4fabc8d7568af2fc38b0da930eb85000", "packagetype": "bdist_wheel", "python_version": "cp38", "requires_python": null, "size": 13162, "upload_time": "2019-10-20T11:48:27", "url": "https://files.pythonhosted.org/packages/4b/b3/0ab6ad3816ae443d1ae2d6bd514f193cf55190a4cf8e7983adc6486658d7/line_protocol_parser-1.0.0-cp38-cp38-win32.whl" }, { "comment_text": "", "digests": { "md5": "7fb8936073a7b4afb2270244572a8fe8", "sha256": "43b4f5b04b170cdca10ea96d807db2b760fb8e3e75c286a1c39986a45a4082ab" }, "downloads": -1, "filename": "line_protocol_parser-1.0.0-cp38-cp38-win_amd64.whl", "has_sig": false, "md5_digest": "7fb8936073a7b4afb2270244572a8fe8", "packagetype": "bdist_wheel", "python_version": "cp38", "requires_python": null, "size": 14049, "upload_time": "2019-10-20T11:48:29", "url": "https://files.pythonhosted.org/packages/0d/7b/bc2bca65465e4fd694bafdc64b7feba71164f0480ad7373c8c1161c42ef4/line_protocol_parser-1.0.0-cp38-cp38-win_amd64.whl" }, { "comment_text": "", "digests": { "md5": "b0dc0dac7d54980c8e63e5f3ddf8738d", "sha256": "ac7791803920a3fb799fb0d346385bbc50467bd17e9c45dfe5e0aa711e350e14" }, "downloads": -1, "filename": "line-protocol-parser-1.0.0.tar.gz", "has_sig": false, "md5_digest": "b0dc0dac7d54980c8e63e5f3ddf8738d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10367, "upload_time": "2019-10-20T11:26:28", "url": "https://files.pythonhosted.org/packages/56/4c/d5def2c9eb2a37898dfdcb57f2c472ea028eeb7f45e8e519fd6ef1843618/line-protocol-parser-1.0.0.tar.gz" } ] }