{ "info": { "author": "Alex Peters", "author_email": "", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Communications", "Typing :: Typed" ], "description": "``dlestxetx``: DLE/STX/ETX packet encoder/decoder\n=================================================\n\n.. image:: https://img.shields.io/pypi/v/dlestxetx.svg\n :target: https://pypi.org/project/dlestxetx\n :alt: latest release on PyPI\n.. image:: https://travis-ci.org/Lx/python-dlestxetx.svg\n :target: https://travis-ci.org/Lx/python-dlestxetx\n :alt: build & test status\n.. image:: https://coveralls.io/repos/github/Lx/python-dlestxetx/badge.svg\n :target: https://coveralls.io/github/Lx/python-dlestxetx\n :alt: test coverage status\n\n**DLE/STX/ETX** is a `packet framing algorithm`_,\nused by some devices (such as Metlink LED passenger information displays)\nto transmit *data* as *packets* over a serial medium.\nThis algorithm delimits data using ``DLE``, ``STX``, and ``ETX`` `control codes`_.\n\nPackets begin with a ``DLE STX`` sequence,\nfollow with a byte-stuffed_ data stream\n(all ``DLE`` bytes in the data are conveyed as ``DLE DLE``),\nand end with a ``DLE ETX`` sequence.\n\nThe ``dlestxetx`` module provides functions\nto encode data into packets::\n\n >>> from dlestxetx import encode\n >>> encode(b'\\x01\\x10\\x05')\n b'\\x10\\x02\\x01\\x10\\x10\\x05\\x10\\x03'\n\ndecode packets into data::\n\n >>> from dlestxetx import decode\n >>> decode(b'\\x10\\x02\\x01\\x10\\x10\\x05\\x10\\x03')\n b'\\x01\\x10\\x05'\n\nand read packets directly from `file objects`_::\n\n >>> from dlestxetx import read\n >>> packets = BytesIO(encode(b'\\x04\\x05\\x06') + encode(b'\\x07\\x08\\x09'))\n >>> read(packets)\n b'\\x04\\x05\\x06'\n >>> read(packets)\n b'\\x07\\x08\\x09'\n\n.. _packet framing algorithm:\n https://en.wikipedia.org/wiki/Consistent_Overhead_Byte_Stuffing#Packet_framing_and_stuffing\n.. _control codes:\n https://en.wikipedia.org/wiki/C0_and_C1_control_codes#C0_controls\n.. _byte-stuffed:\n https://en.wikipedia.org/wiki/Byte_stuffing\n.. _file objects:\n https://docs.python.org/3/glossary.html#term-file-object\n\n\nInstallation\n------------\n\nInstall this module from PyPI_ using pip_::\n\n pip install dlestxetx\n\n.. _PyPI: https://pypi.org/project/dlestxetx\n.. _pip: https://pip.pypa.io/\n\n\nChanges\n-------\n\n1.0.1\n Add support for Python 3.5.\n\n1.0.0\n Initial release.\n\n\nContribute\n----------\n\n- Source code:\n https://github.com/Lx/python-dlestxetx\n\n\nSupport\n-------\n\n- Issue tracker:\n https://github.com/Lx/python-dlestxetx/issues\n\n\nLicense\n-------\n\nThis project is licensed under the `MIT License`_.\n\n.. _MIT License: https://opensource.org/licenses/MIT\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/Lx/python-dlestxetx", "keywords": "DLE STX ETX", "license": "", "maintainer": "", "maintainer_email": "", "name": "dlestxetx", "package_url": "https://pypi.org/project/dlestxetx/", "platform": "", "project_url": "https://pypi.org/project/dlestxetx/", "project_urls": { "Homepage": "https://github.com/Lx/python-dlestxetx" }, "release_url": "https://pypi.org/project/dlestxetx/1.0.1/", "requires_dist": null, "requires_python": "~=3.5", "summary": "DLE/STX/ETX packet encoder/decoder", "version": "1.0.1" }, "last_serial": 5376823, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "bcee3c148d00e3728ddfb162f1afe560", "sha256": "34ff952091e4e977695e84d31b4130c7112b9536a120efd7637fa8c7a0074e2f" }, "downloads": -1, "filename": "dlestxetx-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "bcee3c148d00e3728ddfb162f1afe560", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6, <4", "size": 4255, "upload_time": "2019-06-02T16:26:24", "url": "https://files.pythonhosted.org/packages/6d/a3/3758967da2e2e5d1828fadf60a5e8f23a65467378e93f79571ee35716c2f/dlestxetx-1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b535eefc3e85064ecb8162b96e7bd66f", "sha256": "57c329e0ff6482710d9ac63b3bdc8ed20d1101ee05d523363a7d8e8704ad103f" }, "downloads": -1, "filename": "dlestxetx-1.0.0.tar.gz", "has_sig": false, "md5_digest": "b535eefc3e85064ecb8162b96e7bd66f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6, <4", "size": 3605, "upload_time": "2019-06-02T16:26:26", "url": "https://files.pythonhosted.org/packages/15/02/1ecce2d4c7c5bdf895b39484a9608206e4147e20d8f56976e9814a6a70e7/dlestxetx-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "5d715c22308ccbfa6034d30866ee5dcd", "sha256": "711c8de64ded4442203acc6181bdb0362434274aa8bd4079f65fb5a493f35294" }, "downloads": -1, "filename": "dlestxetx-1.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "5d715c22308ccbfa6034d30866ee5dcd", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": "~=3.5", "size": 4446, "upload_time": "2019-06-09T04:49:37", "url": "https://files.pythonhosted.org/packages/52/11/a3faee518484baa41895fc6de0501d77c1a51993b0ffebccbf4eac6d45fb/dlestxetx-1.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f72e0d8dc7fad250af58d204d7421e15", "sha256": "d639fbcb94ac36320ffe833829c8eb9201a959124c849f9fff91c3cd44d04fd2" }, "downloads": -1, "filename": "dlestxetx-1.0.1.tar.gz", "has_sig": false, "md5_digest": "f72e0d8dc7fad250af58d204d7421e15", "packagetype": "sdist", "python_version": "source", "requires_python": "~=3.5", "size": 4153, "upload_time": "2019-06-09T04:49:39", "url": "https://files.pythonhosted.org/packages/25/be/04fce66ae06665567ba7cc831db31415c39258d935c687941495b223e51c/dlestxetx-1.0.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "5d715c22308ccbfa6034d30866ee5dcd", "sha256": "711c8de64ded4442203acc6181bdb0362434274aa8bd4079f65fb5a493f35294" }, "downloads": -1, "filename": "dlestxetx-1.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "5d715c22308ccbfa6034d30866ee5dcd", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": "~=3.5", "size": 4446, "upload_time": "2019-06-09T04:49:37", "url": "https://files.pythonhosted.org/packages/52/11/a3faee518484baa41895fc6de0501d77c1a51993b0ffebccbf4eac6d45fb/dlestxetx-1.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f72e0d8dc7fad250af58d204d7421e15", "sha256": "d639fbcb94ac36320ffe833829c8eb9201a959124c849f9fff91c3cd44d04fd2" }, "downloads": -1, "filename": "dlestxetx-1.0.1.tar.gz", "has_sig": false, "md5_digest": "f72e0d8dc7fad250af58d204d7421e15", "packagetype": "sdist", "python_version": "source", "requires_python": "~=3.5", "size": 4153, "upload_time": "2019-06-09T04:49:39", "url": "https://files.pythonhosted.org/packages/25/be/04fce66ae06665567ba7cc831db31415c39258d935c687941495b223e51c/dlestxetx-1.0.1.tar.gz" } ] }