asgi-tools


Nameasgi-tools JSON
Version 0.76.0 PyPI version JSON
download
home_page
SummaryASGI Toolkit to build web applications
upload_time2023-10-04 16:29:19
maintainer
docs_urlNone
author
requires_python>=3.8
licenseMIT License
keywords asgi asgi-tools request response asyncio trio
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            .. image:: https://raw.githubusercontent.com/klen/asgi-tools/develop/.github/assets/asgi-tools.png
   :height: 100

.. _description:

**asgi-tools** -- Is a really lightweight ASGI_ Toolkit to build ASGI applications faster.

.. _badges:

.. image:: https://github.com/klen/asgi-tools/workflows/tests/badge.svg
    :target: https://github.com/klen/asgi-tools/actions
    :alt: Tests Status

.. image:: https://github.com/klen/asgi-tools/workflows/docs/badge.svg
    :target: https://klen.github.io/asgi-tools
    :alt: Documentation Status

.. image:: https://img.shields.io/pypi/v/asgi-tools
    :target: https://pypi.org/project/asgi-tools/
    :alt: PYPI Version

.. image:: https://img.shields.io/pypi/pyversions/asgi-tools
    :target: https://pypi.org/project/asgi-tools/
    :alt: Python Versions

----------

.. _documentation:

**Documentation is here**: https://klen.github.io/asgi-tools

ASGI-Tools is designed to be used as an ASGI Toolkit to quickly build really
lightweight ASGI applications/middlewares/tools.

For instance these middlewares were built with the library:

* `ASGI-Sessions <https://github.com/klen/asgi-sessions>`_
* `ASGI-Babel <https://github.com/klen/asgi-babel>`_
* `ASGI-Prometheus <https://github.com/klen/asgi-prometheus>`_

.. _features:

**Features:**

- Supports all most popular async python libraries: `Asyncio`_, `Trio`_ and Curio_
- `Request`_                 -- Parse ASGI scope, get url, headers, cookies, read a request's data/json/form-data
- `Response`_                -- Send HTTP (text, html, json, stream, sse, file, http errors) responses
- `ResponseWebsocket`_       -- Work with websockets
- `RequestMiddleware`_       -- Parse a scope and insert the parsed request into the scope
- `ResponseMiddleware`_      -- Parse responses and convert them into ASGI messages
- `RouterMiddleware`_        -- Route HTTP requests
- `LifespanMiddleware`_      -- Process a lifespan cycle
- `StaticFilesMiddleware`_   -- Serve static files from URL prefixes
- `asgi_tools.tests.TestClient <https://klen.github.io/asgi-tools/api.html#testclient>`_ -- A test client with websockets support to test asgi applications
- `App`_                     -- A simple foundation for ASGI apps

.. _contents:

.. contents::

.. _requirements:

Requirements
=============

- python >= 3.8

.. note:: pypy3 is also supported

**ASGI-Tools** belongs to the category of ASGI_ web frameworks, so it requires
an ASGI HTTP server to run, such as uvicorn_, daphne_, or hypercorn_.

.. _installation:

Installation
=============

**asgi-tools** should be installed using pip: ::

    pip install asgi-tools

A Quick Example
===============

You can use any of ASGI-Tools components independently.

Dispite this ASGI-Tools contains App_ helper to quickly build ASGI
applications. For instance:

Save this to ``app.py``.

.. code-block:: python

    from asgi_tools import App

    app = App()

    @app.route('/')
    async def hello(request):
        return "Hello World!"

Run it with `uvicorn`

.. code-block:: sh

   $ uvicorn app:app


.. _bugtracker:

Bug tracker
===========

If you have any suggestions, bug reports or
annoyances please report them to the issue tracker
at https://github.com/klen/asgi-tools/issues

.. _contributing:

Contributing
============

Development of the project happens at: https://github.com/klen/asgi-tools

.. _license:

License
========

Licensed under a `MIT license`_.


.. _links:

.. _ASGI: https://asgi.readthedocs.io/en/latest/
.. _Asyncio: https://docs.python.org/3/library/asyncio.html
.. _Curio: https://curio.readthedocs.io/en/latest/
.. _MIT license: http://opensource.org/licenses/MIT
.. _Trio: https://trio.readthedocs.io/en/stable/index.html
.. _klen: https://github.com/klen
.. _uvicorn: http://www.uvicorn.org/
.. _daphne: https://github.com/django/daphne/
.. _hypercorn: https://pgjones.gitlab.io/hypercorn/

.. _Request: https://klen.github.io/asgi-tools/api.html#request
.. _Response: https://klen.github.io/asgi-tools/api.html#responses
.. _ResponseWebSocket: https://klen.github.io/asgi-tools/api.html#responsewebsocket
.. _RequestMiddleware: https://klen.github.io/asgi-tools/api.html#requestmiddleware
.. _ResponseMiddleware: https://klen.github.io/asgi-tools/api.html#responsemiddleware
.. _LifespanMiddleware: https://klen.github.io/asgi-tools/api.html#lifespanmiddleware
.. _StaticFilesMiddleware: https://klen.github.io/asgi-tools/api.html#staticfilesmiddleware
.. _RouterMiddleware: https://klen.github.io/asgi-tools/api.html#routermiddleware
.. _App: https://klen.github.io/asgi-tools/api.html#application

            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "asgi-tools",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": "",
    "keywords": "asgi,asgi-tools,request,response,asyncio,trio",
    "author": "",
    "author_email": "Kirill Klenov <horneds@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/52/8c/00a28df1ac5eb7d8855ad5fbf6eccab664a0da3c9439e04724611ed3521c/asgi-tools-0.76.0.tar.gz",
    "platform": null,
    "description": ".. image:: https://raw.githubusercontent.com/klen/asgi-tools/develop/.github/assets/asgi-tools.png\n   :height: 100\n\n.. _description:\n\n**asgi-tools** -- Is a really lightweight ASGI_ Toolkit to build ASGI applications faster.\n\n.. _badges:\n\n.. image:: https://github.com/klen/asgi-tools/workflows/tests/badge.svg\n    :target: https://github.com/klen/asgi-tools/actions\n    :alt: Tests Status\n\n.. image:: https://github.com/klen/asgi-tools/workflows/docs/badge.svg\n    :target: https://klen.github.io/asgi-tools\n    :alt: Documentation Status\n\n.. image:: https://img.shields.io/pypi/v/asgi-tools\n    :target: https://pypi.org/project/asgi-tools/\n    :alt: PYPI Version\n\n.. image:: https://img.shields.io/pypi/pyversions/asgi-tools\n    :target: https://pypi.org/project/asgi-tools/\n    :alt: Python Versions\n\n----------\n\n.. _documentation:\n\n**Documentation is here**: https://klen.github.io/asgi-tools\n\nASGI-Tools is designed to be used as an ASGI Toolkit to quickly build really\nlightweight ASGI applications/middlewares/tools.\n\nFor instance these middlewares were built with the library:\n\n* `ASGI-Sessions <https://github.com/klen/asgi-sessions>`_\n* `ASGI-Babel <https://github.com/klen/asgi-babel>`_\n* `ASGI-Prometheus <https://github.com/klen/asgi-prometheus>`_\n\n.. _features:\n\n**Features:**\n\n- Supports all most popular async python libraries: `Asyncio`_, `Trio`_ and Curio_\n- `Request`_                 -- Parse ASGI scope, get url, headers, cookies, read a request's data/json/form-data\n- `Response`_                -- Send HTTP (text, html, json, stream, sse, file, http errors) responses\n- `ResponseWebsocket`_       -- Work with websockets\n- `RequestMiddleware`_       -- Parse a scope and insert the parsed request into the scope\n- `ResponseMiddleware`_      -- Parse responses and convert them into ASGI messages\n- `RouterMiddleware`_        -- Route HTTP requests\n- `LifespanMiddleware`_      -- Process a lifespan cycle\n- `StaticFilesMiddleware`_   -- Serve static files from URL prefixes\n- `asgi_tools.tests.TestClient <https://klen.github.io/asgi-tools/api.html#testclient>`_ -- A test client with websockets support to test asgi applications\n- `App`_                     -- A simple foundation for ASGI apps\n\n.. _contents:\n\n.. contents::\n\n.. _requirements:\n\nRequirements\n=============\n\n- python >= 3.8\n\n.. note:: pypy3 is also supported\n\n**ASGI-Tools** belongs to the category of ASGI_ web frameworks, so it requires\nan ASGI HTTP server to run, such as uvicorn_, daphne_, or hypercorn_.\n\n.. _installation:\n\nInstallation\n=============\n\n**asgi-tools** should be installed using pip: ::\n\n    pip install asgi-tools\n\nA Quick Example\n===============\n\nYou can use any of ASGI-Tools components independently.\n\nDispite this ASGI-Tools contains App_ helper to quickly build ASGI\napplications. For instance:\n\nSave this to ``app.py``.\n\n.. code-block:: python\n\n    from asgi_tools import App\n\n    app = App()\n\n    @app.route('/')\n    async def hello(request):\n        return \"Hello World!\"\n\nRun it with `uvicorn`\n\n.. code-block:: sh\n\n   $ uvicorn app:app\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/asgi-tools/issues\n\n.. _contributing:\n\nContributing\n============\n\nDevelopment of the project happens at: https://github.com/klen/asgi-tools\n\n.. _license:\n\nLicense\n========\n\nLicensed under a `MIT license`_.\n\n\n.. _links:\n\n.. _ASGI: https://asgi.readthedocs.io/en/latest/\n.. _Asyncio: https://docs.python.org/3/library/asyncio.html\n.. _Curio: https://curio.readthedocs.io/en/latest/\n.. _MIT license: http://opensource.org/licenses/MIT\n.. _Trio: https://trio.readthedocs.io/en/stable/index.html\n.. _klen: https://github.com/klen\n.. _uvicorn: http://www.uvicorn.org/\n.. _daphne: https://github.com/django/daphne/\n.. _hypercorn: https://pgjones.gitlab.io/hypercorn/\n\n.. _Request: https://klen.github.io/asgi-tools/api.html#request\n.. _Response: https://klen.github.io/asgi-tools/api.html#responses\n.. _ResponseWebSocket: https://klen.github.io/asgi-tools/api.html#responsewebsocket\n.. _RequestMiddleware: https://klen.github.io/asgi-tools/api.html#requestmiddleware\n.. _ResponseMiddleware: https://klen.github.io/asgi-tools/api.html#responsemiddleware\n.. _LifespanMiddleware: https://klen.github.io/asgi-tools/api.html#lifespanmiddleware\n.. _StaticFilesMiddleware: https://klen.github.io/asgi-tools/api.html#staticfilesmiddleware\n.. _RouterMiddleware: https://klen.github.io/asgi-tools/api.html#routermiddleware\n.. _App: https://klen.github.io/asgi-tools/api.html#application\n",
    "bugtrack_url": null,
    "license": "MIT License",
    "summary": "ASGI Toolkit to build web applications",
    "version": "0.76.0",
    "project_urls": {
        "documentation": "https://klen.github.io/asgi-tools",
        "homepage": "https://github.com/klen/asgi-tools",
        "repository": "https://github.com/klen/asgi-tools"
    },
    "split_keywords": [
        "asgi",
        "asgi-tools",
        "request",
        "response",
        "asyncio",
        "trio"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "5c73e64224806a7f8760e049ff1054de042bf2ca74e90a1f1c95b00c0c816868",
                "md5": "f28a9a501554fd0470619d3a72e5c67f",
                "sha256": "fcf736deb7bf1b99e6d81894c99fd00e35f1c2851adf1db6eb7d0911dfbbb121"
            },
            "downloads": -1,
            "filename": "asgi_tools-0.76.0-cp310-cp310-macosx_10_9_universal2.whl",
            "has_sig": false,
            "md5_digest": "f28a9a501554fd0470619d3a72e5c67f",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 490313,
            "upload_time": "2023-10-04T16:28:29",
            "upload_time_iso_8601": "2023-10-04T16:28:29.520400Z",
            "url": "https://files.pythonhosted.org/packages/5c/73/e64224806a7f8760e049ff1054de042bf2ca74e90a1f1c95b00c0c816868/asgi_tools-0.76.0-cp310-cp310-macosx_10_9_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3523f76eee482dc32cf356e87f2392ced72f9ea291336b0890418ceb06a78f71",
                "md5": "f8d02d9a458478ae86dd71b06a1b83a9",
                "sha256": "5feb459a1d03bf0d278cba971206a7243a55a122575945c230fa276b33fd08ae"
            },
            "downloads": -1,
            "filename": "asgi_tools-0.76.0-cp310-cp310-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "f8d02d9a458478ae86dd71b06a1b83a9",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 373706,
            "upload_time": "2023-10-04T16:28:32",
            "upload_time_iso_8601": "2023-10-04T16:28:32.014605Z",
            "url": "https://files.pythonhosted.org/packages/35/23/f76eee482dc32cf356e87f2392ced72f9ea291336b0890418ceb06a78f71/asgi_tools-0.76.0-cp310-cp310-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "bb43b5947bbcb6bc1a5bfc401f8b7189efc574696b46b0831d5f2640f68aa420",
                "md5": "57c49bb9aae784cca7d8ad8cca51f176",
                "sha256": "c3e3cba07f89ac41bb7dfb1bcb9fed7127a02146924c12602d6141aecb8ba9fe"
            },
            "downloads": -1,
            "filename": "asgi_tools-0.76.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "57c49bb9aae784cca7d8ad8cca51f176",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 945713,
            "upload_time": "2023-10-04T16:28:34",
            "upload_time_iso_8601": "2023-10-04T16:28:34.131640Z",
            "url": "https://files.pythonhosted.org/packages/bb/43/b5947bbcb6bc1a5bfc401f8b7189efc574696b46b0831d5f2640f68aa420/asgi_tools-0.76.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c9f575f19b3ed51fb9a794df15da5f5dc49b98db054aadef1ec3aff547fece48",
                "md5": "a33c9e959049b4cba97b3f352fefc0a0",
                "sha256": "3941e52a85c11118f84815d351f136c5d2e18123e751e5c9ee6486b7622ffcbd"
            },
            "downloads": -1,
            "filename": "asgi_tools-0.76.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "a33c9e959049b4cba97b3f352fefc0a0",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 951527,
            "upload_time": "2023-10-04T16:28:36",
            "upload_time_iso_8601": "2023-10-04T16:28:36.309285Z",
            "url": "https://files.pythonhosted.org/packages/c9/f5/75f19b3ed51fb9a794df15da5f5dc49b98db054aadef1ec3aff547fece48/asgi_tools-0.76.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3bbe3cdeb364884a4a3c2399f9a33fcdd2798f235fde8eeae9a7f76ea7f8d1b8",
                "md5": "9ada4b513c3deb06acfc986c66a28f32",
                "sha256": "b082efecda027949841db7a5e2a724f04bcc538acde9d8bf87c0eca60d95f310"
            },
            "downloads": -1,
            "filename": "asgi_tools-0.76.0-cp310-cp310-musllinux_1_1_aarch64.whl",
            "has_sig": false,
            "md5_digest": "9ada4b513c3deb06acfc986c66a28f32",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 953747,
            "upload_time": "2023-10-04T16:28:37",
            "upload_time_iso_8601": "2023-10-04T16:28:37.810322Z",
            "url": "https://files.pythonhosted.org/packages/3b/be/3cdeb364884a4a3c2399f9a33fcdd2798f235fde8eeae9a7f76ea7f8d1b8/asgi_tools-0.76.0-cp310-cp310-musllinux_1_1_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b6129368ea0f302b78aab55b5c0c3bd74d58f092cfa1b88a392de810733e31fd",
                "md5": "b40a8fff4726a90afe84c4a5d3c32980",
                "sha256": "49ba2a4281bc2eec984e967583383e35d4b3d5481123c9ba4bf78d35712c3ff5"
            },
            "downloads": -1,
            "filename": "asgi_tools-0.76.0-cp310-cp310-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "b40a8fff4726a90afe84c4a5d3c32980",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 962549,
            "upload_time": "2023-10-04T16:28:40",
            "upload_time_iso_8601": "2023-10-04T16:28:40.048986Z",
            "url": "https://files.pythonhosted.org/packages/b6/12/9368ea0f302b78aab55b5c0c3bd74d58f092cfa1b88a392de810733e31fd/asgi_tools-0.76.0-cp310-cp310-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0662b295f317d385308a2627b7c435029df45b85af9f267ef358a8e2585d9e2a",
                "md5": "448d974fdbda6ff9ad7a045819e48029",
                "sha256": "61c216b6053a62ed871c95c92df416f97fd7425453ad742515b61ade1d7ac962"
            },
            "downloads": -1,
            "filename": "asgi_tools-0.76.0-cp310-cp310-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "448d974fdbda6ff9ad7a045819e48029",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 357544,
            "upload_time": "2023-10-04T16:28:42",
            "upload_time_iso_8601": "2023-10-04T16:28:42.363463Z",
            "url": "https://files.pythonhosted.org/packages/06/62/b295f317d385308a2627b7c435029df45b85af9f267ef358a8e2585d9e2a/asgi_tools-0.76.0-cp310-cp310-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "04571184e8b662a696aef7db50479e6b81eea878e7ff8c32ea17be265bae4f20",
                "md5": "9244d673f629662e9f0f2177a90db7c0",
                "sha256": "ddfbf889536c893d070a07b296454d54d7c6ed95424d4bae54b7c079a24bc540"
            },
            "downloads": -1,
            "filename": "asgi_tools-0.76.0-cp311-cp311-macosx_10_9_universal2.whl",
            "has_sig": false,
            "md5_digest": "9244d673f629662e9f0f2177a90db7c0",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 492048,
            "upload_time": "2023-10-04T16:28:44",
            "upload_time_iso_8601": "2023-10-04T16:28:44.236761Z",
            "url": "https://files.pythonhosted.org/packages/04/57/1184e8b662a696aef7db50479e6b81eea878e7ff8c32ea17be265bae4f20/asgi_tools-0.76.0-cp311-cp311-macosx_10_9_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c8099338692e5c57dc584f467c32503fc9161062ffb0471803e6143cb9726cd9",
                "md5": "a68eb4c90fbd6e2dd8d84c2d11e038e6",
                "sha256": "0fa294c6e93761db6337cf485c2a20ab1bf874dba7c47592602d98c22d545dfb"
            },
            "downloads": -1,
            "filename": "asgi_tools-0.76.0-cp311-cp311-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "a68eb4c90fbd6e2dd8d84c2d11e038e6",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 374788,
            "upload_time": "2023-10-04T16:28:46",
            "upload_time_iso_8601": "2023-10-04T16:28:46.044124Z",
            "url": "https://files.pythonhosted.org/packages/c8/09/9338692e5c57dc584f467c32503fc9161062ffb0471803e6143cb9726cd9/asgi_tools-0.76.0-cp311-cp311-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "9bbf4f29ba3398c226347b8639fa34325307e3f92478384da3d761ac6ff87073",
                "md5": "788f9811bcd7e13b9b6d373a17af23ef",
                "sha256": "49b00c37bf9539d8852cb8e5c5ed0e91eedfb930155bd159cb4a8f896a9066ad"
            },
            "downloads": -1,
            "filename": "asgi_tools-0.76.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "788f9811bcd7e13b9b6d373a17af23ef",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 1017671,
            "upload_time": "2023-10-04T16:28:48",
            "upload_time_iso_8601": "2023-10-04T16:28:48.177941Z",
            "url": "https://files.pythonhosted.org/packages/9b/bf/4f29ba3398c226347b8639fa34325307e3f92478384da3d761ac6ff87073/asgi_tools-0.76.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3fe7f1e2f108e6f97d8f757eb8dabbb9758925a8241b0e74c9bcdc0b58045794",
                "md5": "999a8bc5e615da34a01c01330fcf0063",
                "sha256": "e08b9b381876df9881780b2f0b2c021d70e1fe366f22ad46fc219e9e557b4b98"
            },
            "downloads": -1,
            "filename": "asgi_tools-0.76.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "999a8bc5e615da34a01c01330fcf0063",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 1025178,
            "upload_time": "2023-10-04T16:28:49",
            "upload_time_iso_8601": "2023-10-04T16:28:49.731470Z",
            "url": "https://files.pythonhosted.org/packages/3f/e7/f1e2f108e6f97d8f757eb8dabbb9758925a8241b0e74c9bcdc0b58045794/asgi_tools-0.76.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0b195b5c508ddc56c22fdc9c2005165e0f3b8643477d4d92eb988b6ba83a1d0a",
                "md5": "6e7d60e14fb601cdcde027dc9710551f",
                "sha256": "24a4736e9d7acfc560d04d60ef707f88bde5260cf4bbb8a14244c8b81f629896"
            },
            "downloads": -1,
            "filename": "asgi_tools-0.76.0-cp311-cp311-musllinux_1_1_aarch64.whl",
            "has_sig": false,
            "md5_digest": "6e7d60e14fb601cdcde027dc9710551f",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 1020896,
            "upload_time": "2023-10-04T16:28:51",
            "upload_time_iso_8601": "2023-10-04T16:28:51.329660Z",
            "url": "https://files.pythonhosted.org/packages/0b/19/5b5c508ddc56c22fdc9c2005165e0f3b8643477d4d92eb988b6ba83a1d0a/asgi_tools-0.76.0-cp311-cp311-musllinux_1_1_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b01f7b788be2d176c152d5f4122608407802e2d8bf3d81b775735480f5309cdf",
                "md5": "94ba2cde8c86f6c707f2df66e1611e07",
                "sha256": "c32b0f4faf0a6021cc897c1a1284334b8370c87015a869d2507e25e56b8cc69b"
            },
            "downloads": -1,
            "filename": "asgi_tools-0.76.0-cp311-cp311-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "94ba2cde8c86f6c707f2df66e1611e07",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 1029070,
            "upload_time": "2023-10-04T16:28:52",
            "upload_time_iso_8601": "2023-10-04T16:28:52.617035Z",
            "url": "https://files.pythonhosted.org/packages/b0/1f/7b788be2d176c152d5f4122608407802e2d8bf3d81b775735480f5309cdf/asgi_tools-0.76.0-cp311-cp311-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "70811240d225b319fc63f3da7fdfb52de9fabe6660fbad29ed11e5cdcfc4b937",
                "md5": "f56f9be72e26b7db573813d3d0f289c9",
                "sha256": "592d176990006c83ea60d3b1cd15f97e83c37476e90704846eeb296272bdd318"
            },
            "downloads": -1,
            "filename": "asgi_tools-0.76.0-cp311-cp311-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "f56f9be72e26b7db573813d3d0f289c9",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 357945,
            "upload_time": "2023-10-04T16:28:53",
            "upload_time_iso_8601": "2023-10-04T16:28:53.936267Z",
            "url": "https://files.pythonhosted.org/packages/70/81/1240d225b319fc63f3da7fdfb52de9fabe6660fbad29ed11e5cdcfc4b937/asgi_tools-0.76.0-cp311-cp311-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "956075ba1d4f22e84ad74c643c1e8731a9c3f7ab73072209916618b115161441",
                "md5": "486f09a19d1556aba6ea86ea6531a165",
                "sha256": "113b0d84105410a78ac50dd5a8a076c234c4156a5eb0f1a4893ec8ac306e9b97"
            },
            "downloads": -1,
            "filename": "asgi_tools-0.76.0-cp38-cp38-macosx_10_9_universal2.whl",
            "has_sig": false,
            "md5_digest": "486f09a19d1556aba6ea86ea6531a165",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 496089,
            "upload_time": "2023-10-04T16:28:55",
            "upload_time_iso_8601": "2023-10-04T16:28:55.572035Z",
            "url": "https://files.pythonhosted.org/packages/95/60/75ba1d4f22e84ad74c643c1e8731a9c3f7ab73072209916618b115161441/asgi_tools-0.76.0-cp38-cp38-macosx_10_9_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ef0d0f1713c8adeb7dec57a355dc57aef38818886b45036f70b488ca83bf3af9",
                "md5": "864c31f1bd56a2ecd86ee17eb0cdd57a",
                "sha256": "0592ee764c71df9a0b1ef4479376ff7bf591d9dead9564b5bf4624351894bf1d"
            },
            "downloads": -1,
            "filename": "asgi_tools-0.76.0-cp38-cp38-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "864c31f1bd56a2ecd86ee17eb0cdd57a",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 376586,
            "upload_time": "2023-10-04T16:28:57",
            "upload_time_iso_8601": "2023-10-04T16:28:57.434224Z",
            "url": "https://files.pythonhosted.org/packages/ef/0d/0f1713c8adeb7dec57a355dc57aef38818886b45036f70b488ca83bf3af9/asgi_tools-0.76.0-cp38-cp38-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "865addadb4e85d06f01f95c4ce92a9d254933c8d2dfd2b2aecb4a1bbd8fb0521",
                "md5": "1374e96454f29a8edbec48b61a04a108",
                "sha256": "877db6b88e08c685659aa4b59cb002f2c366e8e7eb2f84cacf88032b53fc23cd"
            },
            "downloads": -1,
            "filename": "asgi_tools-0.76.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "1374e96454f29a8edbec48b61a04a108",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 953914,
            "upload_time": "2023-10-04T16:28:59",
            "upload_time_iso_8601": "2023-10-04T16:28:59.088843Z",
            "url": "https://files.pythonhosted.org/packages/86/5a/ddadb4e85d06f01f95c4ce92a9d254933c8d2dfd2b2aecb4a1bbd8fb0521/asgi_tools-0.76.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8d2c44d529559cbfe1e46e7f7caf7950b8eec64b260da51958c2a1dfa7c074e0",
                "md5": "aff84259811c5f06c27c5ea47c9c9192",
                "sha256": "306077e705bd6d53acae375b2e42e74bc90cb878c5bdd57c6b64382872ccf484"
            },
            "downloads": -1,
            "filename": "asgi_tools-0.76.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "aff84259811c5f06c27c5ea47c9c9192",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 963939,
            "upload_time": "2023-10-04T16:29:00",
            "upload_time_iso_8601": "2023-10-04T16:29:00.711461Z",
            "url": "https://files.pythonhosted.org/packages/8d/2c/44d529559cbfe1e46e7f7caf7950b8eec64b260da51958c2a1dfa7c074e0/asgi_tools-0.76.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "1a41e411bab5523aa5fab73ba2094e3c48fcd302e8451acc3d4f33b40009b27b",
                "md5": "f7e152cebbfa01f1f19240bd92ec4bca",
                "sha256": "85c45041b680aaeebac6ca571c65386d8c3a66b84a2f54f08cdff6a097f89cb2"
            },
            "downloads": -1,
            "filename": "asgi_tools-0.76.0-cp38-cp38-musllinux_1_1_aarch64.whl",
            "has_sig": false,
            "md5_digest": "f7e152cebbfa01f1f19240bd92ec4bca",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 984883,
            "upload_time": "2023-10-04T16:29:02",
            "upload_time_iso_8601": "2023-10-04T16:29:02.343771Z",
            "url": "https://files.pythonhosted.org/packages/1a/41/e411bab5523aa5fab73ba2094e3c48fcd302e8451acc3d4f33b40009b27b/asgi_tools-0.76.0-cp38-cp38-musllinux_1_1_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2a9faf043767037a1cf43a74647e6bf1a98044bf3b845c6126eb63f8e316903a",
                "md5": "83d7f541d764b82d4c22f577f1fec344",
                "sha256": "40fe59b5d6d6c1b61f66819b985bd0a98bb9fabe4b3963d7c2bfebb7114da911"
            },
            "downloads": -1,
            "filename": "asgi_tools-0.76.0-cp38-cp38-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "83d7f541d764b82d4c22f577f1fec344",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 995240,
            "upload_time": "2023-10-04T16:29:04",
            "upload_time_iso_8601": "2023-10-04T16:29:04.009883Z",
            "url": "https://files.pythonhosted.org/packages/2a/9f/af043767037a1cf43a74647e6bf1a98044bf3b845c6126eb63f8e316903a/asgi_tools-0.76.0-cp38-cp38-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "472d45df60ddc67aea369f592f3cd58dd331e88de3c45e62fe5b6b2860e9ef91",
                "md5": "e5d72f85ca55554432ad0efa894d0c29",
                "sha256": "1c954b09a32c7db621ec826ebd83cf1cd04a1533289b89679d188936b1757c4e"
            },
            "downloads": -1,
            "filename": "asgi_tools-0.76.0-cp38-cp38-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "e5d72f85ca55554432ad0efa894d0c29",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 358341,
            "upload_time": "2023-10-04T16:29:05",
            "upload_time_iso_8601": "2023-10-04T16:29:05.399259Z",
            "url": "https://files.pythonhosted.org/packages/47/2d/45df60ddc67aea369f592f3cd58dd331e88de3c45e62fe5b6b2860e9ef91/asgi_tools-0.76.0-cp38-cp38-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b8e2c16533376d8563363614624684ebfab3ffe81a53b0e45de04729e37a4cf3",
                "md5": "a967f42610ef5ad0fa909c7ebc2b6bc2",
                "sha256": "0d7cac6c9202f63f332e92775a327356517efd61fcc682269c68b3c145eae4dd"
            },
            "downloads": -1,
            "filename": "asgi_tools-0.76.0-cp39-cp39-macosx_10_9_universal2.whl",
            "has_sig": false,
            "md5_digest": "a967f42610ef5ad0fa909c7ebc2b6bc2",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 492197,
            "upload_time": "2023-10-04T16:29:06",
            "upload_time_iso_8601": "2023-10-04T16:29:06.665078Z",
            "url": "https://files.pythonhosted.org/packages/b8/e2/c16533376d8563363614624684ebfab3ffe81a53b0e45de04729e37a4cf3/asgi_tools-0.76.0-cp39-cp39-macosx_10_9_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "24110e80cc1cd59dee8c4ffbd0b7f73b2fba0f9c59e0fd76c2c5d5d08445c03d",
                "md5": "d261f7f6b3680bfa6a0e40613e847776",
                "sha256": "1df1191143c66120c410a306f1ca887ca191e1fcc66f93b5f92a9c220c869856"
            },
            "downloads": -1,
            "filename": "asgi_tools-0.76.0-cp39-cp39-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "d261f7f6b3680bfa6a0e40613e847776",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 374734,
            "upload_time": "2023-10-04T16:29:08",
            "upload_time_iso_8601": "2023-10-04T16:29:08.634689Z",
            "url": "https://files.pythonhosted.org/packages/24/11/0e80cc1cd59dee8c4ffbd0b7f73b2fba0f9c59e0fd76c2c5d5d08445c03d/asgi_tools-0.76.0-cp39-cp39-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f98e371905c174a6b6ca0d1b7e7e76abcc675c23c09825d864fc71b650c2dd36",
                "md5": "298dbd2ad0638c25f82bd8458454afec",
                "sha256": "213fc906c90203fdf08a5157f6e8db0ad969e809fcf0cc4c627e86386bf6cbfa"
            },
            "downloads": -1,
            "filename": "asgi_tools-0.76.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "298dbd2ad0638c25f82bd8458454afec",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 948054,
            "upload_time": "2023-10-04T16:29:10",
            "upload_time_iso_8601": "2023-10-04T16:29:10.323723Z",
            "url": "https://files.pythonhosted.org/packages/f9/8e/371905c174a6b6ca0d1b7e7e76abcc675c23c09825d864fc71b650c2dd36/asgi_tools-0.76.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "53a8f4bd9d82df74de544dab5fca114d52ab23e32bb0f99856f8bea0f4fefaf5",
                "md5": "a93dba85b459fdb306cd2312e34ce0d3",
                "sha256": "a03f2c0c7772a2c1d900d8b66bbfc92fdf9f3c9314b3cad11dc5c2046703e6d0"
            },
            "downloads": -1,
            "filename": "asgi_tools-0.76.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "a93dba85b459fdb306cd2312e34ce0d3",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 955022,
            "upload_time": "2023-10-04T16:29:11",
            "upload_time_iso_8601": "2023-10-04T16:29:11.718031Z",
            "url": "https://files.pythonhosted.org/packages/53/a8/f4bd9d82df74de544dab5fca114d52ab23e32bb0f99856f8bea0f4fefaf5/asgi_tools-0.76.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "cbcf0d4361bc1b8266c31697f8caee7e6dad13b80ca54fbd6d72ef960d70a962",
                "md5": "27b7b9c6cbd33cb5818f42014960fcdc",
                "sha256": "469f32a1a5b17ad2380e51e2b3ba06c0bcf510de7a6b97b3b9be3ec4e327811e"
            },
            "downloads": -1,
            "filename": "asgi_tools-0.76.0-cp39-cp39-musllinux_1_1_aarch64.whl",
            "has_sig": false,
            "md5_digest": "27b7b9c6cbd33cb5818f42014960fcdc",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 957867,
            "upload_time": "2023-10-04T16:29:13",
            "upload_time_iso_8601": "2023-10-04T16:29:13.713941Z",
            "url": "https://files.pythonhosted.org/packages/cb/cf/0d4361bc1b8266c31697f8caee7e6dad13b80ca54fbd6d72ef960d70a962/asgi_tools-0.76.0-cp39-cp39-musllinux_1_1_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c713797df26262b4d508b6b52eed0e1e535d44c2a0cb7f344ab192009411b973",
                "md5": "4a0d882057e4764cbf23dba034929aca",
                "sha256": "4cb0f30adb0c2208d5ba3700ad7a388b039f363fddfaca32fb221686c4540cbc"
            },
            "downloads": -1,
            "filename": "asgi_tools-0.76.0-cp39-cp39-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "4a0d882057e4764cbf23dba034929aca",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 966047,
            "upload_time": "2023-10-04T16:29:15",
            "upload_time_iso_8601": "2023-10-04T16:29:15.228809Z",
            "url": "https://files.pythonhosted.org/packages/c7/13/797df26262b4d508b6b52eed0e1e535d44c2a0cb7f344ab192009411b973/asgi_tools-0.76.0-cp39-cp39-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "9d2c3034e959c31a14f986d2832fa19a5126ff5e3412246a8706dc12ab58cc77",
                "md5": "2e0b8fbcc8031a49b0743c1b85b632f6",
                "sha256": "454d0808b8b1b5814c95c3e5773988b3dd08976325241e2a904d9f846bae9d47"
            },
            "downloads": -1,
            "filename": "asgi_tools-0.76.0-cp39-cp39-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "2e0b8fbcc8031a49b0743c1b85b632f6",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 358184,
            "upload_time": "2023-10-04T16:29:17",
            "upload_time_iso_8601": "2023-10-04T16:29:17.114175Z",
            "url": "https://files.pythonhosted.org/packages/9d/2c/3034e959c31a14f986d2832fa19a5126ff5e3412246a8706dc12ab58cc77/asgi_tools-0.76.0-cp39-cp39-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "528c00a28df1ac5eb7d8855ad5fbf6eccab664a0da3c9439e04724611ed3521c",
                "md5": "47d860c83e3f7f1e5cf097ee629eba45",
                "sha256": "dc30ae9fff8e16cdd57d34e0c5cba3321ae67989eaa21b3b94ae88876008d217"
            },
            "downloads": -1,
            "filename": "asgi-tools-0.76.0.tar.gz",
            "has_sig": false,
            "md5_digest": "47d860c83e3f7f1e5cf097ee629eba45",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 47632,
            "upload_time": "2023-10-04T16:29:19",
            "upload_time_iso_8601": "2023-10-04T16:29:19.024955Z",
            "url": "https://files.pythonhosted.org/packages/52/8c/00a28df1ac5eb7d8855ad5fbf6eccab664a0da3c9439e04724611ed3521c/asgi-tools-0.76.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-10-04 16:29:19",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "klen",
    "github_project": "asgi-tools",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "asgi-tools"
}
        
Elapsed time: 0.12275s