{ "info": { "author": "Bakhtiyor Ruziev", "author_email": "bakhtiyor.ruziev@yandex.ru", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8" ], "description": "uRouter\n========\n.. image:: https://img.shields.io/travis/com/theruziev/urouter.svg?style=flat-square\n :target: https://travis-ci.com/theruziev/urouter\n.. image:: https://img.shields.io/codecov/c/github/theruziev/urouter.svg?style=flat-square\n :target: https://codecov.io/gh/theruziev/urouter\n\n\n\nInstallation\n------------\n\n.. code-block:: bash\n\n pip install urouter\n\nSupported web frameworks\n------------------------\n\n* `aiohttp `_\n* `Starlette `_\n\nQuickstart\n----------\n\n**Define handler in router**\n\n.. code-block:: python\n\n from aiohttp import web\n from urouter.exporters.aiohttp_exporter import AioHttpRouter\n app = web.Application()\n\n async def handler(request):\n return web.Response(text=\"Hello World\")\n\n router = AioHttpRouter(app)\n\n router.get(\"/home\", handler)\n\n # At this point aiohttp is ready to register all routes\n router.export()\n\n\n**Define global middleware for all routes**\n\n.. code-block:: python\n\n from aiohttp import web\n from urouter.exporters.aiohttp_exporter import AioHttpRouter\n app = web.Application()\n\n @web.middleware\n async def info_middleware(request, handler):\n # some operation before handle request\n response = await handler(request)\n return response\n\n async def handler(request):\n return web.Response(text=\"Hello World\")\n\n router = (AioHttpRouter(app)\n .use(info_middleware))\n\n # Register handler\n router.get(\"/home\", handler)\n\n # At this point aiohttp is ready to register all routes\n router.export()\n\n\n**Define inline middleware (run only for specific handler)**\n\n.. code-block:: python\n\n from aiohttp import web\n from urouter.exporters.aiohttp_exporter import AioHttpRouter\n app = web.Application()\n\n @web.middleware\n async def info_middleware(request, handler):\n # some operation before handle request\n response = await handler(request)\n return response\n\n async def handler(request):\n return web.Response(text=\"Hello World\")\n\n router = AioHttpRouter(app)\n\n # Middleware registered only for `/home` route\n router.include(info_middleware).get(\"/home\", handler)\n\n # At this point aiohttp is ready to register all routes\n router.export()\n\n**Define subrouter**\n\n.. code-block:: python\n\n from aiohttp import web\n from urouter.exporters.aiohttp_exporter import AioHttpRouter\n app = web.Application()\n\n @web.middleware\n async def info_middleware(request, handler):\n # some operation before handle request\n response = await handler(request)\n return response\n\n async def handler(request):\n return web.Response(text=\"Hello World\")\n\n async def sub_handler(request):\n return web.Response(text=\"Hello World\")\n\n\n router = AioHttpRouter(app)\n\n router.include(info_middleware).get(\"/home\", handler)\n\n # Create new router\n subrouter = router.make_router()\n subrouter.get(\"/hello\", sub_handler)\n\n # All registered router become starts with prefix `/sub/` \n # `/hello` becomes `/sub/hello`\n router.mount(\"/sub\", subrouter)\n\n # At this point aiohttp is ready to register all routes\n router.export()\n\n**Private/Public router**\n\n.. code-block:: python\n\n from aiohttp import web\n from urouter.exporters.aiohttp_exporter import AioHttpRouter\n app = web.Application()\n\n async def auth_middleware(request, handler):\n\n return web.HTTPForbidden()\n\n async def public(request):\n return web.Response(text=\"Hello World\")\n\n async def private(request):\n return web.Response(text=\"Private Zone\")\n\n router = AioHttpRouter(app)\n private_route = router.make_router().use(auth_middleware)\n\n # Adding public handler\n router.get(\"/home\", public)\n\n # Adding public handler\n private_route.get(\"/private\", private)\n\n # Mount private router to main router\n router.mount(\"/\", private_route)\n\n # At this point aiohttp is ready to register all routes\n router.export()\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/bruziev/urouter", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "urouter", "package_url": "https://pypi.org/project/urouter/", "platform": "", "project_url": "https://pypi.org/project/urouter/", "project_urls": { "Homepage": "https://github.com/bruziev/urouter" }, "release_url": "https://pypi.org/project/urouter/0.1.2/", "requires_dist": null, "requires_python": "", "summary": "Router Configurator for you project.", "version": "0.1.2", "yanked": false, "yanked_reason": null }, "last_serial": 6115878, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "6e35645d829172efc30d6b36a95bfa29", "sha256": "7f688a2d7c5a33fca54d19096932ee56d8e9be0308705c6a2b31a010139affeb" }, "downloads": -1, "filename": "urouter-0.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6e35645d829172efc30d6b36a95bfa29", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7652, "upload_time": "2019-02-09T18:04:39", "upload_time_iso_8601": "2019-02-09T18:04:39.777868Z", "url": "https://files.pythonhosted.org/packages/93/8e/80306082c4065c7fbace4765ac0336095ebac6e92d79273ed8e8f8f0350d/urouter-0.0.1-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "c425e62059cbe8089395be56813fa5a3", "sha256": "da9f7b8516c1aebd56c866f033b1bc772dc120f687f56b4ee54613a1b6a8695e" }, "downloads": -1, "filename": "urouter-0.0.1.tar.gz", "has_sig": false, "md5_digest": "c425e62059cbe8089395be56813fa5a3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5024, "upload_time": "2019-02-09T18:04:41", "upload_time_iso_8601": "2019-02-09T18:04:41.434797Z", "url": "https://files.pythonhosted.org/packages/71/d3/968b85c7ddc6db1d98d77dc9ad156abe289adb40d722c7d5165c92b3f7d9/urouter-0.0.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "f60cb6e92b486cff20a3a33b4939eac7", "sha256": "b5c075217c9ad1abd548085561cae4a9155d3907f8d2cf5b7f5397b3f59441d8" }, "downloads": -1, "filename": "urouter-0.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f60cb6e92b486cff20a3a33b4939eac7", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6144, "upload_time": "2019-10-22T16:34:41", "upload_time_iso_8601": "2019-10-22T16:34:41.674152Z", "url": "https://files.pythonhosted.org/packages/f5/81/56b3da577395bd28d5c241626b774aee8a82f3bfbfe336522710996bbbf1/urouter-0.1.1-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "42d6d2f391d6705d1b8fa74d65b58814", "sha256": "7c909174f4c5c9c23c71ea807f5737c8d187076d371d435a75b3dfcf4aae7689" }, "downloads": -1, "filename": "urouter-0.1.1.tar.gz", "has_sig": false, "md5_digest": "42d6d2f391d6705d1b8fa74d65b58814", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5866, "upload_time": "2019-10-22T16:34:43", "upload_time_iso_8601": "2019-10-22T16:34:43.620102Z", "url": "https://files.pythonhosted.org/packages/ae/aa/6a0c4d2e9fafab246ef19fa0dd55329a37dca104cfdf1a25ccfd26073cc7/urouter-0.1.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "1042f197f465bd37481c1da09a39b489", "sha256": "b0e48b2dcafe4f3d92c368949a17be7ec56fa251c7f6f15f191346c241559eab" }, "downloads": -1, "filename": "urouter-0.1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1042f197f465bd37481c1da09a39b489", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6161, "upload_time": "2019-11-11T09:41:22", "upload_time_iso_8601": "2019-11-11T09:41:22.833750Z", "url": "https://files.pythonhosted.org/packages/8e/f1/3fe0e3787b383cd1e8ee0403bfeea74808e0885d26c7494db0d508e1ab2d/urouter-0.1.2-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "5fa962bccabc962fc0278a9d5c693af0", "sha256": "5cd9636ba444e996ab1749011ab1a0e65f3b607adeab39bc90af1fec0232dac7" }, "downloads": -1, "filename": "urouter-0.1.2.tar.gz", "has_sig": false, "md5_digest": "5fa962bccabc962fc0278a9d5c693af0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4209, "upload_time": "2019-11-11T09:41:24", "upload_time_iso_8601": "2019-11-11T09:41:24.468608Z", "url": "https://files.pythonhosted.org/packages/75/2c/9157582c079dd950972bf47d033aa092f833e98c707ef21ea4d3e688a136/urouter-0.1.2.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "1042f197f465bd37481c1da09a39b489", "sha256": "b0e48b2dcafe4f3d92c368949a17be7ec56fa251c7f6f15f191346c241559eab" }, "downloads": -1, "filename": "urouter-0.1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1042f197f465bd37481c1da09a39b489", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6161, "upload_time": "2019-11-11T09:41:22", "upload_time_iso_8601": "2019-11-11T09:41:22.833750Z", "url": "https://files.pythonhosted.org/packages/8e/f1/3fe0e3787b383cd1e8ee0403bfeea74808e0885d26c7494db0d508e1ab2d/urouter-0.1.2-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "5fa962bccabc962fc0278a9d5c693af0", "sha256": "5cd9636ba444e996ab1749011ab1a0e65f3b607adeab39bc90af1fec0232dac7" }, "downloads": -1, "filename": "urouter-0.1.2.tar.gz", "has_sig": false, "md5_digest": "5fa962bccabc962fc0278a9d5c693af0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4209, "upload_time": "2019-11-11T09:41:24", "upload_time_iso_8601": "2019-11-11T09:41:24.468608Z", "url": "https://files.pythonhosted.org/packages/75/2c/9157582c079dd950972bf47d033aa092f833e98c707ef21ea4d3e688a136/urouter-0.1.2.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }