{
"info": {
"author": "Antoine Catton",
"author_email": "devel@antoine.catton.fr",
"bugtrack_url": null,
"classifiers": [
"Intended Audience :: Developers",
"Intended Audience :: Telecommunications Industry",
"License :: OSI Approved :: ISC License (ISCL)",
"Operating System :: OS Independent",
"Programming Language :: Python :: 3.5"
],
"description": "Ohne I/O\n========\n\nUtility library to write network protocol parser, `sans I/O `_.\n\n`Ohne `_ I/O (without I/O in German) is a library using\n`asyncio `_ corouting programming style.\n\n``ohneio`` allows you to write protocol parsers the way you would write an asyncio protocol:\n\n.. code-block:: python\n\n >>> import base64\n >>> import ohneio\n >>>\n >>> def wait_for(s):\n ... while True:\n ... data = yield from ohneio.peek()\n ... pos = data.find(s)\n ... if pos >= 0:\n ... return pos\n ... yield from ohneio.wait()\n ...\n >>> def read_until(s):\n ... pos = yield from wait_for(s)\n ... data = yield from ohneio.read(pos)\n ... return data\n ...\n >>> @ohneio.protocol\n ... def echo_base64(separator):\n ... while True:\n ... segment = yield from read_until(separator)\n ... yield from ohneio.read(len(separator))\n ... yield from ohneio.write(base64.b64encode(segment) + separator)\n ...\n >>> connection = echo_base64(b'\\r\\n')\n >>> connection.send(b'hello')\n >>> connection.read()\n b''\n >>> connection.send(b'\\r\\nworld\\r\\n')\n >>> connection.read()\n b'aGVsbG8=\\r\\nd29ybGQ=\\r\\n'\n\n\nThe example above also shows how ``ohneio`` allows you to combine primitives\ninto bigger parsing functions (like ``wait_for`` and ``read_until``).",
"description_content_type": null,
"docs_url": null,
"download_url": "UNKNOWN",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "https://github.com/acatton/ohneio",
"keywords": null,
"license": "ISC",
"maintainer": null,
"maintainer_email": null,
"name": "ohneio",
"package_url": "https://pypi.org/project/ohneio/",
"platform": "UNKNOWN",
"project_url": "https://pypi.org/project/ohneio/",
"project_urls": {
"Download": "UNKNOWN",
"Homepage": "https://github.com/acatton/ohneio"
},
"release_url": "https://pypi.org/project/ohneio/0.8.1/",
"requires_dist": null,
"requires_python": null,
"summary": "Utility to write network protocol parser without any I/O",
"version": "0.8.1"
},
"last_serial": 2293167,
"releases": {
"0.8": [
{
"comment_text": "",
"digests": {
"md5": "299400d24729ccb5a045903706854aa4",
"sha256": "93f8a49b676a485d0a504bb767aa65decb1dd2e99c8523270a455c4975015f2a"
},
"downloads": -1,
"filename": "ohneio-0.8.tar.gz",
"has_sig": false,
"md5_digest": "299400d24729ccb5a045903706854aa4",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 3477,
"upload_time": "2016-08-19T21:03:55",
"url": "https://files.pythonhosted.org/packages/72/be/3374889e83911f9d36a82c3d6e452696530e30d26772dda0cfc3cc2c6ae2/ohneio-0.8.tar.gz"
}
],
"0.8.1": [
{
"comment_text": "",
"digests": {
"md5": "1129414f3990e7477090fcc88517cc1a",
"sha256": "4d09754ddc90a7785e1c3457b7b8a5654badd7e1611dc0f42ee5a70ca5b4fdc7"
},
"downloads": -1,
"filename": "ohneio-0.8.1.tar.gz",
"has_sig": false,
"md5_digest": "1129414f3990e7477090fcc88517cc1a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 3472,
"upload_time": "2016-08-20T21:48:17",
"url": "https://files.pythonhosted.org/packages/78/4f/bf2d82f575ac8122e86d55c2a78afa23e442f56d15e78b3edb6134732390/ohneio-0.8.1.tar.gz"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "1129414f3990e7477090fcc88517cc1a",
"sha256": "4d09754ddc90a7785e1c3457b7b8a5654badd7e1611dc0f42ee5a70ca5b4fdc7"
},
"downloads": -1,
"filename": "ohneio-0.8.1.tar.gz",
"has_sig": false,
"md5_digest": "1129414f3990e7477090fcc88517cc1a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 3472,
"upload_time": "2016-08-20T21:48:17",
"url": "https://files.pythonhosted.org/packages/78/4f/bf2d82f575ac8122e86d55c2a78afa23e442f56d15e78b3edb6134732390/ohneio-0.8.1.tar.gz"
}
]
}