Name | http-router JSON |
Version |
4.1.2
JSON |
| download |
home_page | |
Summary | A simple router system for HTTP applications |
upload_time | 2024-02-06 14:59:17 |
maintainer | |
docs_url | None |
author | |
requires_python | >=3.8 |
license | MIT License |
keywords |
http
router
web
framework
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
HTTP Router
###########
.. _description:
**http-router** -- A simple router for HTTP applications
The library is not a HTTP framework. It's an utilite to build the frameworks.
The main goal of the library to bind targets to http routes and match them.
.. _badges:
.. image:: https://github.com/klen/http-router/workflows/tests/badge.svg
:target: https://github.com/klen/http-router/actions
:alt: Tests Status
.. image:: https://img.shields.io/pypi/v/http-router
:target: https://pypi.org/project/http-router/
:alt: PYPI Version
.. image:: https://img.shields.io/pypi/pyversions/http-router
:target: https://pypi.org/project/http-router/
:alt: Python Versions
.. _contents:
.. contents::
.. _requirements:
Requirements
=============
- python 3.8, 3.9, 3.10, 3.11, 3.12, pypy3
.. _installation:
Installation
=============
**http-router** should be installed using pip: ::
pip install http-router
Usage
=====
Create a router:
.. code:: python
from http_router import Router
# Initialize the router
router = Router(trim_last_slash=True)
Define routes:
.. code:: python
@router.route('/simple')
def simple():
return 'result from the fn'
Call the router with HTTP path and optionally method to get a match result.
.. code:: python
match = router('/simple', method='GET')
assert match, 'HTTP path is ok'
assert match.target is simple
The router supports regex objects too:
.. code:: python
import re
@router.route(re.compile(r'/regexp/\w{3}-\d{2}/?'))
def regex():
return 'result from the fn'
But the lib has a simplier interface for the dynamic routes:
.. code:: python
@router.route('/users/{username}')
def users():
return 'result from the fn'
By default this will capture characters up to the end of the path or the next
``/``.
Optionally, you can use a converter to specify the type of the argument like
``{variable_name:converter}``.
Converter types:
========= ====================================
``str`` (default) accepts any text without a slash
``int`` accepts positive integers
``float`` accepts positive floating point values
``path`` like string but also accepts slashes
``uuid`` accepts UUID strings
========= ====================================
Convertors are used by prefixing them with a colon, like so:
.. code:: python
@router.route('/orders/{order_id:int}')
def orders():
return 'result from the fn'
Any unknown convertor will be parsed as a regex:
.. code:: python
@router.route('/orders/{order_id:\d{3}}')
def orders():
return 'result from the fn'
Multiple paths are supported as well:
.. code:: python
@router.route('/', '/home')
def index():
return 'index'
Handling HTTP methods:
.. code:: python
@router.route('/only-post', methods=['POST'])
def only_post():
return 'only-post'
Submounting routes:
.. code:: python
subrouter = Router()
@subrouter.route('/items/{item}')
def items():
pass
router = Router()
router.route('/api')(subrouter)
match = router('/api/items/12', method='GET')
assert match, 'HTTP path is ok'
assert match.target is items
assert match.params == {"item": "12"}
.. _bugtracker:
Bug tracker
===========
If you have any suggestions, bug reports or
annoyances please report them to the issue tracker
at https://github.com/klen/http-router/issues
.. _contributing:
Contributing
============
Development of the project happens at: https://github.com/klen/http-router
.. _license:
License
========
Licensed under a `MIT license`_.
.. _links:
.. _klen: https://github.com/klen
.. _MIT license: http://opensource.org/licenses/MIT
Raw data
{
"_id": null,
"home_page": "",
"name": "http-router",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": "",
"keywords": "http,router,web,framework",
"author": "",
"author_email": "Kirill Klenov <horneds@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/97/74/0d93d9140004ed3898e9b4db46fc57c16841b7c65197f275bbe66c0e5080/http-router-4.1.2.tar.gz",
"platform": null,
"description": "HTTP Router\n###########\n\n.. _description:\n\n**http-router** -- A simple router for HTTP applications\n\nThe library is not a HTTP framework. It's an utilite to build the frameworks.\nThe main goal of the library to bind targets to http routes and match them.\n\n.. _badges:\n\n.. image:: https://github.com/klen/http-router/workflows/tests/badge.svg\n :target: https://github.com/klen/http-router/actions\n :alt: Tests Status\n\n.. image:: https://img.shields.io/pypi/v/http-router\n :target: https://pypi.org/project/http-router/\n :alt: PYPI Version\n\n.. image:: https://img.shields.io/pypi/pyversions/http-router\n :target: https://pypi.org/project/http-router/\n :alt: Python Versions\n\n.. _contents:\n\n.. contents::\n\n\n.. _requirements:\n\nRequirements\n=============\n\n- python 3.8, 3.9, 3.10, 3.11, 3.12, pypy3\n\n\n.. _installation:\n\nInstallation\n=============\n\n**http-router** should be installed using pip: ::\n\n pip install http-router\n\n\nUsage\n=====\n\nCreate a router:\n\n.. code:: python\n\n from http_router import Router\n\n\n # Initialize the router\n router = Router(trim_last_slash=True)\n\n\nDefine routes:\n\n.. code:: python\n\n @router.route('/simple')\n def simple():\n return 'result from the fn'\n\nCall the router with HTTP path and optionally method to get a match result.\n\n.. code:: python\n\n match = router('/simple', method='GET')\n assert match, 'HTTP path is ok'\n assert match.target is simple\n\nThe router supports regex objects too:\n\n.. code:: python\n\n import re\n\n @router.route(re.compile(r'/regexp/\\w{3}-\\d{2}/?'))\n def regex():\n return 'result from the fn'\n\nBut the lib has a simplier interface for the dynamic routes:\n\n.. code:: python\n\n @router.route('/users/{username}')\n def users():\n return 'result from the fn'\n\nBy default this will capture characters up to the end of the path or the next\n``/``.\n\nOptionally, you can use a converter to specify the type of the argument like\n``{variable_name:converter}``.\n\nConverter types:\n\n========= ====================================\n``str`` (default) accepts any text without a slash\n``int`` accepts positive integers\n``float`` accepts positive floating point values\n``path`` like string but also accepts slashes\n``uuid`` accepts UUID strings\n========= ====================================\n\nConvertors are used by prefixing them with a colon, like so:\n\n.. code:: python\n\n @router.route('/orders/{order_id:int}')\n def orders():\n return 'result from the fn'\n\nAny unknown convertor will be parsed as a regex:\n\n.. code:: python\n\n @router.route('/orders/{order_id:\\d{3}}')\n def orders():\n return 'result from the fn'\n\n\nMultiple paths are supported as well:\n\n.. code:: python\n\n @router.route('/', '/home')\n def index():\n return 'index'\n\n\nHandling HTTP methods:\n\n.. code:: python\n\n @router.route('/only-post', methods=['POST'])\n def only_post():\n return 'only-post'\n\n\nSubmounting routes:\n\n.. code:: python\n\n subrouter = Router()\n\n @subrouter.route('/items/{item}')\n def items():\n pass\n\n router = Router()\n router.route('/api')(subrouter)\n\n\n match = router('/api/items/12', method='GET')\n assert match, 'HTTP path is ok'\n assert match.target is items\n assert match.params == {\"item\": \"12\"}\n\n\n.. _bugtracker:\n\nBug tracker\n===========\n\nIf you have any suggestions, bug reports or\nannoyances please report them to the issue tracker\nat https://github.com/klen/http-router/issues\n\n\n.. _contributing:\n\nContributing\n============\n\nDevelopment of the project happens at: https://github.com/klen/http-router\n\n\n.. _license:\n\nLicense\n========\n\nLicensed under a `MIT license`_.\n\n\n.. _links:\n\n.. _klen: https://github.com/klen\n.. _MIT license: http://opensource.org/licenses/MIT\n",
"bugtrack_url": null,
"license": "MIT License",
"summary": "A simple router system for HTTP applications",
"version": "4.1.2",
"project_urls": {
"documentation": "https://github.com/klen/http-router",
"homepage": "https://github.com/klen/http-router",
"repository": "https://github.com/klen/http-router"
},
"split_keywords": [
"http",
"router",
"web",
"framework"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "1cc585c7bbf1e62e1b42b4b3fa1fd5f929eb6e2ab583dfcd40ab25107ab82abf",
"md5": "a7593630be35525af850767695188f6c",
"sha256": "89334f2781aeb7c8066ba4baf1187c990b684584af89caad480ba371d7d9e69c"
},
"downloads": -1,
"filename": "http_router-4.1.2-cp310-cp310-macosx_10_9_universal2.whl",
"has_sig": false,
"md5_digest": "a7593630be35525af850767695188f6c",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.8",
"size": 415508,
"upload_time": "2024-02-06T14:58:18",
"upload_time_iso_8601": "2024-02-06T14:58:18.482678Z",
"url": "https://files.pythonhosted.org/packages/1c/c5/85c7bbf1e62e1b42b4b3fa1fd5f929eb6e2ab583dfcd40ab25107ab82abf/http_router-4.1.2-cp310-cp310-macosx_10_9_universal2.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "823ded2b6a4f35b2e74a56ee1106dec63188c2700983f2826ec72eb688a30cab",
"md5": "39b4ba7b1ce8ab207ae07d4057829cfe",
"sha256": "84dd3e43356f732771621c93c9ad7513f1be73a9d1144bfc58df7e82a83f4436"
},
"downloads": -1,
"filename": "http_router-4.1.2-cp310-cp310-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "39b4ba7b1ce8ab207ae07d4057829cfe",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.8",
"size": 310363,
"upload_time": "2024-02-06T14:58:20",
"upload_time_iso_8601": "2024-02-06T14:58:20.286848Z",
"url": "https://files.pythonhosted.org/packages/82/3d/ed2b6a4f35b2e74a56ee1106dec63188c2700983f2826ec72eb688a30cab/http_router-4.1.2-cp310-cp310-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "f77f55b481193572673d85daa79223f01d09c53f8ef25531d588a7793a0c022a",
"md5": "3848001fc64f6613184bee214f0e4943",
"sha256": "d6f2f7a023ffea56543e29694f547357a2b9b33c77b08c355fcdcf91b486d0be"
},
"downloads": -1,
"filename": "http_router-4.1.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"has_sig": false,
"md5_digest": "3848001fc64f6613184bee214f0e4943",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.8",
"size": 835594,
"upload_time": "2024-02-06T14:58:21",
"upload_time_iso_8601": "2024-02-06T14:58:21.621701Z",
"url": "https://files.pythonhosted.org/packages/f7/7f/55b481193572673d85daa79223f01d09c53f8ef25531d588a7793a0c022a/http_router-4.1.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "8f7f1867b39418a6d1b5d203a13bba47792b62962670aa1e9260ad26845beafa",
"md5": "1358131a25b1d43f4f4536e7f04684d6",
"sha256": "512ae57ea9b763c157ca54f9e2b159d88eca4d1075df7a18cb4a645eb05d34e7"
},
"downloads": -1,
"filename": "http_router-4.1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "1358131a25b1d43f4f4536e7f04684d6",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.8",
"size": 843834,
"upload_time": "2024-02-06T14:58:23",
"upload_time_iso_8601": "2024-02-06T14:58:23.268521Z",
"url": "https://files.pythonhosted.org/packages/8f/7f/1867b39418a6d1b5d203a13bba47792b62962670aa1e9260ad26845beafa/http_router-4.1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "5c069b055639fbb320a32e8325489b5bb74247d77c51ecf6dc01f0982f5dadf7",
"md5": "cff998d64cfe1755358b8f6a103f94e2",
"sha256": "8286e0cb64f5c36dcb2e792f45816f811e2ce402ccb48c62b06ef9e7988674e0"
},
"downloads": -1,
"filename": "http_router-4.1.2-cp310-cp310-musllinux_1_1_aarch64.whl",
"has_sig": false,
"md5_digest": "cff998d64cfe1755358b8f6a103f94e2",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.8",
"size": 841633,
"upload_time": "2024-02-06T14:58:24",
"upload_time_iso_8601": "2024-02-06T14:58:24.715920Z",
"url": "https://files.pythonhosted.org/packages/5c/06/9b055639fbb320a32e8325489b5bb74247d77c51ecf6dc01f0982f5dadf7/http_router-4.1.2-cp310-cp310-musllinux_1_1_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "b02b902eba875ba3b951349b29d1f555941346657109a4276ba704a356cd06d6",
"md5": "7ee7bced931c8a7c66f7a634bfc4bb79",
"sha256": "40060d329813d356784b7437d47b03c5d42718f91216a7df310325096eef8bbf"
},
"downloads": -1,
"filename": "http_router-4.1.2-cp310-cp310-musllinux_1_1_x86_64.whl",
"has_sig": false,
"md5_digest": "7ee7bced931c8a7c66f7a634bfc4bb79",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.8",
"size": 853230,
"upload_time": "2024-02-06T14:58:26",
"upload_time_iso_8601": "2024-02-06T14:58:26.330696Z",
"url": "https://files.pythonhosted.org/packages/b0/2b/902eba875ba3b951349b29d1f555941346657109a4276ba704a356cd06d6/http_router-4.1.2-cp310-cp310-musllinux_1_1_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "75911194d5ecda349d30cafa169a0531f3add48edb25f655fc523e14b0c3ab61",
"md5": "79d395b4809b524a7e095aa0a32213f0",
"sha256": "af00ef3edb67956724cd3daa1c6f040e73cfff5f0afe46d7eb135d086c6b57fb"
},
"downloads": -1,
"filename": "http_router-4.1.2-cp310-cp310-win_amd64.whl",
"has_sig": false,
"md5_digest": "79d395b4809b524a7e095aa0a32213f0",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.8",
"size": 299885,
"upload_time": "2024-02-06T14:58:27",
"upload_time_iso_8601": "2024-02-06T14:58:27.795951Z",
"url": "https://files.pythonhosted.org/packages/75/91/1194d5ecda349d30cafa169a0531f3add48edb25f655fc523e14b0c3ab61/http_router-4.1.2-cp310-cp310-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "9417eb76fc66b0d24caa9b6cc34832884f2ccc56568e26b420fade6a012e4e25",
"md5": "86f98742fad4c39cd19fa90a44b4f16d",
"sha256": "168dc4216845399a89db392d5d84d7738d4f4e9257d51e5014dbc85d9a51c4ef"
},
"downloads": -1,
"filename": "http_router-4.1.2-cp311-cp311-macosx_10_9_universal2.whl",
"has_sig": false,
"md5_digest": "86f98742fad4c39cd19fa90a44b4f16d",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.8",
"size": 416353,
"upload_time": "2024-02-06T14:58:29",
"upload_time_iso_8601": "2024-02-06T14:58:29.259780Z",
"url": "https://files.pythonhosted.org/packages/94/17/eb76fc66b0d24caa9b6cc34832884f2ccc56568e26b420fade6a012e4e25/http_router-4.1.2-cp311-cp311-macosx_10_9_universal2.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "7974040329a2e83697723bb124eb622e41730eb31a41da89f4f0ddd4ca5c4613",
"md5": "23d6239061db83255e02f01b4328882f",
"sha256": "e6a4174116339915bb83ce1801cfcc929947d79fa1d2b4cb090ee3ed1c955aae"
},
"downloads": -1,
"filename": "http_router-4.1.2-cp311-cp311-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "23d6239061db83255e02f01b4328882f",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.8",
"size": 310721,
"upload_time": "2024-02-06T14:58:30",
"upload_time_iso_8601": "2024-02-06T14:58:30.757748Z",
"url": "https://files.pythonhosted.org/packages/79/74/040329a2e83697723bb124eb622e41730eb31a41da89f4f0ddd4ca5c4613/http_router-4.1.2-cp311-cp311-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "ef574ca1574feeb2d6b610ac19acc768635d642070dd4ace5d5d368facb801fb",
"md5": "1918b153e9a112203a001fae7ac193e2",
"sha256": "6f20377d2262e471bec8a0dfb9e4fa42a7b44434a491522bd716265fe597b352"
},
"downloads": -1,
"filename": "http_router-4.1.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"has_sig": false,
"md5_digest": "1918b153e9a112203a001fae7ac193e2",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.8",
"size": 898944,
"upload_time": "2024-02-06T14:58:32",
"upload_time_iso_8601": "2024-02-06T14:58:32.767220Z",
"url": "https://files.pythonhosted.org/packages/ef/57/4ca1574feeb2d6b610ac19acc768635d642070dd4ace5d5d368facb801fb/http_router-4.1.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "22cd61b65570646fe099a2255c6a079fc400f69e11124a32f7ed9ef87065d145",
"md5": "dfd6b9cbe32a1fe00ae8e7bf70236bef",
"sha256": "aa0389259608c026d49b2db74d1da6fb31b6e2c12d3631e81eb926eea935f7ea"
},
"downloads": -1,
"filename": "http_router-4.1.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "dfd6b9cbe32a1fe00ae8e7bf70236bef",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.8",
"size": 905286,
"upload_time": "2024-02-06T14:58:34",
"upload_time_iso_8601": "2024-02-06T14:58:34.752861Z",
"url": "https://files.pythonhosted.org/packages/22/cd/61b65570646fe099a2255c6a079fc400f69e11124a32f7ed9ef87065d145/http_router-4.1.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "bde53a3c4c7e479cc97bdb3e05f05d768d426f5c34556d32f8c22b7e8300e637",
"md5": "d7e7c4024a2bb529fa692a7ff3fa415f",
"sha256": "33b870b2f9b9a2a4691f9cc9c7ea0fe81c922a4ba5f423d6a0e91d97cf5492dc"
},
"downloads": -1,
"filename": "http_router-4.1.2-cp311-cp311-musllinux_1_1_aarch64.whl",
"has_sig": false,
"md5_digest": "d7e7c4024a2bb529fa692a7ff3fa415f",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.8",
"size": 901085,
"upload_time": "2024-02-06T14:58:36",
"upload_time_iso_8601": "2024-02-06T14:58:36.545420Z",
"url": "https://files.pythonhosted.org/packages/bd/e5/3a3c4c7e479cc97bdb3e05f05d768d426f5c34556d32f8c22b7e8300e637/http_router-4.1.2-cp311-cp311-musllinux_1_1_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "217aa2a6134b53013cc2dfa4f03b0db9a6444d18c34a0b2225d3f33cbfd97599",
"md5": "39344d8ae3b5b7359a723b39974fa8fe",
"sha256": "b4376355d41debae8b6d9670377295cf6bb84944e9916c728012a1e2079edef2"
},
"downloads": -1,
"filename": "http_router-4.1.2-cp311-cp311-musllinux_1_1_x86_64.whl",
"has_sig": false,
"md5_digest": "39344d8ae3b5b7359a723b39974fa8fe",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.8",
"size": 910566,
"upload_time": "2024-02-06T14:58:38",
"upload_time_iso_8601": "2024-02-06T14:58:38.138452Z",
"url": "https://files.pythonhosted.org/packages/21/7a/a2a6134b53013cc2dfa4f03b0db9a6444d18c34a0b2225d3f33cbfd97599/http_router-4.1.2-cp311-cp311-musllinux_1_1_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "98a041699d44a268f44cfbcd2ff6bd17fea30fd73a148ad9db3c55c0a578feaa",
"md5": "b572cf259be5bcd419ea13669422e8b3",
"sha256": "c8d6eede2db60ec31774e7cf5c78aa2d1bad6ac3117e0ee4a909aa684de1ad47"
},
"downloads": -1,
"filename": "http_router-4.1.2-cp311-cp311-win_amd64.whl",
"has_sig": false,
"md5_digest": "b572cf259be5bcd419ea13669422e8b3",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.8",
"size": 300049,
"upload_time": "2024-02-06T14:58:40",
"upload_time_iso_8601": "2024-02-06T14:58:40.445235Z",
"url": "https://files.pythonhosted.org/packages/98/a0/41699d44a268f44cfbcd2ff6bd17fea30fd73a148ad9db3c55c0a578feaa/http_router-4.1.2-cp311-cp311-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "dd5a17033309ab32c5b6eb605465cf8eaee0e4fa00a84735c2a82bb78d134f9d",
"md5": "4ce2200934c54a78a322e182af0c2d16",
"sha256": "d8a0119a36e57f2a4d511e7958b1a7e22d522d7644d3d577788366f5ba18711d"
},
"downloads": -1,
"filename": "http_router-4.1.2-cp312-cp312-macosx_10_9_universal2.whl",
"has_sig": false,
"md5_digest": "4ce2200934c54a78a322e182af0c2d16",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.8",
"size": 416567,
"upload_time": "2024-02-06T14:58:41",
"upload_time_iso_8601": "2024-02-06T14:58:41.995236Z",
"url": "https://files.pythonhosted.org/packages/dd/5a/17033309ab32c5b6eb605465cf8eaee0e4fa00a84735c2a82bb78d134f9d/http_router-4.1.2-cp312-cp312-macosx_10_9_universal2.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "52ed824644944af57618af4a560b3dc52c0554d0d7291e443844f47a3db7597b",
"md5": "48ada3d644f4832cf1015f72f11987b3",
"sha256": "9409d02ba3e72d6ef68dc30b9cf07ec03744856b12f9346635971b3de0e4e80b"
},
"downloads": -1,
"filename": "http_router-4.1.2-cp312-cp312-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "48ada3d644f4832cf1015f72f11987b3",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.8",
"size": 310638,
"upload_time": "2024-02-06T14:58:43",
"upload_time_iso_8601": "2024-02-06T14:58:43.984997Z",
"url": "https://files.pythonhosted.org/packages/52/ed/824644944af57618af4a560b3dc52c0554d0d7291e443844f47a3db7597b/http_router-4.1.2-cp312-cp312-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "f0ea5407ded579ee035e8db13eedb47c604e743a6c7d8d8b663f35feb1f1b3e9",
"md5": "45adc6106a6ebbb512dea409fe65193c",
"sha256": "1d4e8a3108e50d7d185513f9b2b771a39698e765bb9bcaad52ea582e0ce23406"
},
"downloads": -1,
"filename": "http_router-4.1.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"has_sig": false,
"md5_digest": "45adc6106a6ebbb512dea409fe65193c",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.8",
"size": 897192,
"upload_time": "2024-02-06T14:58:45",
"upload_time_iso_8601": "2024-02-06T14:58:45.339457Z",
"url": "https://files.pythonhosted.org/packages/f0/ea/5407ded579ee035e8db13eedb47c604e743a6c7d8d8b663f35feb1f1b3e9/http_router-4.1.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "50c1ec8fbf03aa8758b336316e89fc725edacba981603aa9a0d328b121e372fc",
"md5": "e38ccd67722233dbdf56a2d9e186cf28",
"sha256": "31a9492df53d7634db9106fc65f5a697a81344a8df8fa858b9e5ac862748ecc6"
},
"downloads": -1,
"filename": "http_router-4.1.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "e38ccd67722233dbdf56a2d9e186cf28",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.8",
"size": 912130,
"upload_time": "2024-02-06T14:58:47",
"upload_time_iso_8601": "2024-02-06T14:58:47.040019Z",
"url": "https://files.pythonhosted.org/packages/50/c1/ec8fbf03aa8758b336316e89fc725edacba981603aa9a0d328b121e372fc/http_router-4.1.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "67671992e66b356be08364bf9f2c845e7f5f1ff798366228ae1fb1d9a1c513e0",
"md5": "71ec411c429a84730352dfa39e4853a8",
"sha256": "b21b7717a41286d89db6ec3e5609d0636a0f22bb1de82658f316aeca3d3feeba"
},
"downloads": -1,
"filename": "http_router-4.1.2-cp312-cp312-musllinux_1_1_aarch64.whl",
"has_sig": false,
"md5_digest": "71ec411c429a84730352dfa39e4853a8",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.8",
"size": 899582,
"upload_time": "2024-02-06T14:58:48",
"upload_time_iso_8601": "2024-02-06T14:58:48.681915Z",
"url": "https://files.pythonhosted.org/packages/67/67/1992e66b356be08364bf9f2c845e7f5f1ff798366228ae1fb1d9a1c513e0/http_router-4.1.2-cp312-cp312-musllinux_1_1_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "b2f790adaf1b4370ee8785e668979e52577ab778e8da362f289943ed81a12c7f",
"md5": "6db7b7cecd741d1ceb42fe0c706855a0",
"sha256": "392a974d225e698a43916070d936e69a98646bd1212ca1d582a4b825269c0c33"
},
"downloads": -1,
"filename": "http_router-4.1.2-cp312-cp312-musllinux_1_1_x86_64.whl",
"has_sig": false,
"md5_digest": "6db7b7cecd741d1ceb42fe0c706855a0",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.8",
"size": 913401,
"upload_time": "2024-02-06T14:58:50",
"upload_time_iso_8601": "2024-02-06T14:58:50.077931Z",
"url": "https://files.pythonhosted.org/packages/b2/f7/90adaf1b4370ee8785e668979e52577ab778e8da362f289943ed81a12c7f/http_router-4.1.2-cp312-cp312-musllinux_1_1_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "7a79f1a1c16a099936ef5cdae966f84a0a030ba5b003581904882854311a6e0e",
"md5": "872e6876f78d284223850f03ec2c9239",
"sha256": "ffb462ba4ea9fdfbe12c5946d2e9cb1e49244d824c85fde3228c3c78ae3040a4"
},
"downloads": -1,
"filename": "http_router-4.1.2-cp312-cp312-win_amd64.whl",
"has_sig": false,
"md5_digest": "872e6876f78d284223850f03ec2c9239",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.8",
"size": 299481,
"upload_time": "2024-02-06T14:58:51",
"upload_time_iso_8601": "2024-02-06T14:58:51.657367Z",
"url": "https://files.pythonhosted.org/packages/7a/79/f1a1c16a099936ef5cdae966f84a0a030ba5b003581904882854311a6e0e/http_router-4.1.2-cp312-cp312-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "bcd3444edafd348bf2fb885c47e31469d9f4a65e0b469f3128ef7e23f4b8600f",
"md5": "80e9d4eda92c87dadc43651679d373a0",
"sha256": "cdf28854f05ff1b21a193cda6f5860d7983e6d68ac154410958f61bc97260a17"
},
"downloads": -1,
"filename": "http_router-4.1.2-cp38-cp38-macosx_10_9_universal2.whl",
"has_sig": false,
"md5_digest": "80e9d4eda92c87dadc43651679d373a0",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": ">=3.8",
"size": 416015,
"upload_time": "2024-02-06T14:58:53",
"upload_time_iso_8601": "2024-02-06T14:58:53.042854Z",
"url": "https://files.pythonhosted.org/packages/bc/d3/444edafd348bf2fb885c47e31469d9f4a65e0b469f3128ef7e23f4b8600f/http_router-4.1.2-cp38-cp38-macosx_10_9_universal2.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "677a85fafb81c09f6caa8f3a77084273207cd623599919045f99434b8b4154a9",
"md5": "f7d999ccaf1e93886474b279f1dc5779",
"sha256": "28d5b09c9162e2a419788b201829b44f199fb8ad84b17b3b6e56a48373aaba9a"
},
"downloads": -1,
"filename": "http_router-4.1.2-cp38-cp38-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "f7d999ccaf1e93886474b279f1dc5779",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": ">=3.8",
"size": 310682,
"upload_time": "2024-02-06T14:58:54",
"upload_time_iso_8601": "2024-02-06T14:58:54.769284Z",
"url": "https://files.pythonhosted.org/packages/67/7a/85fafb81c09f6caa8f3a77084273207cd623599919045f99434b8b4154a9/http_router-4.1.2-cp38-cp38-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "9e5207e430a460d18be6a2d4a414973e8621b3df053434879674d26e458f4890",
"md5": "18bd7cf3c44b08a0da25a313413ffcac",
"sha256": "67ecb93bbea33222f4a3b23c1f91d4c71cc51ff0446b9cc54b20ca260eb4ebf3"
},
"downloads": -1,
"filename": "http_router-4.1.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"has_sig": false,
"md5_digest": "18bd7cf3c44b08a0da25a313413ffcac",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": ">=3.8",
"size": 846854,
"upload_time": "2024-02-06T14:58:56",
"upload_time_iso_8601": "2024-02-06T14:58:56.732092Z",
"url": "https://files.pythonhosted.org/packages/9e/52/07e430a460d18be6a2d4a414973e8621b3df053434879674d26e458f4890/http_router-4.1.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "93ac693b4704ec2e145233608c64e37f180981036ea0bdaf6a93c901393cc6ed",
"md5": "8c0340a815ffdb79743ef562f2ebe6a2",
"sha256": "924a9b0a9131d0e45e4007abccc88051f3041db1d37d917ab973ab3483999f2d"
},
"downloads": -1,
"filename": "http_router-4.1.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "8c0340a815ffdb79743ef562f2ebe6a2",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": ">=3.8",
"size": 854747,
"upload_time": "2024-02-06T14:58:58",
"upload_time_iso_8601": "2024-02-06T14:58:58.887088Z",
"url": "https://files.pythonhosted.org/packages/93/ac/693b4704ec2e145233608c64e37f180981036ea0bdaf6a93c901393cc6ed/http_router-4.1.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "ec585d1f44b9e12883faa938a0dae793acb91c3ba822f28b81cb76a02303b91c",
"md5": "c4a44d18b78ce09217d94a0e722389dc",
"sha256": "58efaea2b318d14f7ff810e61511aaf3231e82f4e4dcf8ab67b532e3bfb03012"
},
"downloads": -1,
"filename": "http_router-4.1.2-cp38-cp38-musllinux_1_1_aarch64.whl",
"has_sig": false,
"md5_digest": "c4a44d18b78ce09217d94a0e722389dc",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": ">=3.8",
"size": 875092,
"upload_time": "2024-02-06T14:59:00",
"upload_time_iso_8601": "2024-02-06T14:59:00.599992Z",
"url": "https://files.pythonhosted.org/packages/ec/58/5d1f44b9e12883faa938a0dae793acb91c3ba822f28b81cb76a02303b91c/http_router-4.1.2-cp38-cp38-musllinux_1_1_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "33fccec757559319966b2c4c32017369b5c707c3ffd5736d31eb17bf707a446c",
"md5": "de4699738f7d7c077689ec9a770291ae",
"sha256": "20da643b37fecd405cae8d5e697371e6c9b9d0f0ca0edba41bf171ef14fbc411"
},
"downloads": -1,
"filename": "http_router-4.1.2-cp38-cp38-musllinux_1_1_x86_64.whl",
"has_sig": false,
"md5_digest": "de4699738f7d7c077689ec9a770291ae",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": ">=3.8",
"size": 884130,
"upload_time": "2024-02-06T14:59:02",
"upload_time_iso_8601": "2024-02-06T14:59:02.423125Z",
"url": "https://files.pythonhosted.org/packages/33/fc/cec757559319966b2c4c32017369b5c707c3ffd5736d31eb17bf707a446c/http_router-4.1.2-cp38-cp38-musllinux_1_1_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "fbb745f5f417eef630a07a6ccec5df473c2bfc78a124031285116f467be3347b",
"md5": "1fc6502a55938a47d7db8825953fe27b",
"sha256": "b639bd95467954929ae5d1765b205aa9f68bdbc08b13b6732178302708ba0218"
},
"downloads": -1,
"filename": "http_router-4.1.2-cp38-cp38-win_amd64.whl",
"has_sig": false,
"md5_digest": "1fc6502a55938a47d7db8825953fe27b",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": ">=3.8",
"size": 300692,
"upload_time": "2024-02-06T14:59:04",
"upload_time_iso_8601": "2024-02-06T14:59:04.572621Z",
"url": "https://files.pythonhosted.org/packages/fb/b7/45f5f417eef630a07a6ccec5df473c2bfc78a124031285116f467be3347b/http_router-4.1.2-cp38-cp38-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "1f449ee057c0f9448b3eac5d234bf19895ee002266737601c048e2decb96efbc",
"md5": "138cd8ea2de4c03448ea271ef6a9885f",
"sha256": "6b88c0959131d139f02adc07538d342905e1984cae308f5c63e2b11fbd655a47"
},
"downloads": -1,
"filename": "http_router-4.1.2-cp39-cp39-macosx_10_9_universal2.whl",
"has_sig": false,
"md5_digest": "138cd8ea2de4c03448ea271ef6a9885f",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.8",
"size": 416247,
"upload_time": "2024-02-06T14:59:06",
"upload_time_iso_8601": "2024-02-06T14:59:06.097122Z",
"url": "https://files.pythonhosted.org/packages/1f/44/9ee057c0f9448b3eac5d234bf19895ee002266737601c048e2decb96efbc/http_router-4.1.2-cp39-cp39-macosx_10_9_universal2.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "29ee0c51b3a4c412e1fb1da34cd116d1f685e5b8b374d88af34ce23b0f1557cf",
"md5": "6c4b35113e9f95e545cabe3cc27cfcac",
"sha256": "0bd3c59427808596cf9ef79e11044810dc7bc36e3c78a9d788b7b2b647a3082f"
},
"downloads": -1,
"filename": "http_router-4.1.2-cp39-cp39-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "6c4b35113e9f95e545cabe3cc27cfcac",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.8",
"size": 310722,
"upload_time": "2024-02-06T14:59:07",
"upload_time_iso_8601": "2024-02-06T14:59:07.930418Z",
"url": "https://files.pythonhosted.org/packages/29/ee/0c51b3a4c412e1fb1da34cd116d1f685e5b8b374d88af34ce23b0f1557cf/http_router-4.1.2-cp39-cp39-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "1e42323d4642d4ee00034cb6d33df527bbcccfff606f76f0760ff9c942783690",
"md5": "dd493eaa36865fe3328e32aaea103bfa",
"sha256": "d3d799f951b9c9f62c170ed89a2293827c070690efd05dba8c1010dd501afe75"
},
"downloads": -1,
"filename": "http_router-4.1.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"has_sig": false,
"md5_digest": "dd493eaa36865fe3328e32aaea103bfa",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.8",
"size": 835597,
"upload_time": "2024-02-06T14:59:09",
"upload_time_iso_8601": "2024-02-06T14:59:09.486010Z",
"url": "https://files.pythonhosted.org/packages/1e/42/323d4642d4ee00034cb6d33df527bbcccfff606f76f0760ff9c942783690/http_router-4.1.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "8b4e407e6e90a7c5964e309ddbcc7dcb76ba65d6f064e8724e46df19925b2be4",
"md5": "e0f3088fab031f0d139edb13aba45578",
"sha256": "b85904c993db689ee8725cd5e8bb991d0914bf32ca1ef8ee95c904897d4a8f2f"
},
"downloads": -1,
"filename": "http_router-4.1.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "e0f3088fab031f0d139edb13aba45578",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.8",
"size": 843455,
"upload_time": "2024-02-06T14:59:11",
"upload_time_iso_8601": "2024-02-06T14:59:11.543765Z",
"url": "https://files.pythonhosted.org/packages/8b/4e/407e6e90a7c5964e309ddbcc7dcb76ba65d6f064e8724e46df19925b2be4/http_router-4.1.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "161c6dbf2cd95ea7d83613e5e5e95ca8e05f98db6eae027103c86a38a86765db",
"md5": "9c469ce04166b57e08a3711128bebde0",
"sha256": "8783324904de078841f11e991fe34633f386b4009c091e47880ea1fc2ce35fbf"
},
"downloads": -1,
"filename": "http_router-4.1.2-cp39-cp39-musllinux_1_1_aarch64.whl",
"has_sig": false,
"md5_digest": "9c469ce04166b57e08a3711128bebde0",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.8",
"size": 842118,
"upload_time": "2024-02-06T14:59:13",
"upload_time_iso_8601": "2024-02-06T14:59:13.536068Z",
"url": "https://files.pythonhosted.org/packages/16/1c/6dbf2cd95ea7d83613e5e5e95ca8e05f98db6eae027103c86a38a86765db/http_router-4.1.2-cp39-cp39-musllinux_1_1_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "9d30f169a2aa1d156c28f48b03b3c6cb3a87bb121a06575d0055929b6841bad1",
"md5": "f361ebe2e23e47ba894d0882ab711bc4",
"sha256": "b44d897dfb7da07763eb525c02ebc34ac932944cb062c041db92f5761e5690b8"
},
"downloads": -1,
"filename": "http_router-4.1.2-cp39-cp39-musllinux_1_1_x86_64.whl",
"has_sig": false,
"md5_digest": "f361ebe2e23e47ba894d0882ab711bc4",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.8",
"size": 850670,
"upload_time": "2024-02-06T14:59:14",
"upload_time_iso_8601": "2024-02-06T14:59:14.808355Z",
"url": "https://files.pythonhosted.org/packages/9d/30/f169a2aa1d156c28f48b03b3c6cb3a87bb121a06575d0055929b6841bad1/http_router-4.1.2-cp39-cp39-musllinux_1_1_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "ad3790658d1f362c06a303a5f39e076187cee1c1ecd51ad6050e813ec74f43ea",
"md5": "9938c5f95d65a983503e189bc4d79bea",
"sha256": "12ddba636fded1d0a2c8a793748717ab37659642e509017385148c0a36b25faa"
},
"downloads": -1,
"filename": "http_router-4.1.2-cp39-cp39-win_amd64.whl",
"has_sig": false,
"md5_digest": "9938c5f95d65a983503e189bc4d79bea",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.8",
"size": 300381,
"upload_time": "2024-02-06T14:59:16",
"upload_time_iso_8601": "2024-02-06T14:59:16.575568Z",
"url": "https://files.pythonhosted.org/packages/ad/37/90658d1f362c06a303a5f39e076187cee1c1ecd51ad6050e813ec74f43ea/http_router-4.1.2-cp39-cp39-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "97740d93d9140004ed3898e9b4db46fc57c16841b7c65197f275bbe66c0e5080",
"md5": "ffa96a0b5a7c70584d53ab9807250321",
"sha256": "cc99cf800ccdcde68859183bab83aec54f49c6b110bf131b8cf1a7dea1cb860a"
},
"downloads": -1,
"filename": "http-router-4.1.2.tar.gz",
"has_sig": false,
"md5_digest": "ffa96a0b5a7c70584d53ab9807250321",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 9666,
"upload_time": "2024-02-06T14:59:17",
"upload_time_iso_8601": "2024-02-06T14:59:17.885838Z",
"url": "https://files.pythonhosted.org/packages/97/74/0d93d9140004ed3898e9b4db46fc57c16841b7c65197f275bbe66c0e5080/http-router-4.1.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-02-06 14:59:17",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "klen",
"github_project": "http-router",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "http-router"
}