| Name | httptools JSON |
| Version |
0.7.1
JSON |
| download |
| home_page | None |
| Summary | A collection of framework independent HTTP protocol utils. |
| upload_time | 2025-10-10 03:55:08 |
| maintainer | None |
| docs_url | None |
| author | None |
| requires_python | >=3.9 |
| license | None |
| keywords |
|
| VCS |
 |
| bugtrack_url |
|
| requirements |
No requirements were recorded.
|
| Travis-CI |
No Travis.
|
| coveralls test coverage |
No coveralls.
|

httptools is a Python binding for the nodejs HTTP parser.
The package is available on PyPI: `pip install httptools`.
# APIs
httptools contains two classes `httptools.HttpRequestParser`,
`httptools.HttpResponseParser` (fulfilled through
[llhttp](https://github.com/nodejs/llhttp)) and a function for
parsing URLs `httptools.parse_url` (through
[http-parse](https://github.com/nodejs/http-parser) for now).
See unittests for examples.
```python
class HttpRequestParser:
def __init__(self, protocol):
"""HttpRequestParser
protocol -- a Python object with the following methods
(all optional):
- on_message_begin()
- on_url(url: bytes)
- on_header(name: bytes, value: bytes)
- on_headers_complete()
- on_body(body: bytes)
- on_message_complete()
- on_chunk_header()
- on_chunk_complete()
- on_status(status: bytes)
"""
def get_http_version(self) -> str:
"""Return an HTTP protocol version."""
def should_keep_alive(self) -> bool:
"""Return ``True`` if keep-alive mode is preferred."""
def should_upgrade(self) -> bool:
"""Return ``True`` if the parsed request is a valid Upgrade request.
The method exposes a flag set just before on_headers_complete.
Calling this method earlier will only yield `False`.
"""
def feed_data(self, data: bytes):
"""Feed data to the parser.
Will eventually trigger callbacks on the ``protocol``
object.
On HTTP upgrade, this method will raise an
``HttpParserUpgrade`` exception, with its sole argument
set to the offset of the non-HTTP data in ``data``.
"""
def get_method(self) -> bytes:
"""Return HTTP request method (GET, HEAD, etc)"""
class HttpResponseParser:
"""Has all methods except ``get_method()`` that
HttpRequestParser has."""
def get_status_code(self) -> int:
"""Return the status code of the HTTP response"""
def parse_url(url: bytes):
"""Parse URL strings into a structured Python object.
Returns an instance of ``httptools.URL`` class with the
following attributes:
- schema: bytes
- host: bytes
- port: int
- path: bytes
- query: bytes
- fragment: bytes
- userinfo: bytes
"""
```
# Development
1. Clone this repository with
`git clone --recursive git@github.com:MagicStack/httptools.git`
2. Create a virtual environment with Python 3:
`python3 -m venv envname`
3. Activate the environment with `source envname/bin/activate`
4. Run `make` and `make test`.
# License
MIT.
Raw data
{
"_id": null,
"home_page": null,
"name": "httptools",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": null,
"keywords": null,
"author": null,
"author_email": "Yury Selivanov <yury@magic.io>",
"download_url": "https://files.pythonhosted.org/packages/b5/46/120a669232c7bdedb9d52d4aeae7e6c7dfe151e99dc70802e2fc7a5e1993/httptools-0.7.1.tar.gz",
"platform": "macOS",
"description": "\n\nhttptools is a Python binding for the nodejs HTTP parser.\n\nThe package is available on PyPI: `pip install httptools`.\n\n\n# APIs\n\nhttptools contains two classes `httptools.HttpRequestParser`,\n`httptools.HttpResponseParser` (fulfilled through\n[llhttp](https://github.com/nodejs/llhttp)) and a function for\nparsing URLs `httptools.parse_url` (through\n[http-parse](https://github.com/nodejs/http-parser) for now).\nSee unittests for examples.\n\n\n```python\n\nclass HttpRequestParser:\n\n def __init__(self, protocol):\n \"\"\"HttpRequestParser\n\n protocol -- a Python object with the following methods\n (all optional):\n\n - on_message_begin()\n - on_url(url: bytes)\n - on_header(name: bytes, value: bytes)\n - on_headers_complete()\n - on_body(body: bytes)\n - on_message_complete()\n - on_chunk_header()\n - on_chunk_complete()\n - on_status(status: bytes)\n \"\"\"\n\n def get_http_version(self) -> str:\n \"\"\"Return an HTTP protocol version.\"\"\"\n\n def should_keep_alive(self) -> bool:\n \"\"\"Return ``True`` if keep-alive mode is preferred.\"\"\"\n\n def should_upgrade(self) -> bool:\n \"\"\"Return ``True`` if the parsed request is a valid Upgrade request.\n\tThe method exposes a flag set just before on_headers_complete.\n\tCalling this method earlier will only yield `False`.\n\t\"\"\"\n\n def feed_data(self, data: bytes):\n \"\"\"Feed data to the parser.\n\n Will eventually trigger callbacks on the ``protocol``\n object.\n\n On HTTP upgrade, this method will raise an\n ``HttpParserUpgrade`` exception, with its sole argument\n set to the offset of the non-HTTP data in ``data``.\n \"\"\"\n\n def get_method(self) -> bytes:\n \"\"\"Return HTTP request method (GET, HEAD, etc)\"\"\"\n\n\nclass HttpResponseParser:\n\n \"\"\"Has all methods except ``get_method()`` that\n HttpRequestParser has.\"\"\"\n\n def get_status_code(self) -> int:\n \"\"\"Return the status code of the HTTP response\"\"\"\n\n\ndef parse_url(url: bytes):\n \"\"\"Parse URL strings into a structured Python object.\n\n Returns an instance of ``httptools.URL`` class with the\n following attributes:\n\n - schema: bytes\n - host: bytes\n - port: int\n - path: bytes\n - query: bytes\n - fragment: bytes\n - userinfo: bytes\n \"\"\"\n```\n\n\n# Development\n\n1. Clone this repository with\n `git clone --recursive git@github.com:MagicStack/httptools.git`\n\n2. Create a virtual environment with Python 3:\n `python3 -m venv envname`\n\n3. Activate the environment with `source envname/bin/activate`\n\n4. Run `make` and `make test`.\n\n\n# License\n\nMIT.\n",
"bugtrack_url": null,
"license": null,
"summary": "A collection of framework independent HTTP protocol utils.",
"version": "0.7.1",
"project_urls": {
"Homepage": "https://github.com/MagicStack/httptools"
},
"split_keywords": [],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "c7e5c07e0bcf4ec8db8164e9f6738c048b2e66aabf30e7506f440c4cc6953f60",
"md5": "ee65c434377e71d87a530149f6200801",
"sha256": "11d01b0ff1fe02c4c32d60af61a4d613b74fad069e47e06e9067758c01e9ac78"
},
"downloads": -1,
"filename": "httptools-0.7.1-cp310-cp310-macosx_10_9_universal2.whl",
"has_sig": false,
"md5_digest": "ee65c434377e71d87a530149f6200801",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.9",
"size": 204531,
"upload_time": "2025-10-10T03:54:20",
"upload_time_iso_8601": "2025-10-10T03:54:20.887779Z",
"url": "https://files.pythonhosted.org/packages/c7/e5/c07e0bcf4ec8db8164e9f6738c048b2e66aabf30e7506f440c4cc6953f60/httptools-0.7.1-cp310-cp310-macosx_10_9_universal2.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "7e4f35e3a63f863a659f92ffd92bef131f3e81cf849af26e6435b49bd9f6f751",
"md5": "c34598ae8fcd17fe64b6621b2f7f6d81",
"sha256": "84d86c1e5afdc479a6fdabf570be0d3eb791df0ae727e8dbc0259ed1249998d4"
},
"downloads": -1,
"filename": "httptools-0.7.1-cp310-cp310-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "c34598ae8fcd17fe64b6621b2f7f6d81",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.9",
"size": 109408,
"upload_time": "2025-10-10T03:54:22",
"upload_time_iso_8601": "2025-10-10T03:54:22.455486Z",
"url": "https://files.pythonhosted.org/packages/7e/4f/35e3a63f863a659f92ffd92bef131f3e81cf849af26e6435b49bd9f6f751/httptools-0.7.1-cp310-cp310-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "f571b0a9193641d9e2471ac541d3b1b869538a5fb6419d52fd2669fa9c79e4b8",
"md5": "e8cbd713d1c43d76087c23e28c70ea5e",
"sha256": "c8c751014e13d88d2be5f5f14fc8b89612fcfa92a9cc480f2bc1598357a23a05"
},
"downloads": -1,
"filename": "httptools-0.7.1-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl",
"has_sig": false,
"md5_digest": "e8cbd713d1c43d76087c23e28c70ea5e",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.9",
"size": 440889,
"upload_time": "2025-10-10T03:54:23",
"upload_time_iso_8601": "2025-10-10T03:54:23.753705Z",
"url": "https://files.pythonhosted.org/packages/f5/71/b0a9193641d9e2471ac541d3b1b869538a5fb6419d52fd2669fa9c79e4b8/httptools-0.7.1-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "ebd92e34811397b76718750fea44658cb0205b84566e895192115252e008b152",
"md5": "87ce096a950f469f9f7a64745356291c",
"sha256": "654968cb6b6c77e37b832a9be3d3ecabb243bbe7a0b8f65fbc5b6b04c8fcabed"
},
"downloads": -1,
"filename": "httptools-0.7.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
"has_sig": false,
"md5_digest": "87ce096a950f469f9f7a64745356291c",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.9",
"size": 440460,
"upload_time": "2025-10-10T03:54:25",
"upload_time_iso_8601": "2025-10-10T03:54:25.313974Z",
"url": "https://files.pythonhosted.org/packages/eb/d9/2e34811397b76718750fea44658cb0205b84566e895192115252e008b152/httptools-0.7.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "013fa04626ebeacc489866bb4d82362c0657b2262bef381d68310134be7f40bb",
"md5": "bc8586172fc4ef787803dd5f298d70ec",
"sha256": "b580968316348b474b020edf3988eecd5d6eec4634ee6561e72ae3a2a0e00a8a"
},
"downloads": -1,
"filename": "httptools-0.7.1-cp310-cp310-musllinux_1_2_aarch64.whl",
"has_sig": false,
"md5_digest": "bc8586172fc4ef787803dd5f298d70ec",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.9",
"size": 425267,
"upload_time": "2025-10-10T03:54:26",
"upload_time_iso_8601": "2025-10-10T03:54:26.810261Z",
"url": "https://files.pythonhosted.org/packages/01/3f/a04626ebeacc489866bb4d82362c0657b2262bef381d68310134be7f40bb/httptools-0.7.1-cp310-cp310-musllinux_1_2_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "a599adcd4f66614db627b587627c8ad6f4c55f18881549bab10ecf180562e7b9",
"md5": "a5d01ab4b183c72236b0aec4db5f880c",
"sha256": "d496e2f5245319da9d764296e86c5bb6fcf0cf7a8806d3d000717a889c8c0b7b"
},
"downloads": -1,
"filename": "httptools-0.7.1-cp310-cp310-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "a5d01ab4b183c72236b0aec4db5f880c",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.9",
"size": 424429,
"upload_time": "2025-10-10T03:54:28",
"upload_time_iso_8601": "2025-10-10T03:54:28.174341Z",
"url": "https://files.pythonhosted.org/packages/a5/99/adcd4f66614db627b587627c8ad6f4c55f18881549bab10ecf180562e7b9/httptools-0.7.1-cp310-cp310-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "d572ec8fc904a8fd30ba022dfa85f3bbc64c3c7cd75b669e24242c0658e22f3c",
"md5": "2f9ab015b2771b5824a0b1e6875457d5",
"sha256": "cbf8317bfccf0fed3b5680c559d3459cccf1abe9039bfa159e62e391c7270568"
},
"downloads": -1,
"filename": "httptools-0.7.1-cp310-cp310-win_amd64.whl",
"has_sig": false,
"md5_digest": "2f9ab015b2771b5824a0b1e6875457d5",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.9",
"size": 86173,
"upload_time": "2025-10-10T03:54:29",
"upload_time_iso_8601": "2025-10-10T03:54:29.500861Z",
"url": "https://files.pythonhosted.org/packages/d5/72/ec8fc904a8fd30ba022dfa85f3bbc64c3c7cd75b669e24242c0658e22f3c/httptools-0.7.1-cp310-cp310-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "9c0817e07e8d89ab8f343c134616d72eebfe03798835058e2ab579dcc8353c06",
"md5": "3fd0dd1244fc93c59e87ea046be0d53a",
"sha256": "474d3b7ab469fefcca3697a10d11a32ee2b9573250206ba1e50d5980910da657"
},
"downloads": -1,
"filename": "httptools-0.7.1-cp311-cp311-macosx_10_9_universal2.whl",
"has_sig": false,
"md5_digest": "3fd0dd1244fc93c59e87ea046be0d53a",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.9",
"size": 206521,
"upload_time": "2025-10-10T03:54:31",
"upload_time_iso_8601": "2025-10-10T03:54:31.002645Z",
"url": "https://files.pythonhosted.org/packages/9c/08/17e07e8d89ab8f343c134616d72eebfe03798835058e2ab579dcc8353c06/httptools-0.7.1-cp311-cp311-macosx_10_9_universal2.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "aa06c9c1b41ff52f16aee526fd10fbda99fa4787938aa776858ddc4a1ea825ec",
"md5": "1033a1bf1d4a122e5354ad7fa5d5a61e",
"sha256": "a3c3b7366bb6c7b96bd72d0dbe7f7d5eead261361f013be5f6d9590465ea1c70"
},
"downloads": -1,
"filename": "httptools-0.7.1-cp311-cp311-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "1033a1bf1d4a122e5354ad7fa5d5a61e",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.9",
"size": 110375,
"upload_time": "2025-10-10T03:54:31",
"upload_time_iso_8601": "2025-10-10T03:54:31.941901Z",
"url": "https://files.pythonhosted.org/packages/aa/06/c9c1b41ff52f16aee526fd10fbda99fa4787938aa776858ddc4a1ea825ec/httptools-0.7.1-cp311-cp311-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "cccc10935db22fda0ee34c76f047590ca0a8bd9de531406a3ccb10a90e12ea21",
"md5": "b8a9540e896d9d570bd474c84321ce9f",
"sha256": "379b479408b8747f47f3b253326183d7c009a3936518cdb70db58cffd369d9df"
},
"downloads": -1,
"filename": "httptools-0.7.1-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl",
"has_sig": false,
"md5_digest": "b8a9540e896d9d570bd474c84321ce9f",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.9",
"size": 456621,
"upload_time": "2025-10-10T03:54:33",
"upload_time_iso_8601": "2025-10-10T03:54:33.176329Z",
"url": "https://files.pythonhosted.org/packages/cc/cc/10935db22fda0ee34c76f047590ca0a8bd9de531406a3ccb10a90e12ea21/httptools-0.7.1-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "0e84875382b10d271b0c11aa5d414b44f92f8dd53e9b658aec338a79164fa548",
"md5": "f782ee5fd31cefb92f054b0d056cdb39",
"sha256": "cad6b591a682dcc6cf1397c3900527f9affef1e55a06c4547264796bbd17cf5e"
},
"downloads": -1,
"filename": "httptools-0.7.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
"has_sig": false,
"md5_digest": "f782ee5fd31cefb92f054b0d056cdb39",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.9",
"size": 454954,
"upload_time": "2025-10-10T03:54:34",
"upload_time_iso_8601": "2025-10-10T03:54:34.226012Z",
"url": "https://files.pythonhosted.org/packages/0e/84/875382b10d271b0c11aa5d414b44f92f8dd53e9b658aec338a79164fa548/httptools-0.7.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "30e144f89b280f7e46c0b1b2ccee5737d46b3bb13136383958f20b580a821ca0",
"md5": "2ec02d2a40c2a249a2c3e270673d11a0",
"sha256": "eb844698d11433d2139bbeeb56499102143beb582bd6c194e3ba69c22f25c274"
},
"downloads": -1,
"filename": "httptools-0.7.1-cp311-cp311-musllinux_1_2_aarch64.whl",
"has_sig": false,
"md5_digest": "2ec02d2a40c2a249a2c3e270673d11a0",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.9",
"size": 440175,
"upload_time": "2025-10-10T03:54:35",
"upload_time_iso_8601": "2025-10-10T03:54:35.942612Z",
"url": "https://files.pythonhosted.org/packages/30/e1/44f89b280f7e46c0b1b2ccee5737d46b3bb13136383958f20b580a821ca0/httptools-0.7.1-cp311-cp311-musllinux_1_2_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "6f7eb9287763159e700e335028bc1824359dc736fa9b829dacedace91a39b37e",
"md5": "6a7ee7721a92c630eb9e6fad2599949e",
"sha256": "f65744d7a8bdb4bda5e1fa23e4ba16832860606fcc09d674d56e425e991539ec"
},
"downloads": -1,
"filename": "httptools-0.7.1-cp311-cp311-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "6a7ee7721a92c630eb9e6fad2599949e",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.9",
"size": 440310,
"upload_time": "2025-10-10T03:54:37",
"upload_time_iso_8601": "2025-10-10T03:54:37.100766Z",
"url": "https://files.pythonhosted.org/packages/6f/7e/b9287763159e700e335028bc1824359dc736fa9b829dacedace91a39b37e/httptools-0.7.1-cp311-cp311-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "b3075b614f592868e07f5c94b1f301b5e14a21df4e8076215a3bccb830a687d8",
"md5": "8338e4c864caee92ca9c3d62aa1e715a",
"sha256": "135fbe974b3718eada677229312e97f3b31f8a9c8ffa3ae6f565bf808d5b6bcb"
},
"downloads": -1,
"filename": "httptools-0.7.1-cp311-cp311-win_amd64.whl",
"has_sig": false,
"md5_digest": "8338e4c864caee92ca9c3d62aa1e715a",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.9",
"size": 86875,
"upload_time": "2025-10-10T03:54:38",
"upload_time_iso_8601": "2025-10-10T03:54:38.421583Z",
"url": "https://files.pythonhosted.org/packages/b3/07/5b614f592868e07f5c94b1f301b5e14a21df4e8076215a3bccb830a687d8/httptools-0.7.1-cp311-cp311-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "537f403e5d787dc4942316e515e949b0c8a013d84078a915910e9f391ba9b3ed",
"md5": "89257f87d4fd8cb8cf9c3a75e9b87530",
"sha256": "38e0c83a2ea9746ebbd643bdfb521b9aa4a91703e2cd705c20443405d2fd16a5"
},
"downloads": -1,
"filename": "httptools-0.7.1-cp312-cp312-macosx_10_13_universal2.whl",
"has_sig": false,
"md5_digest": "89257f87d4fd8cb8cf9c3a75e9b87530",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.9",
"size": 206280,
"upload_time": "2025-10-10T03:54:39",
"upload_time_iso_8601": "2025-10-10T03:54:39.274921Z",
"url": "https://files.pythonhosted.org/packages/53/7f/403e5d787dc4942316e515e949b0c8a013d84078a915910e9f391ba9b3ed/httptools-0.7.1-cp312-cp312-macosx_10_13_universal2.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "2a0d7f3fd28e2ce311ccc998c388dd1c53b18120fda3b70ebb022b135dc9839b",
"md5": "92ff0daa3475e7211bbe1ae5744b7f9b",
"sha256": "f25bbaf1235e27704f1a7b86cd3304eabc04f569c828101d94a0e605ef7205a5"
},
"downloads": -1,
"filename": "httptools-0.7.1-cp312-cp312-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "92ff0daa3475e7211bbe1ae5744b7f9b",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.9",
"size": 110004,
"upload_time": "2025-10-10T03:54:40",
"upload_time_iso_8601": "2025-10-10T03:54:40.403598Z",
"url": "https://files.pythonhosted.org/packages/2a/0d/7f3fd28e2ce311ccc998c388dd1c53b18120fda3b70ebb022b135dc9839b/httptools-0.7.1-cp312-cp312-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "84a6b3965e1e146ef5762870bbe76117876ceba51a201e18cc31f5703e454596",
"md5": "477fb083491ed869807aa0c198868cd6",
"sha256": "2c15f37ef679ab9ecc06bfc4e6e8628c32a8e4b305459de7cf6785acd57e4d03"
},
"downloads": -1,
"filename": "httptools-0.7.1-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl",
"has_sig": false,
"md5_digest": "477fb083491ed869807aa0c198868cd6",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.9",
"size": 517655,
"upload_time": "2025-10-10T03:54:41",
"upload_time_iso_8601": "2025-10-10T03:54:41.347933Z",
"url": "https://files.pythonhosted.org/packages/84/a6/b3965e1e146ef5762870bbe76117876ceba51a201e18cc31f5703e454596/httptools-0.7.1-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "117d71fee6f1844e6fa378f2eddde6c3e41ce3a1fb4b2d81118dd544e3441ec0",
"md5": "e6feeef19190cceb4b477771c3b9376c",
"sha256": "7fe6e96090df46b36ccfaf746f03034e5ab723162bc51b0a4cf58305324036f2"
},
"downloads": -1,
"filename": "httptools-0.7.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
"has_sig": false,
"md5_digest": "e6feeef19190cceb4b477771c3b9376c",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.9",
"size": 511440,
"upload_time": "2025-10-10T03:54:42",
"upload_time_iso_8601": "2025-10-10T03:54:42.452782Z",
"url": "https://files.pythonhosted.org/packages/11/7d/71fee6f1844e6fa378f2eddde6c3e41ce3a1fb4b2d81118dd544e3441ec0/httptools-0.7.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "22a5079d216712a4f3ffa24af4a0381b108aa9c45b7a5cc6eb141f81726b1823",
"md5": "8d3397cab513b4c57dbc3ace29d807ee",
"sha256": "f72fdbae2dbc6e68b8239defb48e6a5937b12218e6ffc2c7846cc37befa84362"
},
"downloads": -1,
"filename": "httptools-0.7.1-cp312-cp312-musllinux_1_2_aarch64.whl",
"has_sig": false,
"md5_digest": "8d3397cab513b4c57dbc3ace29d807ee",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.9",
"size": 495186,
"upload_time": "2025-10-10T03:54:43",
"upload_time_iso_8601": "2025-10-10T03:54:43.937207Z",
"url": "https://files.pythonhosted.org/packages/22/a5/079d216712a4f3ffa24af4a0381b108aa9c45b7a5cc6eb141f81726b1823/httptools-0.7.1-cp312-cp312-musllinux_1_2_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "e99e025ad7b65278745dee3bd0ebf9314934c4592560878308a6121f7f812084",
"md5": "8e773ccb12a51624b572e463b3105dd2",
"sha256": "e99c7b90a29fd82fea9ef57943d501a16f3404d7b9ee81799d41639bdaae412c"
},
"downloads": -1,
"filename": "httptools-0.7.1-cp312-cp312-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "8e773ccb12a51624b572e463b3105dd2",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.9",
"size": 499192,
"upload_time": "2025-10-10T03:54:45",
"upload_time_iso_8601": "2025-10-10T03:54:45.003906Z",
"url": "https://files.pythonhosted.org/packages/e9/9e/025ad7b65278745dee3bd0ebf9314934c4592560878308a6121f7f812084/httptools-0.7.1-cp312-cp312-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "6dde40a8f202b987d43afc4d54689600ff03ce65680ede2f31df348d7f368b8f",
"md5": "b6da119d38cc90c4801c0fd3a351d8fe",
"sha256": "3e14f530fefa7499334a79b0cf7e7cd2992870eb893526fb097d51b4f2d0f321"
},
"downloads": -1,
"filename": "httptools-0.7.1-cp312-cp312-win_amd64.whl",
"has_sig": false,
"md5_digest": "b6da119d38cc90c4801c0fd3a351d8fe",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.9",
"size": 86694,
"upload_time": "2025-10-10T03:54:45",
"upload_time_iso_8601": "2025-10-10T03:54:45.923566Z",
"url": "https://files.pythonhosted.org/packages/6d/de/40a8f202b987d43afc4d54689600ff03ce65680ede2f31df348d7f368b8f/httptools-0.7.1-cp312-cp312-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "098fc77b1fcbfd262d422f12da02feb0d218fa228d52485b77b953832105bb90",
"md5": "d91334ff47fad2b8ede943b548df9bfc",
"sha256": "6babce6cfa2a99545c60bfef8bee0cc0545413cb0018f617c8059a30ad985de3"
},
"downloads": -1,
"filename": "httptools-0.7.1-cp313-cp313-macosx_10_13_universal2.whl",
"has_sig": false,
"md5_digest": "d91334ff47fad2b8ede943b548df9bfc",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.9",
"size": 202889,
"upload_time": "2025-10-10T03:54:47",
"upload_time_iso_8601": "2025-10-10T03:54:47.089746Z",
"url": "https://files.pythonhosted.org/packages/09/8f/c77b1fcbfd262d422f12da02feb0d218fa228d52485b77b953832105bb90/httptools-0.7.1-cp313-cp313-macosx_10_13_universal2.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "0a1a22887f53602feaa066354867bc49a68fc295c2293433177ee90870a7d517",
"md5": "4b378bf971904f9321e72ae2c1d5bf14",
"sha256": "601b7628de7504077dd3dcb3791c6b8694bbd967148a6d1f01806509254fb1ca"
},
"downloads": -1,
"filename": "httptools-0.7.1-cp313-cp313-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "4b378bf971904f9321e72ae2c1d5bf14",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.9",
"size": 108180,
"upload_time": "2025-10-10T03:54:48",
"upload_time_iso_8601": "2025-10-10T03:54:48.052667Z",
"url": "https://files.pythonhosted.org/packages/0a/1a/22887f53602feaa066354867bc49a68fc295c2293433177ee90870a7d517/httptools-0.7.1-cp313-cp313-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "326a6aaa91937f0010d288d3d124ca2946d48d60c3a5ee7ca62afe870e3ea011",
"md5": "4276d64824ffcbeea31932f7ac7fd09c",
"sha256": "04c6c0e6c5fb0739c5b8a9eb046d298650a0ff38cf42537fc372b28dc7e4472c"
},
"downloads": -1,
"filename": "httptools-0.7.1-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl",
"has_sig": false,
"md5_digest": "4276d64824ffcbeea31932f7ac7fd09c",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.9",
"size": 478596,
"upload_time": "2025-10-10T03:54:48",
"upload_time_iso_8601": "2025-10-10T03:54:48.919927Z",
"url": "https://files.pythonhosted.org/packages/32/6a/6aaa91937f0010d288d3d124ca2946d48d60c3a5ee7ca62afe870e3ea011/httptools-0.7.1-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "6d70023d7ce117993107be88d2cbca566a7c1323ccbaf0af7eabf2064fe356f6",
"md5": "d26b26b97e59c79bc287fa79785b6732",
"sha256": "69d4f9705c405ae3ee83d6a12283dc9feba8cc6aaec671b412917e644ab4fa66"
},
"downloads": -1,
"filename": "httptools-0.7.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
"has_sig": false,
"md5_digest": "d26b26b97e59c79bc287fa79785b6732",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.9",
"size": 473268,
"upload_time": "2025-10-10T03:54:49",
"upload_time_iso_8601": "2025-10-10T03:54:49.993824Z",
"url": "https://files.pythonhosted.org/packages/6d/70/023d7ce117993107be88d2cbca566a7c1323ccbaf0af7eabf2064fe356f6/httptools-0.7.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "324d9dd616c38da088e3f436e9a616e1d0cc66544b8cdac405cc4e81c8679fc7",
"md5": "18621764f14315e723e1d772b389b27b",
"sha256": "44c8f4347d4b31269c8a9205d8a5ee2df5322b09bbbd30f8f862185bb6b05346"
},
"downloads": -1,
"filename": "httptools-0.7.1-cp313-cp313-musllinux_1_2_aarch64.whl",
"has_sig": false,
"md5_digest": "18621764f14315e723e1d772b389b27b",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.9",
"size": 455517,
"upload_time": "2025-10-10T03:54:51",
"upload_time_iso_8601": "2025-10-10T03:54:51.066973Z",
"url": "https://files.pythonhosted.org/packages/32/4d/9dd616c38da088e3f436e9a616e1d0cc66544b8cdac405cc4e81c8679fc7/httptools-0.7.1-cp313-cp313-musllinux_1_2_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "1d3aa6c595c310b7df958e739aae88724e24f9246a514d909547778d776799be",
"md5": "7a7d94187fe78bba6cefe2f99e165756",
"sha256": "465275d76db4d554918aba40bf1cbebe324670f3dfc979eaffaa5d108e2ed650"
},
"downloads": -1,
"filename": "httptools-0.7.1-cp313-cp313-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "7a7d94187fe78bba6cefe2f99e165756",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.9",
"size": 458337,
"upload_time": "2025-10-10T03:54:52",
"upload_time_iso_8601": "2025-10-10T03:54:52.196085Z",
"url": "https://files.pythonhosted.org/packages/1d/3a/a6c595c310b7df958e739aae88724e24f9246a514d909547778d776799be/httptools-0.7.1-cp313-cp313-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "fd8288e8d6d2c51edc1cc391b6e044c6c435b6aebe97b1abc33db1b0b24cd582",
"md5": "a47989c55aae599512fff34d2919afec",
"sha256": "322d00c2068d125bd570f7bf78b2d367dad02b919d8581d7476d8b75b294e3e6"
},
"downloads": -1,
"filename": "httptools-0.7.1-cp313-cp313-win_amd64.whl",
"has_sig": false,
"md5_digest": "a47989c55aae599512fff34d2919afec",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.9",
"size": 85743,
"upload_time": "2025-10-10T03:54:53",
"upload_time_iso_8601": "2025-10-10T03:54:53.448256Z",
"url": "https://files.pythonhosted.org/packages/fd/82/88e8d6d2c51edc1cc391b6e044c6c435b6aebe97b1abc33db1b0b24cd582/httptools-0.7.1-cp313-cp313-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "34509d095fcbb6de2d523e027a2f304d4551855c2f46e0b82befd718b8b20056",
"md5": "15aef5164d0a77b9a484ead0bff26b63",
"sha256": "c08fe65728b8d70b6923ce31e3956f859d5e1e8548e6f22ec520a962c6757270"
},
"downloads": -1,
"filename": "httptools-0.7.1-cp314-cp314-macosx_10_13_universal2.whl",
"has_sig": false,
"md5_digest": "15aef5164d0a77b9a484ead0bff26b63",
"packagetype": "bdist_wheel",
"python_version": "cp314",
"requires_python": ">=3.9",
"size": 203619,
"upload_time": "2025-10-10T03:54:54",
"upload_time_iso_8601": "2025-10-10T03:54:54.321290Z",
"url": "https://files.pythonhosted.org/packages/34/50/9d095fcbb6de2d523e027a2f304d4551855c2f46e0b82befd718b8b20056/httptools-0.7.1-cp314-cp314-macosx_10_13_universal2.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "07f089720dc5139ae54b03f861b5e2c55a37dba9a5da7d51e1e824a1f343627f",
"md5": "08db2ed8eb91168d88063a06244f13f1",
"sha256": "7aea2e3c3953521c3c51106ee11487a910d45586e351202474d45472db7d72d3"
},
"downloads": -1,
"filename": "httptools-0.7.1-cp314-cp314-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "08db2ed8eb91168d88063a06244f13f1",
"packagetype": "bdist_wheel",
"python_version": "cp314",
"requires_python": ">=3.9",
"size": 108714,
"upload_time": "2025-10-10T03:54:55",
"upload_time_iso_8601": "2025-10-10T03:54:55.163445Z",
"url": "https://files.pythonhosted.org/packages/07/f0/89720dc5139ae54b03f861b5e2c55a37dba9a5da7d51e1e824a1f343627f/httptools-0.7.1-cp314-cp314-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "b3cbeea88506f191fb552c11787c23f9a405f4c7b0c5799bf73f2249cd4f5228",
"md5": "de7392ef13dc686a19a26ef92152c469",
"sha256": "0e68b8582f4ea9166be62926077a3334064d422cf08ab87d8b74664f8e9058e1"
},
"downloads": -1,
"filename": "httptools-0.7.1-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl",
"has_sig": false,
"md5_digest": "de7392ef13dc686a19a26ef92152c469",
"packagetype": "bdist_wheel",
"python_version": "cp314",
"requires_python": ">=3.9",
"size": 472909,
"upload_time": "2025-10-10T03:54:56",
"upload_time_iso_8601": "2025-10-10T03:54:56.056202Z",
"url": "https://files.pythonhosted.org/packages/b3/cb/eea88506f191fb552c11787c23f9a405f4c7b0c5799bf73f2249cd4f5228/httptools-0.7.1-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "e04aa548bdfae6369c0d078bab5769f7b66f17f1bfaa6fa28f81d6be6959066b",
"md5": "eebfa95500185b8155189d574196a801",
"sha256": "df091cf961a3be783d6aebae963cc9b71e00d57fa6f149025075217bc6a55a7b"
},
"downloads": -1,
"filename": "httptools-0.7.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
"has_sig": false,
"md5_digest": "eebfa95500185b8155189d574196a801",
"packagetype": "bdist_wheel",
"python_version": "cp314",
"requires_python": ">=3.9",
"size": 470831,
"upload_time": "2025-10-10T03:54:57",
"upload_time_iso_8601": "2025-10-10T03:54:57.219285Z",
"url": "https://files.pythonhosted.org/packages/e0/4a/a548bdfae6369c0d078bab5769f7b66f17f1bfaa6fa28f81d6be6959066b/httptools-0.7.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "4d3114df99e1c43bd132eec921c2e7e11cda7852f65619bc0fc5bdc2d0cb126c",
"md5": "25b89a2b744930c1cf50d496896152c4",
"sha256": "f084813239e1eb403ddacd06a30de3d3e09a9b76e7894dcda2b22f8a726e9c60"
},
"downloads": -1,
"filename": "httptools-0.7.1-cp314-cp314-musllinux_1_2_aarch64.whl",
"has_sig": false,
"md5_digest": "25b89a2b744930c1cf50d496896152c4",
"packagetype": "bdist_wheel",
"python_version": "cp314",
"requires_python": ">=3.9",
"size": 452631,
"upload_time": "2025-10-10T03:54:58",
"upload_time_iso_8601": "2025-10-10T03:54:58.219310Z",
"url": "https://files.pythonhosted.org/packages/4d/31/14df99e1c43bd132eec921c2e7e11cda7852f65619bc0fc5bdc2d0cb126c/httptools-0.7.1-cp314-cp314-musllinux_1_2_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "22d2b7e131f7be8d854d48cb6d048113c30f9a46dca0c9a8b08fcb3fcd588cdc",
"md5": "f06995ccf9c85b3a01040f23a58b955a",
"sha256": "7347714368fb2b335e9063bc2b96f2f87a9ceffcd9758ac295f8bbcd3ffbc0ca"
},
"downloads": -1,
"filename": "httptools-0.7.1-cp314-cp314-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "f06995ccf9c85b3a01040f23a58b955a",
"packagetype": "bdist_wheel",
"python_version": "cp314",
"requires_python": ">=3.9",
"size": 452910,
"upload_time": "2025-10-10T03:54:59",
"upload_time_iso_8601": "2025-10-10T03:54:59.366658Z",
"url": "https://files.pythonhosted.org/packages/22/d2/b7e131f7be8d854d48cb6d048113c30f9a46dca0c9a8b08fcb3fcd588cdc/httptools-0.7.1-cp314-cp314-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "53cf878f3b91e4e6e011eff6d1fa9ca39f7eb17d19c9d7971b04873734112f30",
"md5": "7f4962a3eca84d032716b5657276e308",
"sha256": "cfabda2a5bb85aa2a904ce06d974a3f30fb36cc63d7feaddec05d2050acede96"
},
"downloads": -1,
"filename": "httptools-0.7.1-cp314-cp314-win_amd64.whl",
"has_sig": false,
"md5_digest": "7f4962a3eca84d032716b5657276e308",
"packagetype": "bdist_wheel",
"python_version": "cp314",
"requires_python": ">=3.9",
"size": 88205,
"upload_time": "2025-10-10T03:55:00",
"upload_time_iso_8601": "2025-10-10T03:55:00.389326Z",
"url": "https://files.pythonhosted.org/packages/53/cf/878f3b91e4e6e011eff6d1fa9ca39f7eb17d19c9d7971b04873734112f30/httptools-0.7.1-cp314-cp314-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "90deb1fe0e8890f0292c266117d4cd268186758a9c34e576fbd573fdf3beacff",
"md5": "61f0dc03fe0bdc67ebd5942b4d1eae13",
"sha256": "ac50afa68945df63ec7a2707c506bd02239272288add34539a2ef527254626a4"
},
"downloads": -1,
"filename": "httptools-0.7.1-cp39-cp39-macosx_10_9_universal2.whl",
"has_sig": false,
"md5_digest": "61f0dc03fe0bdc67ebd5942b4d1eae13",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9",
"size": 206454,
"upload_time": "2025-10-10T03:55:01",
"upload_time_iso_8601": "2025-10-10T03:55:01.528063Z",
"url": "https://files.pythonhosted.org/packages/90/de/b1fe0e8890f0292c266117d4cd268186758a9c34e576fbd573fdf3beacff/httptools-0.7.1-cp39-cp39-macosx_10_9_universal2.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "57a7a675c90b49e550c7635ce209c01bc61daa5b08aef17da27ef4e0e78fcf3f",
"md5": "d6899c1e9072daac68e605e8f5f71d55",
"sha256": "de987bb4e7ac95b99b805b99e0aae0ad51ae61df4263459d36e07cf4052d8b3a"
},
"downloads": -1,
"filename": "httptools-0.7.1-cp39-cp39-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "d6899c1e9072daac68e605e8f5f71d55",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9",
"size": 110260,
"upload_time": "2025-10-10T03:55:02",
"upload_time_iso_8601": "2025-10-10T03:55:02.418661Z",
"url": "https://files.pythonhosted.org/packages/57/a7/a675c90b49e550c7635ce209c01bc61daa5b08aef17da27ef4e0e78fcf3f/httptools-0.7.1-cp39-cp39-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "0344fb5ef8136e6e97f7b020e97e40c03a999f97e68574d4998fa52b0a62b01b",
"md5": "a14082ddb270fcb952602c45bbed5e00",
"sha256": "d169162803a24425eb5e4d51d79cbf429fd7a491b9e570a55f495ea55b26f0bf"
},
"downloads": -1,
"filename": "httptools-0.7.1-cp39-cp39-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl",
"has_sig": false,
"md5_digest": "a14082ddb270fcb952602c45bbed5e00",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9",
"size": 441524,
"upload_time": "2025-10-10T03:55:03",
"upload_time_iso_8601": "2025-10-10T03:55:03.292581Z",
"url": "https://files.pythonhosted.org/packages/03/44/fb5ef8136e6e97f7b020e97e40c03a999f97e68574d4998fa52b0a62b01b/httptools-0.7.1-cp39-cp39-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "b4628496a5425341867796d7e2419695f74a74607054e227bbaeabec8323e87f",
"md5": "4c1484011b3205d134a4fed5430849dc",
"sha256": "49794f9250188a57fa73c706b46cb21a313edb00d337ca4ce1a011fe3c760b28"
},
"downloads": -1,
"filename": "httptools-0.7.1-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
"has_sig": false,
"md5_digest": "4c1484011b3205d134a4fed5430849dc",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9",
"size": 440877,
"upload_time": "2025-10-10T03:55:04",
"upload_time_iso_8601": "2025-10-10T03:55:04.282243Z",
"url": "https://files.pythonhosted.org/packages/b4/62/8496a5425341867796d7e2419695f74a74607054e227bbaeabec8323e87f/httptools-0.7.1-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "e8f126c2e5214106bf6ed04d03e518ff28ca0c6b5390c5da7b12bbf94b40ae43",
"md5": "8921a865133cd299c9f678409560ef5b",
"sha256": "aeefa0648362bb97a7d6b5ff770bfb774930a327d7f65f8208394856862de517"
},
"downloads": -1,
"filename": "httptools-0.7.1-cp39-cp39-musllinux_1_2_aarch64.whl",
"has_sig": false,
"md5_digest": "8921a865133cd299c9f678409560ef5b",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9",
"size": 425775,
"upload_time": "2025-10-10T03:55:05",
"upload_time_iso_8601": "2025-10-10T03:55:05.341020Z",
"url": "https://files.pythonhosted.org/packages/e8/f1/26c2e5214106bf6ed04d03e518ff28ca0c6b5390c5da7b12bbf94b40ae43/httptools-0.7.1-cp39-cp39-musllinux_1_2_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "3a347500a19257139725281f7939a7d1aa3701cf1ac4601a1690f9ab6f510e15",
"md5": "e899a1a9bafddad72d6c408ce2f78255",
"sha256": "0d92b10dbf0b3da4823cde6a96d18e6ae358a9daa741c71448975f6a2c339cad"
},
"downloads": -1,
"filename": "httptools-0.7.1-cp39-cp39-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "e899a1a9bafddad72d6c408ce2f78255",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9",
"size": 425001,
"upload_time": "2025-10-10T03:55:06",
"upload_time_iso_8601": "2025-10-10T03:55:06.389175Z",
"url": "https://files.pythonhosted.org/packages/3a/34/7500a19257139725281f7939a7d1aa3701cf1ac4601a1690f9ab6f510e15/httptools-0.7.1-cp39-cp39-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "710431a7949d645ebf33a67f56a0024109444a52a271735e0647a210264f3e61",
"md5": "66e7c8f589b02ed3b8b6aa86623d35cb",
"sha256": "5ddbd045cfcb073db2449563dd479057f2c2b681ebc232380e63ef15edc9c023"
},
"downloads": -1,
"filename": "httptools-0.7.1-cp39-cp39-win_amd64.whl",
"has_sig": false,
"md5_digest": "66e7c8f589b02ed3b8b6aa86623d35cb",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9",
"size": 86818,
"upload_time": "2025-10-10T03:55:07",
"upload_time_iso_8601": "2025-10-10T03:55:07.316236Z",
"url": "https://files.pythonhosted.org/packages/71/04/31a7949d645ebf33a67f56a0024109444a52a271735e0647a210264f3e61/httptools-0.7.1-cp39-cp39-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "b546120a669232c7bdedb9d52d4aeae7e6c7dfe151e99dc70802e2fc7a5e1993",
"md5": "29795416212f190abe5a18b3faacaaef",
"sha256": "abd72556974f8e7c74a259655924a717a2365b236c882c3f6f8a45fe94703ac9"
},
"downloads": -1,
"filename": "httptools-0.7.1.tar.gz",
"has_sig": false,
"md5_digest": "29795416212f190abe5a18b3faacaaef",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 258961,
"upload_time": "2025-10-10T03:55:08",
"upload_time_iso_8601": "2025-10-10T03:55:08.559207Z",
"url": "https://files.pythonhosted.org/packages/b5/46/120a669232c7bdedb9d52d4aeae7e6c7dfe151e99dc70802e2fc7a5e1993/httptools-0.7.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-10-10 03:55:08",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "MagicStack",
"github_project": "httptools",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "httptools"
}