{ "info": { "author": "zeromake", "author_email": "a390720046@gmail.com", "bugtrack_url": null, "classifiers": [ "Environment :: Web Environment", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Software Development :: Libraries :: Application Frameworks", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "aiko\n======\n\n.. image:: https://www.travis-ci.org/zeromake/aiko.svg?branch=master\n :target: https://www.travis-ci.org/zeromake/aiko\n :alt: travis\n\n.. image:: https://codecov.io/gh/zeromake/aiko/branch/master/graph/badge.svg\n :target: https://codecov.io/gh/zeromake/aiko\n :alt: codecov\n\n.. image:: https://badge.fury.io/py/aiko.svg\n :target: https://badge.fury.io/py/aiko\n :alt: Latest Version\n\n.. image:: https://img.shields.io/pypi/l/aiko.svg\n :target: https://github.com/zeromake/aiko/blob/master/LICENSE\n :alt: PyPI - License\n\n.. image:: https://img.shields.io/pypi/format/aiko.svg\n :target: https://pypi.org/project/aiko/#files\n :alt: PyPI - Format\n\n.. image:: https://img.shields.io/pypi/pyversions/aiko.svg\n :alt: PyPI - PyVersions\n\naiko is a base asyncio's lightweight web application framework.\nIt is designed to make `koa`_ api.\n\nInstalling\n----------\n\nInstall by code\n\n.. code-block:: text\n\n $ git clone https://github.com/zeromake/aiko\n $ cd aiko\n $ python setup.py install\n\nA Simple Example\n----------------\n\n.. code-block:: python\n\n import asyncio\n from aiko import App\n\n loop = asyncio.get_event_loop()\n app = App(loop)\n\n def hello(ctx, next_call):\n return \"Hello, World!\"\n\n app.use(hello)\n\n if __name__ == \"__main__\":\n app.run(host=\"0.0.0.0\", port=5000)\n\n.. code-block:: text\n\n $ curl http://127.0.0.1:5000\n Hello, World!\n\nLinks\n-----\n\n.. _koa: https://github.com/koajs/koa\n\nTodo\n----\n\n- [ ] request api like koa\n - [ ] method\n - [ ] `accepts`\n - [ ] `acceptsEncodings` -> `accepts_encodings`\n - [ ] `acceptsCharsets` -> `accepts_charsets`\n - [ ] `acceptsLanguages` -> `accepts_languages`\n - [ ] `is`\n - [x] `get`\n - [ ] getter, setter\n - [x] `header`\n - [x] getter\n - [ ] setter\n - [x] `headers`\n - [x] getter\n - [ ] setter\n - [x] `url`\n - [x] `origin`\n - [x] `href`\n - [x] `method`\n - [x] `path`\n - [x] `query`\n - [x] `querystring`\n - [x] `search`\n - [ ] getter\n - [x] `host`\n - [x] `hostname`\n - [ ] `URL`\n - [x] `fresh`\n - [x] `stale`\n - [x] `idempotent`\n - [x] `socket`\n - [x] `charset`\n - [x] `length`\n - [x] `protocol`\n - [x] `secure`\n - [x] `ips`\n - [ ] `subdomains`\n - [x] `type`\n - [x] `originalUrl` -> `original_url`\n - [x] `ip`\n- [ ] response api like koa\n- [x] proxy class property attr and method\n- [x] like `fresh `_ method\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/zeromake/aiko", "keywords": "", "license": "MIT", "maintainer": "zeromake", "maintainer_email": "a390720046@gmail.com", "name": "aiko", "package_url": "https://pypi.org/project/aiko/", "platform": "any", "project_url": "https://pypi.org/project/aiko/", "project_urls": { "Code": "https://github.com/zeromake/aiko", "Homepage": "https://github.com/zeromake/aiko", "Issue tracker": "https://github.com/zeromake/aiko/issues" }, "release_url": "https://pypi.org/project/aiko/0.2.3/", "requires_dist": [ "httptools (>=0.0.11)" ], "requires_python": ">=3.5", "summary": "", "version": "0.2.3" }, "last_serial": 3849731, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "261cd5ebf7af5fb21c93ddce9a700ee7", "sha256": "fd1a2824fdcc1654b4c141ddcdfa251fecaf00b652e08ccf4c1add16a6758ec9" }, "downloads": -1, "filename": "aiko-0.1.0-py3.6.egg", "has_sig": false, "md5_digest": "261cd5ebf7af5fb21c93ddce9a700ee7", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": ">=3.5", "size": 18234, "upload_time": "2018-05-03T01:17:53", "url": "https://files.pythonhosted.org/packages/80/c8/395475f47cce120138a0f225da96b9f73422661eda0e7e6517c68a04da33/aiko-0.1.0-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "f1eddf5122f6f9268cb4fbe2b1bb694d", "sha256": "133c65d12401972417e12c550c4f372d8c7973c3ca4beaee384cefacbaff8367" }, "downloads": -1, "filename": "aiko-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "f1eddf5122f6f9268cb4fbe2b1bb694d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 18688, "upload_time": "2018-05-03T01:16:54", "url": "https://files.pythonhosted.org/packages/4a/97/1f61e768ff4a9676331604f0b09bdc1ec9e3b49a15e9072c13880bc778b9/aiko-0.1.0-py3-none-any.whl" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "153b1be1fa872e4b6d84e22db23f3ca5", "sha256": "cd2e23f85c2d4e917d138d62e80712b9dde191d30e86554a7e722b828900de0c" }, "downloads": -1, "filename": "aiko-0.2.0-py3.6.egg", "has_sig": false, "md5_digest": "153b1be1fa872e4b6d84e22db23f3ca5", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": ">=3.5", "size": 19387, "upload_time": "2018-05-03T06:20:27", "url": "https://files.pythonhosted.org/packages/cc/b0/b941e5d070c353f57422765a03dabe8852e82ef9d5780aa9b175eb8c3003/aiko-0.2.0-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "37b933688a0b3abfae208ec82cdcf944", "sha256": "8d50dc957eca5b43dbc979527626ec16e6dd447f533dfed167119ff0d5b5aa0c" }, "downloads": -1, "filename": "aiko-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "37b933688a0b3abfae208ec82cdcf944", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 19987, "upload_time": "2018-05-03T06:20:24", "url": "https://files.pythonhosted.org/packages/2b/48/ef30a8f873cb59791b1280e21b57b9725162907d77a7e36cd93089c15191/aiko-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "595818e14fac7acc56d02d65f031eb6e", "sha256": "9a0be276e494a50714c5aa98239da07de773ea53795c1944cbcc2b8c05cd7778" }, "downloads": -1, "filename": "aiko-0.2.0.tar.gz", "has_sig": false, "md5_digest": "595818e14fac7acc56d02d65f031eb6e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 8709, "upload_time": "2018-05-03T06:20:30", "url": "https://files.pythonhosted.org/packages/e4/1d/ccd493964ec0e1a046b0e570c6845fc96b39ca1efb311484f3f0b24b04cd/aiko-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "2ee75d4f5dadd293be90fdfd829de890", "sha256": "25f58aebf4d3e811af0079d52dc8aa561b8ccf05896034a9eeae91de9cc0e2ed" }, "downloads": -1, "filename": "aiko-0.2.1-py3.6.egg", "has_sig": false, "md5_digest": "2ee75d4f5dadd293be90fdfd829de890", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": ">=3.5", "size": 19452, "upload_time": "2018-05-03T06:57:47", "url": "https://files.pythonhosted.org/packages/7e/15/fc078b595f154342e8330645a63f9310699fd65a15ed4c07cb026c789fec/aiko-0.2.1-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "323a01d80be6081a54ec48766ad19a43", "sha256": "7ab4fbea513a9f032a7270137abda989c511411ff40f7f7529227cf9578eb8c7" }, "downloads": -1, "filename": "aiko-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "323a01d80be6081a54ec48766ad19a43", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 20053, "upload_time": "2018-05-03T06:57:45", "url": "https://files.pythonhosted.org/packages/5b/9d/fd3ab1e7a7cb57685a5aa0eec324045046571bfe0bf1e57b7d553dc09a76/aiko-0.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3096200c493ad5c157ba3a34b7358c13", "sha256": "94c68b44d5ed2d84cd7d9d26756aff5625b73e9c804f378a897e1d9c727831b5" }, "downloads": -1, "filename": "aiko-0.2.1.tar.gz", "has_sig": false, "md5_digest": "3096200c493ad5c157ba3a34b7358c13", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 8758, "upload_time": "2018-05-03T06:57:49", "url": "https://files.pythonhosted.org/packages/30/6e/0c67a986e559311d036caa1d0c5133f7754ed7a88b545c1cef3060c29289/aiko-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "d2d966339bff29c7b93b49f5879d0241", "sha256": "a946ee8721abf8a05fe5359e627970b9041e56af8b19aa10f75c5a0db3b74e6d" }, "downloads": -1, "filename": "aiko-0.2.2-py3.6.egg", "has_sig": false, "md5_digest": "d2d966339bff29c7b93b49f5879d0241", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": ">=3.5", "size": 23793, "upload_time": "2018-05-08T14:04:15", "url": "https://files.pythonhosted.org/packages/9b/1a/87541a18adbf6d435ef50db5788d2f991152fb8ef13391f492cd53dd1a56/aiko-0.2.2-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "2c9c6f5aff968f62169630acb2890210", "sha256": "908fe743ae62ae0e89afeccdf034909c4cb4c6af4fba80648e50c2b190f7c209" }, "downloads": -1, "filename": "aiko-0.2.2-py3-none-any.whl", "has_sig": false, "md5_digest": "2c9c6f5aff968f62169630acb2890210", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 24461, "upload_time": "2018-05-08T14:04:13", "url": "https://files.pythonhosted.org/packages/e0/0e/0fa4fd62fad6998662440f40e2b7f396e3e3a357f2f0b405288911c7e97f/aiko-0.2.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c19efbd52c78a32b5ee706fc24dd028d", "sha256": "b4b885ed3323e09bc932b8ee7606ce1953c9fb423a25bf6a54549daaa80ba119" }, "downloads": -1, "filename": "aiko-0.2.2.tar.gz", "has_sig": false, "md5_digest": "c19efbd52c78a32b5ee706fc24dd028d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 12444, "upload_time": "2018-05-08T14:04:16", "url": "https://files.pythonhosted.org/packages/87/1a/7f9bb2dfdadd5a8111aa329e6cd715e23335acf0f1058196a4a556fb89df/aiko-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "87e22b7bd901f89e7b769b5b68780ddf", "sha256": "8edd0626c7eeaf818917df7ffdb7c9c6f9421fca2a3f35f83adc496a83133319" }, "downloads": -1, "filename": "aiko-0.2.3-py3.6.egg", "has_sig": false, "md5_digest": "87e22b7bd901f89e7b769b5b68780ddf", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": ">=3.5", "size": 27169, "upload_time": "2018-05-10T07:46:59", "url": "https://files.pythonhosted.org/packages/85/95/bddf29531d8dc9f253f757eac564644083b13efc250b7d14fbe88ad78d73/aiko-0.2.3-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "542ac2532138bd0c4f672bb65d5f9cec", "sha256": "7292c8e3d7be43597d11568888f8c43051ef02ab5fb8bf73f5e0c90c7a366ed4" }, "downloads": -1, "filename": "aiko-0.2.3-py3-none-any.whl", "has_sig": false, "md5_digest": "542ac2532138bd0c4f672bb65d5f9cec", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 27825, "upload_time": "2018-05-10T07:46:57", "url": "https://files.pythonhosted.org/packages/5e/5c/ecbda4f451745b2ab4f141b4ce753adaa8144d2db23dde9962e7ea6f4932/aiko-0.2.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "88f5201edc2a41ff7f4dc2f98aec5938", "sha256": "09854d6004cc29dbb14c73309bf71688673f637a350033e7409e826bb3daf7ae" }, "downloads": -1, "filename": "aiko-0.2.3.tar.gz", "has_sig": false, "md5_digest": "88f5201edc2a41ff7f4dc2f98aec5938", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 15595, "upload_time": "2018-05-10T07:47:00", "url": "https://files.pythonhosted.org/packages/f3/33/9c40e4ed08c9b5fcc05b8bac40f23478a97f97f2f74910573d9e87231b17/aiko-0.2.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "87e22b7bd901f89e7b769b5b68780ddf", "sha256": "8edd0626c7eeaf818917df7ffdb7c9c6f9421fca2a3f35f83adc496a83133319" }, "downloads": -1, "filename": "aiko-0.2.3-py3.6.egg", "has_sig": false, "md5_digest": "87e22b7bd901f89e7b769b5b68780ddf", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": ">=3.5", "size": 27169, "upload_time": "2018-05-10T07:46:59", "url": "https://files.pythonhosted.org/packages/85/95/bddf29531d8dc9f253f757eac564644083b13efc250b7d14fbe88ad78d73/aiko-0.2.3-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "542ac2532138bd0c4f672bb65d5f9cec", "sha256": "7292c8e3d7be43597d11568888f8c43051ef02ab5fb8bf73f5e0c90c7a366ed4" }, "downloads": -1, "filename": "aiko-0.2.3-py3-none-any.whl", "has_sig": false, "md5_digest": "542ac2532138bd0c4f672bb65d5f9cec", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 27825, "upload_time": "2018-05-10T07:46:57", "url": "https://files.pythonhosted.org/packages/5e/5c/ecbda4f451745b2ab4f141b4ce753adaa8144d2db23dde9962e7ea6f4932/aiko-0.2.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "88f5201edc2a41ff7f4dc2f98aec5938", "sha256": "09854d6004cc29dbb14c73309bf71688673f637a350033e7409e826bb3daf7ae" }, "downloads": -1, "filename": "aiko-0.2.3.tar.gz", "has_sig": false, "md5_digest": "88f5201edc2a41ff7f4dc2f98aec5938", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 15595, "upload_time": "2018-05-10T07:47:00", "url": "https://files.pythonhosted.org/packages/f3/33/9c40e4ed08c9b5fcc05b8bac40f23478a97f97f2f74910573d9e87231b17/aiko-0.2.3.tar.gz" } ] }