httptools


Namehttptools JSON
Version 0.6.1 PyPI version JSON
download
home_pagehttps://github.com/MagicStack/httptools
SummaryA collection of framework independent HTTP protocol utils.
upload_time2023-10-16 17:42:36
maintainer
docs_urlNone
authorYury Selivanov
requires_python>=3.8.0
licenseMIT
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ![Tests](https://github.com/MagicStack/httptools/workflows/Tests/badge.svg)

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. Install development requirements with `pip install -e .[test]`

5. Run `make` and `make test`.


# License

MIT.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/MagicStack/httptools",
    "name": "httptools",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.8.0",
    "maintainer_email": "",
    "keywords": "",
    "author": "Yury Selivanov",
    "author_email": "yury@magic.io",
    "download_url": "https://files.pythonhosted.org/packages/67/1d/d77686502fced061b3ead1c35a2d70f6b281b5f723c4eff7a2277c04e4a2/httptools-0.6.1.tar.gz",
    "platform": "macOS",
    "description": "![Tests](https://github.com/MagicStack/httptools/workflows/Tests/badge.svg)\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. Install development requirements with `pip install -e .[test]`\n\n5. Run `make` and `make test`.\n\n\n# License\n\nMIT.\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "A collection of framework independent HTTP protocol utils.",
    "version": "0.6.1",
    "project_urls": {
        "Homepage": "https://github.com/MagicStack/httptools"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a96a80bce0216b63babf51cdc34814c3f0f10489e13ab89fb6bc91202736a8a2",
                "md5": "488c9a6046c005aaf72526247bb10d28",
                "sha256": "d2f6c3c4cb1948d912538217838f6e9960bc4a521d7f9b323b3da579cd14532f"
            },
            "downloads": -1,
            "filename": "httptools-0.6.1-cp310-cp310-macosx_10_9_universal2.whl",
            "has_sig": false,
            "md5_digest": "488c9a6046c005aaf72526247bb10d28",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8.0",
            "size": 149778,
            "upload_time": "2023-10-16T17:41:35",
            "upload_time_iso_8601": "2023-10-16T17:41:35.970335Z",
            "url": "https://files.pythonhosted.org/packages/a9/6a/80bce0216b63babf51cdc34814c3f0f10489e13ab89fb6bc91202736a8a2/httptools-0.6.1-cp310-cp310-macosx_10_9_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "bd7d4cd75356dfe0ed0b40ca6873646bf9ff7b5138236c72338dc569dc57d509",
                "md5": "05117e259dbfb881f0ae452531878c49",
                "sha256": "00d5d4b68a717765b1fabfd9ca755bd12bf44105eeb806c03d1962acd9b8e563"
            },
            "downloads": -1,
            "filename": "httptools-0.6.1-cp310-cp310-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "05117e259dbfb881f0ae452531878c49",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8.0",
            "size": 77604,
            "upload_time": "2023-10-16T17:41:38",
            "upload_time_iso_8601": "2023-10-16T17:41:38.361123Z",
            "url": "https://files.pythonhosted.org/packages/bd/7d/4cd75356dfe0ed0b40ca6873646bf9ff7b5138236c72338dc569dc57d509/httptools-0.6.1-cp310-cp310-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "4e746348ce41fb5c1484f35184c172efb8854a288e6090bb54e2210598268369",
                "md5": "80ab3bca461c4e7c789d5be11baa50f7",
                "sha256": "639dc4f381a870c9ec860ce5c45921db50205a37cc3334e756269736ff0aac58"
            },
            "downloads": -1,
            "filename": "httptools-0.6.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "80ab3bca461c4e7c789d5be11baa50f7",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8.0",
            "size": 346717,
            "upload_time": "2023-10-16T17:41:40",
            "upload_time_iso_8601": "2023-10-16T17:41:40.447822Z",
            "url": "https://files.pythonhosted.org/packages/4e/74/6348ce41fb5c1484f35184c172efb8854a288e6090bb54e2210598268369/httptools-0.6.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "65e7dd5ba95c84047118a363f0755ad78e639e0529be92424bb020496578aa3b",
                "md5": "5b7ea6b61b0f64d740b78422a0a7a70d",
                "sha256": "e57997ac7fb7ee43140cc03664de5f268813a481dff6245e0075925adc6aa185"
            },
            "downloads": -1,
            "filename": "httptools-0.6.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "5b7ea6b61b0f64d740b78422a0a7a70d",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8.0",
            "size": 341442,
            "upload_time": "2023-10-16T17:41:42",
            "upload_time_iso_8601": "2023-10-16T17:41:42.492435Z",
            "url": "https://files.pythonhosted.org/packages/65/e7/dd5ba95c84047118a363f0755ad78e639e0529be92424bb020496578aa3b/httptools-0.6.1-cp310-cp310-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": "d897b37d596bc32be291477a8912bf9d1508d7e8553aa11a30cd871fd89cbae4",
                "md5": "38101125e15ad1389c099c5b5e050107",
                "sha256": "0ac5a0ae3d9f4fe004318d64b8a854edd85ab76cffbf7ef5e32920faef62f142"
            },
            "downloads": -1,
            "filename": "httptools-0.6.1-cp310-cp310-musllinux_1_1_aarch64.whl",
            "has_sig": false,
            "md5_digest": "38101125e15ad1389c099c5b5e050107",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8.0",
            "size": 354531,
            "upload_time": "2023-10-16T17:41:44",
            "upload_time_iso_8601": "2023-10-16T17:41:44.488560Z",
            "url": "https://files.pythonhosted.org/packages/d8/97/b37d596bc32be291477a8912bf9d1508d7e8553aa11a30cd871fd89cbae4/httptools-0.6.1-cp310-cp310-musllinux_1_1_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "99c953ed7176583ec4b4364d941a08624288f2ae55b4ff58b392cdb68db1e1ed",
                "md5": "3ab013b87a5891f3c0cc763d27f476dd",
                "sha256": "3f30d3ce413088a98b9db71c60a6ada2001a08945cb42dd65a9a9fe228627658"
            },
            "downloads": -1,
            "filename": "httptools-0.6.1-cp310-cp310-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "3ab013b87a5891f3c0cc763d27f476dd",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8.0",
            "size": 347754,
            "upload_time": "2023-10-16T17:41:46",
            "upload_time_iso_8601": "2023-10-16T17:41:46.567536Z",
            "url": "https://files.pythonhosted.org/packages/99/c9/53ed7176583ec4b4364d941a08624288f2ae55b4ff58b392cdb68db1e1ed/httptools-0.6.1-cp310-cp310-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "1efc8a26c2adcd3f141e4729897633f03832b71ebea6f4c31cce67a92ded1961",
                "md5": "dc547c8500c1d4c13be851b96a6bd276",
                "sha256": "1ed99a373e327f0107cb513b61820102ee4f3675656a37a50083eda05dc9541b"
            },
            "downloads": -1,
            "filename": "httptools-0.6.1-cp310-cp310-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "dc547c8500c1d4c13be851b96a6bd276",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8.0",
            "size": 58165,
            "upload_time": "2023-10-16T17:41:48",
            "upload_time_iso_8601": "2023-10-16T17:41:48.859391Z",
            "url": "https://files.pythonhosted.org/packages/1e/fc/8a26c2adcd3f141e4729897633f03832b71ebea6f4c31cce67a92ded1961/httptools-0.6.1-cp310-cp310-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f5d153283b96ed823d5e4d89ee9aa0f29df5a1bdf67f148e061549a595d534e4",
                "md5": "c8d8138b0cac33f679782f0cebf5fc2e",
                "sha256": "7a7ea483c1a4485c71cb5f38be9db078f8b0e8b4c4dc0210f531cdd2ddac1ef1"
            },
            "downloads": -1,
            "filename": "httptools-0.6.1-cp311-cp311-macosx_10_9_universal2.whl",
            "has_sig": false,
            "md5_digest": "c8d8138b0cac33f679782f0cebf5fc2e",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8.0",
            "size": 145855,
            "upload_time": "2023-10-16T17:41:50",
            "upload_time_iso_8601": "2023-10-16T17:41:50.407095Z",
            "url": "https://files.pythonhosted.org/packages/f5/d1/53283b96ed823d5e4d89ee9aa0f29df5a1bdf67f148e061549a595d534e4/httptools-0.6.1-cp311-cp311-macosx_10_9_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "80ddcebc9d4b1d4b70e9f3d40d1db0829a28d57ca139d0b04197713816a11996",
                "md5": "89f09ba132e173adba6a8c30460262f1",
                "sha256": "85ed077c995e942b6f1b07583e4eb0a8d324d418954fc6af913d36db7c05a5a0"
            },
            "downloads": -1,
            "filename": "httptools-0.6.1-cp311-cp311-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "89f09ba132e173adba6a8c30460262f1",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8.0",
            "size": 75604,
            "upload_time": "2023-10-16T17:41:52",
            "upload_time_iso_8601": "2023-10-16T17:41:52.204364Z",
            "url": "https://files.pythonhosted.org/packages/80/dd/cebc9d4b1d4b70e9f3d40d1db0829a28d57ca139d0b04197713816a11996/httptools-0.6.1-cp311-cp311-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "767a45c5a9a2e9d21f7381866eb7b6ead5a84d8fe7e54e35208eeb18320a29b4",
                "md5": "f0d174dff164dbcd913a0e0d8fdfc0da",
                "sha256": "8b0bb634338334385351a1600a73e558ce619af390c2b38386206ac6a27fecfc"
            },
            "downloads": -1,
            "filename": "httptools-0.6.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "f0d174dff164dbcd913a0e0d8fdfc0da",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8.0",
            "size": 324784,
            "upload_time": "2023-10-16T17:41:53",
            "upload_time_iso_8601": "2023-10-16T17:41:53.617842Z",
            "url": "https://files.pythonhosted.org/packages/76/7a/45c5a9a2e9d21f7381866eb7b6ead5a84d8fe7e54e35208eeb18320a29b4/httptools-0.6.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "5923047a89e66045232fb82c50ae57699e40f70e073ae5ccd53f54e532fbd2a2",
                "md5": "892c88721f77fadcdc5642073d22f5e3",
                "sha256": "7d9ceb2c957320def533671fc9c715a80c47025139c8d1f3797477decbc6edd2"
            },
            "downloads": -1,
            "filename": "httptools-0.6.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "892c88721f77fadcdc5642073d22f5e3",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8.0",
            "size": 318547,
            "upload_time": "2023-10-16T17:41:55",
            "upload_time_iso_8601": "2023-10-16T17:41:55.847469Z",
            "url": "https://files.pythonhosted.org/packages/59/23/047a89e66045232fb82c50ae57699e40f70e073ae5ccd53f54e532fbd2a2/httptools-0.6.1-cp311-cp311-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": "82f550708abc7965d7d93c0ee14a148ccc6d078a508f47fe9357c79d5360f252",
                "md5": "8fdb5e48f2917e88fd4310dd2c29b65c",
                "sha256": "4f0f8271c0a4db459f9dc807acd0eadd4839934a4b9b892f6f160e94da309837"
            },
            "downloads": -1,
            "filename": "httptools-0.6.1-cp311-cp311-musllinux_1_1_aarch64.whl",
            "has_sig": false,
            "md5_digest": "8fdb5e48f2917e88fd4310dd2c29b65c",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8.0",
            "size": 330211,
            "upload_time": "2023-10-16T17:41:57",
            "upload_time_iso_8601": "2023-10-16T17:41:57.576047Z",
            "url": "https://files.pythonhosted.org/packages/82/f5/50708abc7965d7d93c0ee14a148ccc6d078a508f47fe9357c79d5360f252/httptools-0.6.1-cp311-cp311-musllinux_1_1_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e31e9823ca7aab323c0e0e9dd82ce835a6e93b69f69aedffbc94d31e327f4283",
                "md5": "97aaf89c02bd29ff417c1e7b4547f21e",
                "sha256": "6a4f5ccead6d18ec072ac0b84420e95d27c1cdf5c9f1bc8fbd8daf86bd94f43d"
            },
            "downloads": -1,
            "filename": "httptools-0.6.1-cp311-cp311-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "97aaf89c02bd29ff417c1e7b4547f21e",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8.0",
            "size": 322174,
            "upload_time": "2023-10-16T17:41:59",
            "upload_time_iso_8601": "2023-10-16T17:41:59.369181Z",
            "url": "https://files.pythonhosted.org/packages/e3/1e/9823ca7aab323c0e0e9dd82ce835a6e93b69f69aedffbc94d31e327f4283/httptools-0.6.1-cp311-cp311-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "14e420d28dfe7f5b5603b6b04c33bb88662ad749de51f0c539a561f235f42666",
                "md5": "75b9179616696b39ee3a1b6fe15a673b",
                "sha256": "5cceac09f164bcba55c0500a18fe3c47df29b62353198e4f37bbcc5d591172c3"
            },
            "downloads": -1,
            "filename": "httptools-0.6.1-cp311-cp311-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "75b9179616696b39ee3a1b6fe15a673b",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8.0",
            "size": 55434,
            "upload_time": "2023-10-16T17:42:01",
            "upload_time_iso_8601": "2023-10-16T17:42:01.414626Z",
            "url": "https://files.pythonhosted.org/packages/14/e4/20d28dfe7f5b5603b6b04c33bb88662ad749de51f0c539a561f235f42666/httptools-0.6.1-cp311-cp311-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6013b62e086b650752adf9094b7e62dab97f4cb7701005664544494b7956a51e",
                "md5": "f45248e00a983714f0ca50b1c5df3811",
                "sha256": "75c8022dca7935cba14741a42744eee13ba05db00b27a4b940f0d646bd4d56d0"
            },
            "downloads": -1,
            "filename": "httptools-0.6.1-cp312-cp312-macosx_10_9_universal2.whl",
            "has_sig": false,
            "md5_digest": "f45248e00a983714f0ca50b1c5df3811",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8.0",
            "size": 146354,
            "upload_time": "2023-10-16T17:42:03",
            "upload_time_iso_8601": "2023-10-16T17:42:03.324004Z",
            "url": "https://files.pythonhosted.org/packages/60/13/b62e086b650752adf9094b7e62dab97f4cb7701005664544494b7956a51e/httptools-0.6.1-cp312-cp312-macosx_10_9_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f85d9ad32b79b6c24524087e78aa3f0a2dfcf58c11c90e090e4593b35def8a86",
                "md5": "a837d709b64dc0ce775c9966c3b8bf29",
                "sha256": "48ed8129cd9a0d62cf4d1575fcf90fb37e3ff7d5654d3a5814eb3d55f36478c2"
            },
            "downloads": -1,
            "filename": "httptools-0.6.1-cp312-cp312-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "a837d709b64dc0ce775c9966c3b8bf29",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8.0",
            "size": 75785,
            "upload_time": "2023-10-16T17:42:04",
            "upload_time_iso_8601": "2023-10-16T17:42:04.731086Z",
            "url": "https://files.pythonhosted.org/packages/f8/5d/9ad32b79b6c24524087e78aa3f0a2dfcf58c11c90e090e4593b35def8a86/httptools-0.6.1-cp312-cp312-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d0a4b503851c40f20bcbd453db24ed35d961f62abdae0dccc8f672cd5d350d87",
                "md5": "3872c453c6a90ddd342b6503d05bd2f8",
                "sha256": "6f58e335a1402fb5a650e271e8c2d03cfa7cea46ae124649346d17bd30d59c90"
            },
            "downloads": -1,
            "filename": "httptools-0.6.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "3872c453c6a90ddd342b6503d05bd2f8",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8.0",
            "size": 345396,
            "upload_time": "2023-10-16T17:42:06",
            "upload_time_iso_8601": "2023-10-16T17:42:06.650225Z",
            "url": "https://files.pythonhosted.org/packages/d0/a4/b503851c40f20bcbd453db24ed35d961f62abdae0dccc8f672cd5d350d87/httptools-0.6.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a29aaa406864f3108e06f7320425a528ff8267124dead1fd72a3e9da2067f893",
                "md5": "afb560824c99a2442a3ecd01987e0ae3",
                "sha256": "93ad80d7176aa5788902f207a4e79885f0576134695dfb0fefc15b7a4648d503"
            },
            "downloads": -1,
            "filename": "httptools-0.6.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "afb560824c99a2442a3ecd01987e0ae3",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8.0",
            "size": 344741,
            "upload_time": "2023-10-16T17:42:08",
            "upload_time_iso_8601": "2023-10-16T17:42:08.543938Z",
            "url": "https://files.pythonhosted.org/packages/a2/9a/aa406864f3108e06f7320425a528ff8267124dead1fd72a3e9da2067f893/httptools-0.6.1-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": "cf3a3fd8dfb987c4247651baf2ac6f28e8e9f889d484ca1a41a9ad0f04dfe300",
                "md5": "6d0f310708e849dbf9b3936cb3840d7e",
                "sha256": "9bb68d3a085c2174c2477eb3ffe84ae9fb4fde8792edb7bcd09a1d8467e30a84"
            },
            "downloads": -1,
            "filename": "httptools-0.6.1-cp312-cp312-musllinux_1_1_aarch64.whl",
            "has_sig": false,
            "md5_digest": "6d0f310708e849dbf9b3936cb3840d7e",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8.0",
            "size": 345096,
            "upload_time": "2023-10-16T17:42:10",
            "upload_time_iso_8601": "2023-10-16T17:42:10.081312Z",
            "url": "https://files.pythonhosted.org/packages/cf/3a/3fd8dfb987c4247651baf2ac6f28e8e9f889d484ca1a41a9ad0f04dfe300/httptools-0.6.1-cp312-cp312-musllinux_1_1_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8001379f6466d8e2edb861c1f44ccac255ed1f8a0d4c5c666a1ceb34caad7555",
                "md5": "a87808f32dac131f3157966a0caa6a14",
                "sha256": "b512aa728bc02354e5ac086ce76c3ce635b62f5fbc32ab7082b5e582d27867bb"
            },
            "downloads": -1,
            "filename": "httptools-0.6.1-cp312-cp312-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "a87808f32dac131f3157966a0caa6a14",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8.0",
            "size": 343535,
            "upload_time": "2023-10-16T17:42:12",
            "upload_time_iso_8601": "2023-10-16T17:42:12.232065Z",
            "url": "https://files.pythonhosted.org/packages/80/01/379f6466d8e2edb861c1f44ccac255ed1f8a0d4c5c666a1ceb34caad7555/httptools-0.6.1-cp312-cp312-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d39760860e9ee87a7d4712b98f7e1411730520053b9d69e9e42b0b9751809c17",
                "md5": "7f686884b638477ed59f71295ef46fa5",
                "sha256": "97662ce7fb196c785344d00d638fc9ad69e18ee4bfb4000b35a52efe5adcc949"
            },
            "downloads": -1,
            "filename": "httptools-0.6.1-cp312-cp312-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "7f686884b638477ed59f71295ef46fa5",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8.0",
            "size": 55660,
            "upload_time": "2023-10-16T17:42:13",
            "upload_time_iso_8601": "2023-10-16T17:42:13.711504Z",
            "url": "https://files.pythonhosted.org/packages/d3/97/60860e9ee87a7d4712b98f7e1411730520053b9d69e9e42b0b9751809c17/httptools-0.6.1-cp312-cp312-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "42444b9ff8fd96776e775c1d480f6f8ce6d366e96f49b8df0a361cf000643a6e",
                "md5": "e68ea558d8811feb4d958992726491e1",
                "sha256": "8e216a038d2d52ea13fdd9b9c9c7459fb80d78302b257828285eca1c773b99b3"
            },
            "downloads": -1,
            "filename": "httptools-0.6.1-cp38-cp38-macosx_10_9_universal2.whl",
            "has_sig": false,
            "md5_digest": "e68ea558d8811feb4d958992726491e1",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8.0",
            "size": 151705,
            "upload_time": "2023-10-16T17:42:15",
            "upload_time_iso_8601": "2023-10-16T17:42:15.184733Z",
            "url": "https://files.pythonhosted.org/packages/42/44/4b9ff8fd96776e775c1d480f6f8ce6d366e96f49b8df0a361cf000643a6e/httptools-0.6.1-cp38-cp38-macosx_10_9_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e8f5ec2d069be4f76c63d942e4e35eeebedc3239b6528da17b2dd73d8e076a35",
                "md5": "129a8c2de4eb8ded6a6423ef63b04315",
                "sha256": "3e802e0b2378ade99cd666b5bffb8b2a7cc8f3d28988685dc300469ea8dd86cb"
            },
            "downloads": -1,
            "filename": "httptools-0.6.1-cp38-cp38-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "129a8c2de4eb8ded6a6423ef63b04315",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8.0",
            "size": 78436,
            "upload_time": "2023-10-16T17:42:16",
            "upload_time_iso_8601": "2023-10-16T17:42:16.466097Z",
            "url": "https://files.pythonhosted.org/packages/e8/f5/ec2d069be4f76c63d942e4e35eeebedc3239b6528da17b2dd73d8e076a35/httptools-0.6.1-cp38-cp38-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a0f8199e857258b4310b439431ec0c34515846dab092e13f945d8852919ac636",
                "md5": "92a1896a7790f300453549da5aad9111",
                "sha256": "4bd3e488b447046e386a30f07af05f9b38d3d368d1f7b4d8f7e10af85393db97"
            },
            "downloads": -1,
            "filename": "httptools-0.6.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "92a1896a7790f300453549da5aad9111",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8.0",
            "size": 360848,
            "upload_time": "2023-10-16T17:42:18",
            "upload_time_iso_8601": "2023-10-16T17:42:18.355244Z",
            "url": "https://files.pythonhosted.org/packages/a0/f8/199e857258b4310b439431ec0c34515846dab092e13f945d8852919ac636/httptools-0.6.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c84d1e14e818a086ce800a57c5025707ecbc66083921754b77f5e41879e132cd",
                "md5": "721b134121b9cb74d87f1eac9bf18244",
                "sha256": "fe467eb086d80217b7584e61313ebadc8d187a4d95bb62031b7bab4b205c3ba3"
            },
            "downloads": -1,
            "filename": "httptools-0.6.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "721b134121b9cb74d87f1eac9bf18244",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8.0",
            "size": 354392,
            "upload_time": "2023-10-16T17:42:20",
            "upload_time_iso_8601": "2023-10-16T17:42:20.681358Z",
            "url": "https://files.pythonhosted.org/packages/c8/4d/1e14e818a086ce800a57c5025707ecbc66083921754b77f5e41879e132cd/httptools-0.6.1-cp38-cp38-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": "4cb89494a21832eea0d7429fb1d5948fdf3ea490d7b3fe32fc3d6e63f54b9aed",
                "md5": "7fc00dc93c996d3e2508872aeb1429e6",
                "sha256": "3c3b214ce057c54675b00108ac42bacf2ab8f85c58e3f324a4e963bbc46424f4"
            },
            "downloads": -1,
            "filename": "httptools-0.6.1-cp38-cp38-musllinux_1_1_aarch64.whl",
            "has_sig": false,
            "md5_digest": "7fc00dc93c996d3e2508872aeb1429e6",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8.0",
            "size": 383801,
            "upload_time": "2023-10-16T17:42:22",
            "upload_time_iso_8601": "2023-10-16T17:42:22.157472Z",
            "url": "https://files.pythonhosted.org/packages/4c/b8/9494a21832eea0d7429fb1d5948fdf3ea490d7b3fe32fc3d6e63f54b9aed/httptools-0.6.1-cp38-cp38-musllinux_1_1_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "56a9bb66e122917639ea3b419d64e4ab5ec1f9353c3a56cc3dee063260375d47",
                "md5": "e4ecab1e9920631466767a02545ecfac",
                "sha256": "8ae5b97f690badd2ca27cbf668494ee1b6d34cf1c464271ef7bfa9ca6b83ffaf"
            },
            "downloads": -1,
            "filename": "httptools-0.6.1-cp38-cp38-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "e4ecab1e9920631466767a02545ecfac",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8.0",
            "size": 375408,
            "upload_time": "2023-10-16T17:42:23",
            "upload_time_iso_8601": "2023-10-16T17:42:23.486867Z",
            "url": "https://files.pythonhosted.org/packages/56/a9/bb66e122917639ea3b419d64e4ab5ec1f9353c3a56cc3dee063260375d47/httptools-0.6.1-cp38-cp38-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "5ecc6dbced1d801ce1370d04117510b6d3f824f63392cfa6585077caec55ee16",
                "md5": "98cc4947cafeaa5a59efa18d67638622",
                "sha256": "405784577ba6540fa7d6ff49e37daf104e04f4b4ff2d1ac0469eaa6a20fde084"
            },
            "downloads": -1,
            "filename": "httptools-0.6.1-cp38-cp38-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "98cc4947cafeaa5a59efa18d67638622",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8.0",
            "size": 60174,
            "upload_time": "2023-10-16T17:42:24",
            "upload_time_iso_8601": "2023-10-16T17:42:24.779046Z",
            "url": "https://files.pythonhosted.org/packages/5e/cc/6dbced1d801ce1370d04117510b6d3f824f63392cfa6585077caec55ee16/httptools-0.6.1-cp38-cp38-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "02bae7c6040bd3b5e46c17dcf84c8c667e3e2fb4a1ac7bec92d925fc0a35fb96",
                "md5": "140f632336d653695dedeacecce2f81f",
                "sha256": "95fb92dd3649f9cb139e9c56604cc2d7c7bf0fc2e7c8d7fbd58f96e35eddd2a3"
            },
            "downloads": -1,
            "filename": "httptools-0.6.1-cp39-cp39-macosx_10_9_universal2.whl",
            "has_sig": false,
            "md5_digest": "140f632336d653695dedeacecce2f81f",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8.0",
            "size": 152871,
            "upload_time": "2023-10-16T17:42:26",
            "upload_time_iso_8601": "2023-10-16T17:42:26.198801Z",
            "url": "https://files.pythonhosted.org/packages/02/ba/e7c6040bd3b5e46c17dcf84c8c667e3e2fb4a1ac7bec92d925fc0a35fb96/httptools-0.6.1-cp39-cp39-macosx_10_9_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "53d3968ab0568634f226ed20d82131c0304550fa2d60088a3699281ea8f4b34d",
                "md5": "67150c3283810437d1ab72394cd2ffe8",
                "sha256": "dcbab042cc3ef272adc11220517278519adf8f53fd3056d0e68f0a6f891ba94e"
            },
            "downloads": -1,
            "filename": "httptools-0.6.1-cp39-cp39-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "67150c3283810437d1ab72394cd2ffe8",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8.0",
            "size": 79137,
            "upload_time": "2023-10-16T17:42:27",
            "upload_time_iso_8601": "2023-10-16T17:42:27.454525Z",
            "url": "https://files.pythonhosted.org/packages/53/d3/968ab0568634f226ed20d82131c0304550fa2d60088a3699281ea8f4b34d/httptools-0.6.1-cp39-cp39-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "69450f5014fa50f923599fead11e001e23fb210a1f82dddc1afbf00db20ff4ff",
                "md5": "df2181f96cead2d7ccc58c80604d3a40",
                "sha256": "0cf2372e98406efb42e93bfe10f2948e467edfd792b015f1b4ecd897903d3e8d"
            },
            "downloads": -1,
            "filename": "httptools-0.6.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "df2181f96cead2d7ccc58c80604d3a40",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8.0",
            "size": 351164,
            "upload_time": "2023-10-16T17:42:28",
            "upload_time_iso_8601": "2023-10-16T17:42:28.891810Z",
            "url": "https://files.pythonhosted.org/packages/69/45/0f5014fa50f923599fead11e001e23fb210a1f82dddc1afbf00db20ff4ff/httptools-0.6.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "7c58d3728a369eaacd125918469c767e4af00326255db29e5e070433d9f40165",
                "md5": "595eff6a1eb184ef00ef12bb84669b80",
                "sha256": "678fcbae74477a17d103b7cae78b74800d795d702083867ce160fc202104d0da"
            },
            "downloads": -1,
            "filename": "httptools-0.6.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "595eff6a1eb184ef00ef12bb84669b80",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8.0",
            "size": 345180,
            "upload_time": "2023-10-16T17:42:30",
            "upload_time_iso_8601": "2023-10-16T17:42:30.378996Z",
            "url": "https://files.pythonhosted.org/packages/7c/58/d3728a369eaacd125918469c767e4af00326255db29e5e070433d9f40165/httptools-0.6.1-cp39-cp39-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": "59139c253d23e62539922032a967ae06ce16e53c3bba592d4ff63920058f0bbb",
                "md5": "bd979ae0288f2f23e7cd5e1be00dab5f",
                "sha256": "e0b281cf5a125c35f7f6722b65d8542d2e57331be573e9e88bc8b0115c4a7a81"
            },
            "downloads": -1,
            "filename": "httptools-0.6.1-cp39-cp39-musllinux_1_1_aarch64.whl",
            "has_sig": false,
            "md5_digest": "bd979ae0288f2f23e7cd5e1be00dab5f",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8.0",
            "size": 369162,
            "upload_time": "2023-10-16T17:42:31",
            "upload_time_iso_8601": "2023-10-16T17:42:31.852028Z",
            "url": "https://files.pythonhosted.org/packages/59/13/9c253d23e62539922032a967ae06ce16e53c3bba592d4ff63920058f0bbb/httptools-0.6.1-cp39-cp39-musllinux_1_1_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8c0fac82bdc14f5e4bff59a3c3c35fa7a9b7a2f8d983c4d5a33b20e4848b3f14",
                "md5": "ed6b65409fc2fb11105867d90b024f63",
                "sha256": "95658c342529bba4e1d3d2b1a874db16c7cca435e8827422154c9da76ac4e13a"
            },
            "downloads": -1,
            "filename": "httptools-0.6.1-cp39-cp39-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "ed6b65409fc2fb11105867d90b024f63",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8.0",
            "size": 360831,
            "upload_time": "2023-10-16T17:42:33",
            "upload_time_iso_8601": "2023-10-16T17:42:33.427075Z",
            "url": "https://files.pythonhosted.org/packages/8c/0f/ac82bdc14f5e4bff59a3c3c35fa7a9b7a2f8d983c4d5a33b20e4848b3f14/httptools-0.6.1-cp39-cp39-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0a0dca545a8a2831fc3e326fffecab268a2e7775e5ec4d57afc8f5ddc578cbd7",
                "md5": "6f6d19649a8eabefbb30bfc9317f27bd",
                "sha256": "7ebaec1bf683e4bf5e9fbb49b8cc36da482033596a415b3e4ebab5a4c0d7ec5e"
            },
            "downloads": -1,
            "filename": "httptools-0.6.1-cp39-cp39-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "6f6d19649a8eabefbb30bfc9317f27bd",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8.0",
            "size": 60238,
            "upload_time": "2023-10-16T17:42:34",
            "upload_time_iso_8601": "2023-10-16T17:42:34.685158Z",
            "url": "https://files.pythonhosted.org/packages/0a/0d/ca545a8a2831fc3e326fffecab268a2e7775e5ec4d57afc8f5ddc578cbd7/httptools-0.6.1-cp39-cp39-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "671dd77686502fced061b3ead1c35a2d70f6b281b5f723c4eff7a2277c04e4a2",
                "md5": "cb8a0c39723c10bdcf8c13d364d60b7c",
                "sha256": "c6e26c30455600b95d94b1b836085138e82f177351454ee841c148f93a9bad5a"
            },
            "downloads": -1,
            "filename": "httptools-0.6.1.tar.gz",
            "has_sig": false,
            "md5_digest": "cb8a0c39723c10bdcf8c13d364d60b7c",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8.0",
            "size": 191228,
            "upload_time": "2023-10-16T17:42:36",
            "upload_time_iso_8601": "2023-10-16T17:42:36.003463Z",
            "url": "https://files.pythonhosted.org/packages/67/1d/d77686502fced061b3ead1c35a2d70f6b281b5f723c4eff7a2277c04e4a2/httptools-0.6.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-10-16 17:42:36",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "MagicStack",
    "github_project": "httptools",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "httptools"
}
        
Elapsed time: 0.15225s