websockets


Namewebsockets JSON
Version 12.0 PyPI version JSON
download
home_page
SummaryAn implementation of the WebSocket Protocol (RFC 6455 & 7692)
upload_time2023-10-21 14:21:11
maintainer
docs_urlNone
author
requires_python>=3.8
licenseBSD-3-Clause
keywords websocket
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            .. image:: logo/horizontal.svg
   :width: 480px
   :alt: websockets

|licence| |version| |pyversions| |tests| |docs| |openssf|

.. |licence| image:: https://img.shields.io/pypi/l/websockets.svg
    :target: https://pypi.python.org/pypi/websockets

.. |version| image:: https://img.shields.io/pypi/v/websockets.svg
    :target: https://pypi.python.org/pypi/websockets

.. |pyversions| image:: https://img.shields.io/pypi/pyversions/websockets.svg
    :target: https://pypi.python.org/pypi/websockets

.. |tests| image:: https://img.shields.io/github/checks-status/python-websockets/websockets/main?label=tests
   :target: https://github.com/python-websockets/websockets/actions/workflows/tests.yml

.. |docs| image:: https://img.shields.io/readthedocs/websockets.svg
   :target: https://websockets.readthedocs.io/

.. |openssf| image:: https://bestpractices.coreinfrastructure.org/projects/6475/badge
   :target: https://bestpractices.coreinfrastructure.org/projects/6475

What is ``websockets``?
-----------------------

websockets is a library for building WebSocket_ servers and clients in Python
with a focus on correctness, simplicity, robustness, and performance.

.. _WebSocket: https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API

Built on top of ``asyncio``, Python's standard asynchronous I/O framework, the
default implementation provides an elegant coroutine-based API.

An implementation on top of ``threading`` and a Sans-I/O implementation are also
available.

`Documentation is available on Read the Docs. <https://websockets.readthedocs.io/>`_

.. copy-pasted because GitHub doesn't support the include directive

Here's an echo server with the ``asyncio`` API:

.. code:: python

    #!/usr/bin/env python

    import asyncio
    from websockets.server import serve

    async def echo(websocket):
        async for message in websocket:
            await websocket.send(message)

    async def main():
        async with serve(echo, "localhost", 8765):
            await asyncio.Future()  # run forever

    asyncio.run(main())

Here's how a client sends and receives messages with the ``threading`` API:

.. code:: python

    #!/usr/bin/env python

    from websockets.sync.client import connect

    def hello():
        with connect("ws://localhost:8765") as websocket:
            websocket.send("Hello world!")
            message = websocket.recv()
            print(f"Received: {message}")

    hello()


Does that look good?

`Get started with the tutorial! <https://websockets.readthedocs.io/en/stable/intro/index.html>`_

Why should I use ``websockets``?
--------------------------------

The development of ``websockets`` is shaped by four principles:

1. **Correctness**: ``websockets`` is heavily tested for compliance with
   :rfc:`6455`. Continuous integration fails under 100% branch coverage.

2. **Simplicity**: all you need to understand is ``msg = await ws.recv()`` and
   ``await ws.send(msg)``. ``websockets`` takes care of managing connections
   so you can focus on your application.

3. **Robustness**: ``websockets`` is built for production. For example, it was
   the only library to `handle backpressure correctly`_ before the issue
   became widely known in the Python community.

4. **Performance**: memory usage is optimized and configurable. A C extension
   accelerates expensive operations. It's pre-compiled for Linux, macOS and
   Windows and packaged in the wheel format for each system and Python version.

Documentation is a first class concern in the project. Head over to `Read the
Docs`_ and see for yourself.

.. _Read the Docs: https://websockets.readthedocs.io/
.. _handle backpressure correctly: https://vorpus.org/blog/some-thoughts-on-asynchronous-api-design-in-a-post-asyncawait-world/#websocket-servers

Why shouldn't I use ``websockets``?
-----------------------------------

* If you prefer callbacks over coroutines: ``websockets`` was created to
  provide the best coroutine-based API to manage WebSocket connections in
  Python. Pick another library for a callback-based API.

* If you're looking for a mixed HTTP / WebSocket library: ``websockets`` aims
  at being an excellent implementation of :rfc:`6455`: The WebSocket Protocol
  and :rfc:`7692`: Compression Extensions for WebSocket. Its support for HTTP
  is minimal — just enough for an HTTP health check.

  If you want to do both in the same server, look at HTTP frameworks that
  build on top of ``websockets`` to support WebSocket connections, like
  Sanic_.

.. _Sanic: https://sanicframework.org/en/

What else?
----------

Bug reports, patches and suggestions are welcome!

To report a security vulnerability, please use the `Tidelift security
contact`_. Tidelift will coordinate the fix and disclosure.

.. _Tidelift security contact: https://tidelift.com/security

For anything else, please open an issue_ or send a `pull request`_.

.. _issue: https://github.com/python-websockets/websockets/issues/new
.. _pull request: https://github.com/python-websockets/websockets/compare/

Participants must uphold the `Contributor Covenant code of conduct`_.

.. _Contributor Covenant code of conduct: https://github.com/python-websockets/websockets/blob/main/CODE_OF_CONDUCT.md

``websockets`` is released under the `BSD license`_.

.. _BSD license: https://github.com/python-websockets/websockets/blob/main/LICENSE

            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "websockets",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": "",
    "keywords": "WebSocket",
    "author": "",
    "author_email": "Aymeric Augustin <aymeric.augustin@m4x.org>",
    "download_url": "https://files.pythonhosted.org/packages/2e/62/7a7874b7285413c954a4cca3c11fd851f11b2fe5b4ae2d9bee4f6d9bdb10/websockets-12.0.tar.gz",
    "platform": null,
    "description": ".. image:: logo/horizontal.svg\n   :width: 480px\n   :alt: websockets\n\n|licence| |version| |pyversions| |tests| |docs| |openssf|\n\n.. |licence| image:: https://img.shields.io/pypi/l/websockets.svg\n    :target: https://pypi.python.org/pypi/websockets\n\n.. |version| image:: https://img.shields.io/pypi/v/websockets.svg\n    :target: https://pypi.python.org/pypi/websockets\n\n.. |pyversions| image:: https://img.shields.io/pypi/pyversions/websockets.svg\n    :target: https://pypi.python.org/pypi/websockets\n\n.. |tests| image:: https://img.shields.io/github/checks-status/python-websockets/websockets/main?label=tests\n   :target: https://github.com/python-websockets/websockets/actions/workflows/tests.yml\n\n.. |docs| image:: https://img.shields.io/readthedocs/websockets.svg\n   :target: https://websockets.readthedocs.io/\n\n.. |openssf| image:: https://bestpractices.coreinfrastructure.org/projects/6475/badge\n   :target: https://bestpractices.coreinfrastructure.org/projects/6475\n\nWhat is ``websockets``?\n-----------------------\n\nwebsockets is a library for building WebSocket_ servers and clients in Python\nwith a focus on correctness, simplicity, robustness, and performance.\n\n.. _WebSocket: https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API\n\nBuilt on top of ``asyncio``, Python's standard asynchronous I/O framework, the\ndefault implementation provides an elegant coroutine-based API.\n\nAn implementation on top of ``threading`` and a Sans-I/O implementation are also\navailable.\n\n`Documentation is available on Read the Docs. <https://websockets.readthedocs.io/>`_\n\n.. copy-pasted because GitHub doesn't support the include directive\n\nHere's an echo server with the ``asyncio`` API:\n\n.. code:: python\n\n    #!/usr/bin/env python\n\n    import asyncio\n    from websockets.server import serve\n\n    async def echo(websocket):\n        async for message in websocket:\n            await websocket.send(message)\n\n    async def main():\n        async with serve(echo, \"localhost\", 8765):\n            await asyncio.Future()  # run forever\n\n    asyncio.run(main())\n\nHere's how a client sends and receives messages with the ``threading`` API:\n\n.. code:: python\n\n    #!/usr/bin/env python\n\n    from websockets.sync.client import connect\n\n    def hello():\n        with connect(\"ws://localhost:8765\") as websocket:\n            websocket.send(\"Hello world!\")\n            message = websocket.recv()\n            print(f\"Received: {message}\")\n\n    hello()\n\n\nDoes that look good?\n\n`Get started with the tutorial! <https://websockets.readthedocs.io/en/stable/intro/index.html>`_\n\nWhy should I use ``websockets``?\n--------------------------------\n\nThe development of ``websockets`` is shaped by four principles:\n\n1. **Correctness**: ``websockets`` is heavily tested for compliance with\n   :rfc:`6455`. Continuous integration fails under 100% branch coverage.\n\n2. **Simplicity**: all you need to understand is ``msg = await ws.recv()`` and\n   ``await ws.send(msg)``. ``websockets`` takes care of managing connections\n   so you can focus on your application.\n\n3. **Robustness**: ``websockets`` is built for production. For example, it was\n   the only library to `handle backpressure correctly`_ before the issue\n   became widely known in the Python community.\n\n4. **Performance**: memory usage is optimized and configurable. A C extension\n   accelerates expensive operations. It's pre-compiled for Linux, macOS and\n   Windows and packaged in the wheel format for each system and Python version.\n\nDocumentation is a first class concern in the project. Head over to `Read the\nDocs`_ and see for yourself.\n\n.. _Read the Docs: https://websockets.readthedocs.io/\n.. _handle backpressure correctly: https://vorpus.org/blog/some-thoughts-on-asynchronous-api-design-in-a-post-asyncawait-world/#websocket-servers\n\nWhy shouldn't I use ``websockets``?\n-----------------------------------\n\n* If you prefer callbacks over coroutines: ``websockets`` was created to\n  provide the best coroutine-based API to manage WebSocket connections in\n  Python. Pick another library for a callback-based API.\n\n* If you're looking for a mixed HTTP / WebSocket library: ``websockets`` aims\n  at being an excellent implementation of :rfc:`6455`: The WebSocket Protocol\n  and :rfc:`7692`: Compression Extensions for WebSocket. Its support for HTTP\n  is minimal \u2014 just enough for an HTTP health check.\n\n  If you want to do both in the same server, look at HTTP frameworks that\n  build on top of ``websockets`` to support WebSocket connections, like\n  Sanic_.\n\n.. _Sanic: https://sanicframework.org/en/\n\nWhat else?\n----------\n\nBug reports, patches and suggestions are welcome!\n\nTo report a security vulnerability, please use the `Tidelift security\ncontact`_. Tidelift will coordinate the fix and disclosure.\n\n.. _Tidelift security contact: https://tidelift.com/security\n\nFor anything else, please open an issue_ or send a `pull request`_.\n\n.. _issue: https://github.com/python-websockets/websockets/issues/new\n.. _pull request: https://github.com/python-websockets/websockets/compare/\n\nParticipants must uphold the `Contributor Covenant code of conduct`_.\n\n.. _Contributor Covenant code of conduct: https://github.com/python-websockets/websockets/blob/main/CODE_OF_CONDUCT.md\n\n``websockets`` is released under the `BSD license`_.\n\n.. _BSD license: https://github.com/python-websockets/websockets/blob/main/LICENSE\n",
    "bugtrack_url": null,
    "license": "BSD-3-Clause",
    "summary": "An implementation of the WebSocket Protocol (RFC 6455 & 7692)",
    "version": "12.0",
    "project_urls": {
        "Changelog": "https://websockets.readthedocs.io/en/stable/project/changelog.html",
        "Documentation": "https://websockets.readthedocs.io/",
        "Funding": "https://tidelift.com/subscription/pkg/pypi-websockets?utm_source=pypi-websockets&utm_medium=referral&utm_campaign=readme",
        "Homepage": "https://github.com/python-websockets/websockets",
        "Tracker": "https://github.com/python-websockets/websockets/issues"
    },
    "split_keywords": [
        "websocket"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b1b9360b86ded0920a93bff0db4e4b0aa31370b0208ca240b2e98d62aad8d082",
                "md5": "ebf3837eafd99d52197abb7fba1ed302",
                "sha256": "d554236b2a2006e0ce16315c16eaa0d628dab009c33b63ea03f41c6107958374"
            },
            "downloads": -1,
            "filename": "websockets-12.0-cp310-cp310-macosx_10_9_universal2.whl",
            "has_sig": false,
            "md5_digest": "ebf3837eafd99d52197abb7fba1ed302",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 124025,
            "upload_time": "2023-10-21T14:19:28",
            "upload_time_iso_8601": "2023-10-21T14:19:28.387483Z",
            "url": "https://files.pythonhosted.org/packages/b1/b9/360b86ded0920a93bff0db4e4b0aa31370b0208ca240b2e98d62aad8d082/websockets-12.0-cp310-cp310-macosx_10_9_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "bbd31eca0d8fb6f0665c96f0dc7c0d0ec8aa1a425e8c003e0c18e1451f65d177",
                "md5": "1a5d8d8f1d6b68c8a1a6b0913d35a4a3",
                "sha256": "2d225bb6886591b1746b17c0573e29804619c8f755b5598d875bb4235ea639be"
            },
            "downloads": -1,
            "filename": "websockets-12.0-cp310-cp310-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "1a5d8d8f1d6b68c8a1a6b0913d35a4a3",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 121261,
            "upload_time": "2023-10-21T14:19:30",
            "upload_time_iso_8601": "2023-10-21T14:19:30.203464Z",
            "url": "https://files.pythonhosted.org/packages/bb/d3/1eca0d8fb6f0665c96f0dc7c0d0ec8aa1a425e8c003e0c18e1451f65d177/websockets-12.0-cp310-cp310-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "4ee1f6c3ecf7f1bfd9209e13949db027d7fdea2faf090c69b5f2d17d1d796d96",
                "md5": "bdf3e1d174cc8942a0e093b2331d839f",
                "sha256": "eb809e816916a3b210bed3c82fb88eaf16e8afcf9c115ebb2bacede1797d2547"
            },
            "downloads": -1,
            "filename": "websockets-12.0-cp310-cp310-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "bdf3e1d174cc8942a0e093b2331d839f",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 121328,
            "upload_time": "2023-10-21T14:19:31",
            "upload_time_iso_8601": "2023-10-21T14:19:31.765571Z",
            "url": "https://files.pythonhosted.org/packages/4e/e1/f6c3ecf7f1bfd9209e13949db027d7fdea2faf090c69b5f2d17d1d796d96/websockets-12.0-cp310-cp310-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "744df88eeceb23cb587c4aeca779e3f356cf54817af2368cb7f2bd41f93c8360",
                "md5": "c018d8db2264e533dd18959d5c9a30e8",
                "sha256": "c588f6abc13f78a67044c6b1273a99e1cf31038ad51815b3b016ce699f0d75c2"
            },
            "downloads": -1,
            "filename": "websockets-12.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "c018d8db2264e533dd18959d5c9a30e8",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 130925,
            "upload_time": "2023-10-21T14:19:33",
            "upload_time_iso_8601": "2023-10-21T14:19:33.360606Z",
            "url": "https://files.pythonhosted.org/packages/74/4d/f88eeceb23cb587c4aeca779e3f356cf54817af2368cb7f2bd41f93c8360/websockets-12.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "1617f63d9ee6ffd9afbeea021d5950d6e8db84cd4aead306c6c2ca523805699e",
                "md5": "7a7add7072ee8ca753d0352798297747",
                "sha256": "5aa9348186d79a5f232115ed3fa9020eab66d6c3437d72f9d2c8ac0c6858c558"
            },
            "downloads": -1,
            "filename": "websockets-12.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "7a7add7072ee8ca753d0352798297747",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 129930,
            "upload_time": "2023-10-21T14:19:35",
            "upload_time_iso_8601": "2023-10-21T14:19:35.109541Z",
            "url": "https://files.pythonhosted.org/packages/16/17/f63d9ee6ffd9afbeea021d5950d6e8db84cd4aead306c6c2ca523805699e/websockets-12.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "9a12c7a7504f5bf74d6ee0533f6fc7d30d8f4b79420ab179d1df2484b07602eb",
                "md5": "304a5dd23edbde7c579a7190d9e6c44a",
                "sha256": "6350b14a40c95ddd53e775dbdbbbc59b124a5c8ecd6fbb09c2e52029f7a9f480"
            },
            "downloads": -1,
            "filename": "websockets-12.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "304a5dd23edbde7c579a7190d9e6c44a",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 130245,
            "upload_time": "2023-10-21T14:19:36",
            "upload_time_iso_8601": "2023-10-21T14:19:36.761733Z",
            "url": "https://files.pythonhosted.org/packages/9a/12/c7a7504f5bf74d6ee0533f6fc7d30d8f4b79420ab179d1df2484b07602eb/websockets-12.0-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": "e46a3600c7771eb31116d2e77383d7345618b37bb93709d041e328c08e2a8eb3",
                "md5": "372fd70e8efa5d52b17a49c0faef2ccc",
                "sha256": "70ec754cc2a769bcd218ed8d7209055667b30860ffecb8633a834dde27d6307c"
            },
            "downloads": -1,
            "filename": "websockets-12.0-cp310-cp310-musllinux_1_1_aarch64.whl",
            "has_sig": false,
            "md5_digest": "372fd70e8efa5d52b17a49c0faef2ccc",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 134966,
            "upload_time": "2023-10-21T14:19:38",
            "upload_time_iso_8601": "2023-10-21T14:19:38.481040Z",
            "url": "https://files.pythonhosted.org/packages/e4/6a/3600c7771eb31116d2e77383d7345618b37bb93709d041e328c08e2a8eb3/websockets-12.0-cp310-cp310-musllinux_1_1_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2226df77c4b7538caebb78c9b97f43169ef742a4f445e032a5ea1aaef88f8f46",
                "md5": "c18745950593447c7640da7705ec781f",
                "sha256": "6e96f5ed1b83a8ddb07909b45bd94833b0710f738115751cdaa9da1fb0cb66e8"
            },
            "downloads": -1,
            "filename": "websockets-12.0-cp310-cp310-musllinux_1_1_i686.whl",
            "has_sig": false,
            "md5_digest": "c18745950593447c7640da7705ec781f",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 134196,
            "upload_time": "2023-10-21T14:19:40",
            "upload_time_iso_8601": "2023-10-21T14:19:40.264478Z",
            "url": "https://files.pythonhosted.org/packages/22/26/df77c4b7538caebb78c9b97f43169ef742a4f445e032a5ea1aaef88f8f46/websockets-12.0-cp310-cp310-musllinux_1_1_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e51818ce9a4a08203c8d0d3d561e3ea4f453daf32f099601fc831e60c8a9b0f2",
                "md5": "c969b094dbda9147b24df22bf5f3c82c",
                "sha256": "4d87be612cbef86f994178d5186add3d94e9f31cc3cb499a0482b866ec477603"
            },
            "downloads": -1,
            "filename": "websockets-12.0-cp310-cp310-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "c969b094dbda9147b24df22bf5f3c82c",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 134822,
            "upload_time": "2023-10-21T14:19:41",
            "upload_time_iso_8601": "2023-10-21T14:19:41.836218Z",
            "url": "https://files.pythonhosted.org/packages/e5/18/18ce9a4a08203c8d0d3d561e3ea4f453daf32f099601fc831e60c8a9b0f2/websockets-12.0-cp310-cp310-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "45511f823a341fc20a880e67ae62f6c38c4880a24a4b60fbe544a38f516f39a1",
                "md5": "7a2d1ea3b9fea834098e85f28bb0b56a",
                "sha256": "befe90632d66caaf72e8b2ed4d7f02b348913813c8b0a32fae1cc5fe3730902f"
            },
            "downloads": -1,
            "filename": "websockets-12.0-cp310-cp310-win32.whl",
            "has_sig": false,
            "md5_digest": "7a2d1ea3b9fea834098e85f28bb0b56a",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 124454,
            "upload_time": "2023-10-21T14:19:43",
            "upload_time_iso_8601": "2023-10-21T14:19:43.639484Z",
            "url": "https://files.pythonhosted.org/packages/45/51/1f823a341fc20a880e67ae62f6c38c4880a24a4b60fbe544a38f516f39a1/websockets-12.0-cp310-cp310-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "41b05ec054cfcf23adfc88d39359b85e81d043af8a141e3ac8ce40f45a5ce5f4",
                "md5": "a3ab060c3b2c833daca6746f70537386",
                "sha256": "363f57ca8bc8576195d0540c648aa58ac18cf85b76ad5202b9f976918f4219cf"
            },
            "downloads": -1,
            "filename": "websockets-12.0-cp310-cp310-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "a3ab060c3b2c833daca6746f70537386",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 124974,
            "upload_time": "2023-10-21T14:19:44",
            "upload_time_iso_8601": "2023-10-21T14:19:44.934410Z",
            "url": "https://files.pythonhosted.org/packages/41/b0/5ec054cfcf23adfc88d39359b85e81d043af8a141e3ac8ce40f45a5ce5f4/websockets-12.0-cp310-cp310-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "02739c1e168a2e7fdf26841dc98f5f5502e91dea47428da7690a08101f616169",
                "md5": "66d34be793cb524f456c07f444f29755",
                "sha256": "5d873c7de42dea355d73f170be0f23788cf3fa9f7bed718fd2830eefedce01b4"
            },
            "downloads": -1,
            "filename": "websockets-12.0-cp311-cp311-macosx_10_9_universal2.whl",
            "has_sig": false,
            "md5_digest": "66d34be793cb524f456c07f444f29755",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 124047,
            "upload_time": "2023-10-21T14:19:46",
            "upload_time_iso_8601": "2023-10-21T14:19:46.519477Z",
            "url": "https://files.pythonhosted.org/packages/02/73/9c1e168a2e7fdf26841dc98f5f5502e91dea47428da7690a08101f616169/websockets-12.0-cp311-cp311-macosx_10_9_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e42d9a683359ad2ed11b2303a7a94800db19c61d33fa3bde271df09e99936022",
                "md5": "3d659106b32a95e5dadb7696bff2011b",
                "sha256": "3f61726cae9f65b872502ff3c1496abc93ffbe31b278455c418492016e2afc8f"
            },
            "downloads": -1,
            "filename": "websockets-12.0-cp311-cp311-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "3d659106b32a95e5dadb7696bff2011b",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 121282,
            "upload_time": "2023-10-21T14:19:47",
            "upload_time_iso_8601": "2023-10-21T14:19:47.739682Z",
            "url": "https://files.pythonhosted.org/packages/e4/2d/9a683359ad2ed11b2303a7a94800db19c61d33fa3bde271df09e99936022/websockets-12.0-cp311-cp311-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "95aa75fa3b893142d6d98a48cb461169bd268141f2da8bfca97392d6462a02eb",
                "md5": "6dee415502b3559ad19fe84a26b676b7",
                "sha256": "ed2fcf7a07334c77fc8a230755c2209223a7cc44fc27597729b8ef5425aa61a3"
            },
            "downloads": -1,
            "filename": "websockets-12.0-cp311-cp311-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "6dee415502b3559ad19fe84a26b676b7",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 121325,
            "upload_time": "2023-10-21T14:19:49",
            "upload_time_iso_8601": "2023-10-21T14:19:49.400349Z",
            "url": "https://files.pythonhosted.org/packages/95/aa/75fa3b893142d6d98a48cb461169bd268141f2da8bfca97392d6462a02eb/websockets-12.0-cp311-cp311-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6ea451a25e591d645df71ee0dc3a2c880b28e5514c00ce752f98a40a87abcd1e",
                "md5": "cbef043c214e462ced932bfc43991487",
                "sha256": "8e332c210b14b57904869ca9f9bf4ca32f5427a03eeb625da9b616c85a3a506c"
            },
            "downloads": -1,
            "filename": "websockets-12.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "cbef043c214e462ced932bfc43991487",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 131502,
            "upload_time": "2023-10-21T14:19:50",
            "upload_time_iso_8601": "2023-10-21T14:19:50.683459Z",
            "url": "https://files.pythonhosted.org/packages/6e/a4/51a25e591d645df71ee0dc3a2c880b28e5514c00ce752f98a40a87abcd1e/websockets-12.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "cdea0ceeea4f5b87398fe2d9f5bcecfa00a1bcd542e2bfcac2f2e5dd612c4e9e",
                "md5": "37df08da9a253f36e571ae9944ed97b2",
                "sha256": "5693ef74233122f8ebab026817b1b37fe25c411ecfca084b29bc7d6efc548f45"
            },
            "downloads": -1,
            "filename": "websockets-12.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "37df08da9a253f36e571ae9944ed97b2",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 130491,
            "upload_time": "2023-10-21T14:19:51",
            "upload_time_iso_8601": "2023-10-21T14:19:51.835462Z",
            "url": "https://files.pythonhosted.org/packages/cd/ea/0ceeea4f5b87398fe2d9f5bcecfa00a1bcd542e2bfcac2f2e5dd612c4e9e/websockets-12.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e305f52a60b66d9faf07a4f7d71dc056bffafe36a7e98c4eb5b78f04fe6e4e85",
                "md5": "07fed75587e2c73fa713fdb1095a729a",
                "sha256": "6e9e7db18b4539a29cc5ad8c8b252738a30e2b13f033c2d6e9d0549b45841c04"
            },
            "downloads": -1,
            "filename": "websockets-12.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "07fed75587e2c73fa713fdb1095a729a",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 130872,
            "upload_time": "2023-10-21T14:19:53",
            "upload_time_iso_8601": "2023-10-21T14:19:53.071586Z",
            "url": "https://files.pythonhosted.org/packages/e3/05/f52a60b66d9faf07a4f7d71dc056bffafe36a7e98c4eb5b78f04fe6e4e85/websockets-12.0-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": "ac4ec7361b2d7b964c40fea924d64881145164961fcd6c90b88b7e3ab2c4f431",
                "md5": "cb780627111869ae0829e5990d2d1fba",
                "sha256": "6e2df67b8014767d0f785baa98393725739287684b9f8d8a1001eb2839031447"
            },
            "downloads": -1,
            "filename": "websockets-12.0-cp311-cp311-musllinux_1_1_aarch64.whl",
            "has_sig": false,
            "md5_digest": "cb780627111869ae0829e5990d2d1fba",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 136318,
            "upload_time": "2023-10-21T14:19:54",
            "upload_time_iso_8601": "2023-10-21T14:19:54.410348Z",
            "url": "https://files.pythonhosted.org/packages/ac/4e/c7361b2d7b964c40fea924d64881145164961fcd6c90b88b7e3ab2c4f431/websockets-12.0-cp311-cp311-musllinux_1_1_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0a31337bf35ae5faeaf364c9cddec66681cdf51dc4414ee7a20f92a18e57880f",
                "md5": "304c80e4a7ffef4d99ef087b209fd541",
                "sha256": "bea88d71630c5900690fcb03161ab18f8f244805c59e2e0dc4ffadae0a7ee0ca"
            },
            "downloads": -1,
            "filename": "websockets-12.0-cp311-cp311-musllinux_1_1_i686.whl",
            "has_sig": false,
            "md5_digest": "304c80e4a7ffef4d99ef087b209fd541",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 135594,
            "upload_time": "2023-10-21T14:19:55",
            "upload_time_iso_8601": "2023-10-21T14:19:55.982406Z",
            "url": "https://files.pythonhosted.org/packages/0a/31/337bf35ae5faeaf364c9cddec66681cdf51dc4414ee7a20f92a18e57880f/websockets-12.0-cp311-cp311-musllinux_1_1_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "95aa1ac767825c96f9d7e43c4c95683757d4ef28cf11fa47a69aca42428d3e3a",
                "md5": "9ffccbbf7814ec38cf32fe28b08f86c3",
                "sha256": "dff6cdf35e31d1315790149fee351f9e52978130cef6c87c4b6c9b3baf78bc53"
            },
            "downloads": -1,
            "filename": "websockets-12.0-cp311-cp311-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "9ffccbbf7814ec38cf32fe28b08f86c3",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 136191,
            "upload_time": "2023-10-21T14:19:57",
            "upload_time_iso_8601": "2023-10-21T14:19:57.349561Z",
            "url": "https://files.pythonhosted.org/packages/95/aa/1ac767825c96f9d7e43c4c95683757d4ef28cf11fa47a69aca42428d3e3a/websockets-12.0-cp311-cp311-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "284b344ec5cfeb6bc417da097f8253607c3aed11d9a305fb58346f506bf556d8",
                "md5": "4fa4c89f37c554c230cd20f192a0ccee",
                "sha256": "3e3aa8c468af01d70332a382350ee95f6986db479ce7af14d5e81ec52aa2b402"
            },
            "downloads": -1,
            "filename": "websockets-12.0-cp311-cp311-win32.whl",
            "has_sig": false,
            "md5_digest": "4fa4c89f37c554c230cd20f192a0ccee",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 124453,
            "upload_time": "2023-10-21T14:19:59",
            "upload_time_iso_8601": "2023-10-21T14:19:59.110626Z",
            "url": "https://files.pythonhosted.org/packages/28/4b/344ec5cfeb6bc417da097f8253607c3aed11d9a305fb58346f506bf556d8/websockets-12.0-cp311-cp311-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d1406b169cd1957476374f51f4486a3e85003149e62a14e6b78a958c2222337a",
                "md5": "dc57dfd64da6eab557437d66319b55c3",
                "sha256": "25eb766c8ad27da0f79420b2af4b85d29914ba0edf69f547cc4f06ca6f1d403b"
            },
            "downloads": -1,
            "filename": "websockets-12.0-cp311-cp311-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "dc57dfd64da6eab557437d66319b55c3",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 124971,
            "upload_time": "2023-10-21T14:20:00",
            "upload_time_iso_8601": "2023-10-21T14:20:00.243799Z",
            "url": "https://files.pythonhosted.org/packages/d1/40/6b169cd1957476374f51f4486a3e85003149e62a14e6b78a958c2222337a/websockets-12.0-cp311-cp311-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a96d23cc898647c8a614a0d9ca703695dd04322fb5135096a20c2684b7c852b6",
                "md5": "fced61975600b0e31246042005e9422d",
                "sha256": "0e6e2711d5a8e6e482cacb927a49a3d432345dfe7dea8ace7b5790df5932e4df"
            },
            "downloads": -1,
            "filename": "websockets-12.0-cp312-cp312-macosx_10_9_universal2.whl",
            "has_sig": false,
            "md5_digest": "fced61975600b0e31246042005e9422d",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 124061,
            "upload_time": "2023-10-21T14:20:02",
            "upload_time_iso_8601": "2023-10-21T14:20:02.221013Z",
            "url": "https://files.pythonhosted.org/packages/a9/6d/23cc898647c8a614a0d9ca703695dd04322fb5135096a20c2684b7c852b6/websockets-12.0-cp312-cp312-macosx_10_9_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3934364f30fdf1a375e4002a26ee3061138d1571dfda6421126127d379d13930",
                "md5": "f35fb4e8620ff1ff99f1969943937345",
                "sha256": "dbcf72a37f0b3316e993e13ecf32f10c0e1259c28ffd0a85cee26e8549595fbc"
            },
            "downloads": -1,
            "filename": "websockets-12.0-cp312-cp312-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "f35fb4e8620ff1ff99f1969943937345",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 121296,
            "upload_time": "2023-10-21T14:20:03",
            "upload_time_iso_8601": "2023-10-21T14:20:03.591788Z",
            "url": "https://files.pythonhosted.org/packages/39/34/364f30fdf1a375e4002a26ee3061138d1571dfda6421126127d379d13930/websockets-12.0-cp312-cp312-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2e0096ae1c9dcb3bc316ef683f2febd8c97dde9f254dc36c3afc65c7645f734c",
                "md5": "b0ff66f298c7b8976190dcd3b2ac54a5",
                "sha256": "12743ab88ab2af1d17dd4acb4645677cb7063ef4db93abffbf164218a5d54c6b"
            },
            "downloads": -1,
            "filename": "websockets-12.0-cp312-cp312-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "b0ff66f298c7b8976190dcd3b2ac54a5",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 121326,
            "upload_time": "2023-10-21T14:20:04",
            "upload_time_iso_8601": "2023-10-21T14:20:04.956817Z",
            "url": "https://files.pythonhosted.org/packages/2e/00/96ae1c9dcb3bc316ef683f2febd8c97dde9f254dc36c3afc65c7645f734c/websockets-12.0-cp312-cp312-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "aff1bba1e64430685dd456c1a1fd6b0c791ae33104967b928aefeff261761e8d",
                "md5": "e5f1eb321677362d6c9c3be9eb22322e",
                "sha256": "7b645f491f3c48d3f8a00d1fce07445fab7347fec54a3e65f0725d730d5b99cb"
            },
            "downloads": -1,
            "filename": "websockets-12.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "e5f1eb321677362d6c9c3be9eb22322e",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 131807,
            "upload_time": "2023-10-21T14:20:06",
            "upload_time_iso_8601": "2023-10-21T14:20:06.153377Z",
            "url": "https://files.pythonhosted.org/packages/af/f1/bba1e64430685dd456c1a1fd6b0c791ae33104967b928aefeff261761e8d/websockets-12.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "623b98ee269712f37d892b93852ce07b3e6d7653160ca4c0d4f8c8663f8021f8",
                "md5": "4c4644f73ba7e97ff8ac61e261d78333",
                "sha256": "9893d1aa45a7f8b3bc4510f6ccf8db8c3b62120917af15e3de247f0780294b92"
            },
            "downloads": -1,
            "filename": "websockets-12.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "4c4644f73ba7e97ff8ac61e261d78333",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 130751,
            "upload_time": "2023-10-21T14:20:07",
            "upload_time_iso_8601": "2023-10-21T14:20:07.753778Z",
            "url": "https://files.pythonhosted.org/packages/62/3b/98ee269712f37d892b93852ce07b3e6d7653160ca4c0d4f8c8663f8021f8/websockets-12.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f100d6f01ca2b191f8b0808e4132ccd2e7691f0453cbd7d0f72330eb97453c3a",
                "md5": "61ee41cc94e07bb41453b75e8cb9d188",
                "sha256": "1f38a7b376117ef7aff996e737583172bdf535932c9ca021746573bce40165ed"
            },
            "downloads": -1,
            "filename": "websockets-12.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "61ee41cc94e07bb41453b75e8cb9d188",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 131176,
            "upload_time": "2023-10-21T14:20:09",
            "upload_time_iso_8601": "2023-10-21T14:20:09.212751Z",
            "url": "https://files.pythonhosted.org/packages/f1/00/d6f01ca2b191f8b0808e4132ccd2e7691f0453cbd7d0f72330eb97453c3a/websockets-12.0-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": "af9c703ff3cd8109dcdee6152bae055d852ebaa7750117760ded697ab836cbcf",
                "md5": "b92d5ed91028d53caa0ac217e937e360",
                "sha256": "f764ba54e33daf20e167915edc443b6f88956f37fb606449b4a5b10ba42235a5"
            },
            "downloads": -1,
            "filename": "websockets-12.0-cp312-cp312-musllinux_1_1_aarch64.whl",
            "has_sig": false,
            "md5_digest": "b92d5ed91028d53caa0ac217e937e360",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 136246,
            "upload_time": "2023-10-21T14:20:10",
            "upload_time_iso_8601": "2023-10-21T14:20:10.423471Z",
            "url": "https://files.pythonhosted.org/packages/af/9c/703ff3cd8109dcdee6152bae055d852ebaa7750117760ded697ab836cbcf/websockets-12.0-cp312-cp312-musllinux_1_1_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0ba51a38fb85a456b9dc874ec984f3ff34f6550eafd17a3da28753cd3c1628e8",
                "md5": "673b16b2460529986a36c97738be5ccd",
                "sha256": "1e4b3f8ea6a9cfa8be8484c9221ec0257508e3a1ec43c36acdefb2a9c3b00aa2"
            },
            "downloads": -1,
            "filename": "websockets-12.0-cp312-cp312-musllinux_1_1_i686.whl",
            "has_sig": false,
            "md5_digest": "673b16b2460529986a36c97738be5ccd",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 135466,
            "upload_time": "2023-10-21T14:20:11",
            "upload_time_iso_8601": "2023-10-21T14:20:11.826744Z",
            "url": "https://files.pythonhosted.org/packages/0b/a5/1a38fb85a456b9dc874ec984f3ff34f6550eafd17a3da28753cd3c1628e8/websockets-12.0-cp312-cp312-musllinux_1_1_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3c981261f289dff7e65a38d59d2f591de6ed0a2580b729aebddec033c4d10881",
                "md5": "ac07b75cd56d5d377273a8d9796d246a",
                "sha256": "9fdf06fd06c32205a07e47328ab49c40fc1407cdec801d698a7c41167ea45113"
            },
            "downloads": -1,
            "filename": "websockets-12.0-cp312-cp312-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "ac07b75cd56d5d377273a8d9796d246a",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 136083,
            "upload_time": "2023-10-21T14:20:13",
            "upload_time_iso_8601": "2023-10-21T14:20:13.451548Z",
            "url": "https://files.pythonhosted.org/packages/3c/98/1261f289dff7e65a38d59d2f591de6ed0a2580b729aebddec033c4d10881/websockets-12.0-cp312-cp312-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a91cf68769fba63ccb9c13fe0a25b616bd5aebeef1c7ddebc2ccc32462fb784d",
                "md5": "e3e2b3eee0adf6e5d61087bf19be45ca",
                "sha256": "baa386875b70cbd81798fa9f71be689c1bf484f65fd6fb08d051a0ee4e79924d"
            },
            "downloads": -1,
            "filename": "websockets-12.0-cp312-cp312-win32.whl",
            "has_sig": false,
            "md5_digest": "e3e2b3eee0adf6e5d61087bf19be45ca",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 124460,
            "upload_time": "2023-10-21T14:20:14",
            "upload_time_iso_8601": "2023-10-21T14:20:14.719767Z",
            "url": "https://files.pythonhosted.org/packages/a9/1c/f68769fba63ccb9c13fe0a25b616bd5aebeef1c7ddebc2ccc32462fb784d/websockets-12.0-cp312-cp312-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "20528915f51f9aaef4e4361c89dd6cf69f72a0159f14e0d25026c81b6ad22525",
                "md5": "87810f621c2ce07c603f36a8adcea907",
                "sha256": "ae0a5da8f35a5be197f328d4727dbcfafa53d1824fac3d96cdd3a642fe09394f"
            },
            "downloads": -1,
            "filename": "websockets-12.0-cp312-cp312-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "87810f621c2ce07c603f36a8adcea907",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 124985,
            "upload_time": "2023-10-21T14:20:15",
            "upload_time_iso_8601": "2023-10-21T14:20:15.817499Z",
            "url": "https://files.pythonhosted.org/packages/20/52/8915f51f9aaef4e4361c89dd6cf69f72a0159f14e0d25026c81b6ad22525/websockets-12.0-cp312-cp312-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d0f2f4baa6c9e28c2d06cc787203eea18eb1d875f4fddb8e85c28df91f02bc55",
                "md5": "95f3a5d829a83bff307a891bf0bf11ca",
                "sha256": "5f6ffe2c6598f7f7207eef9a1228b6f5c818f9f4d53ee920aacd35cec8110438"
            },
            "downloads": -1,
            "filename": "websockets-12.0-cp38-cp38-macosx_10_9_universal2.whl",
            "has_sig": false,
            "md5_digest": "95f3a5d829a83bff307a891bf0bf11ca",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 124013,
            "upload_time": "2023-10-21T14:20:16",
            "upload_time_iso_8601": "2023-10-21T14:20:16.981008Z",
            "url": "https://files.pythonhosted.org/packages/d0/f2/f4baa6c9e28c2d06cc787203eea18eb1d875f4fddb8e85c28df91f02bc55/websockets-12.0-cp38-cp38-macosx_10_9_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e49e5c565ca57c2b72b26057df3fd8ea62533cbc1bf4b166249c6107a71f9e80",
                "md5": "d18aebf1634a6d6abd491316686ee441",
                "sha256": "9edf3fc590cc2ec20dc9d7a45108b5bbaf21c0d89f9fd3fd1685e223771dc0b2"
            },
            "downloads": -1,
            "filename": "websockets-12.0-cp38-cp38-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "d18aebf1634a6d6abd491316686ee441",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 121255,
            "upload_time": "2023-10-21T14:20:18",
            "upload_time_iso_8601": "2023-10-21T14:20:18.614194Z",
            "url": "https://files.pythonhosted.org/packages/e4/9e/5c565ca57c2b72b26057df3fd8ea62533cbc1bf4b166249c6107a71f9e80/websockets-12.0-cp38-cp38-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "91835f8c4cf2a0cf26d8eebed77976a5663d6760e24c6d9e949e90b659d885e6",
                "md5": "2d4933133e2035586e7f11dac278451a",
                "sha256": "8572132c7be52632201a35f5e08348137f658e5ffd21f51f94572ca6c05ea81d"
            },
            "downloads": -1,
            "filename": "websockets-12.0-cp38-cp38-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "2d4933133e2035586e7f11dac278451a",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 121323,
            "upload_time": "2023-10-21T14:20:20",
            "upload_time_iso_8601": "2023-10-21T14:20:20.212731Z",
            "url": "https://files.pythonhosted.org/packages/91/83/5f8c4cf2a0cf26d8eebed77976a5663d6760e24c6d9e949e90b659d885e6/websockets-12.0-cp38-cp38-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "33fd13ae9a400c662b6d03717e5599d8c88da0e84255c09a404e668568e53f50",
                "md5": "61d4627586f26cbfbe6d6c6558d2f137",
                "sha256": "604428d1b87edbf02b233e2c207d7d528460fa978f9e391bd8aaf9c8311de137"
            },
            "downloads": -1,
            "filename": "websockets-12.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "61d4627586f26cbfbe6d6c6558d2f137",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 131110,
            "upload_time": "2023-10-21T14:20:21",
            "upload_time_iso_8601": "2023-10-21T14:20:21.843461Z",
            "url": "https://files.pythonhosted.org/packages/33/fd/13ae9a400c662b6d03717e5599d8c88da0e84255c09a404e668568e53f50/websockets-12.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "16664666e53d06fc5a40f9d36394969ac1168f9f27a075a020af1cc04622e075",
                "md5": "9cf3014dc75c3116d363ec5f6d03001f",
                "sha256": "1a9d160fd080c6285e202327aba140fc9a0d910b09e423afff4ae5cbbf1c7205"
            },
            "downloads": -1,
            "filename": "websockets-12.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "9cf3014dc75c3116d363ec5f6d03001f",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 130171,
            "upload_time": "2023-10-21T14:20:23",
            "upload_time_iso_8601": "2023-10-21T14:20:23.571712Z",
            "url": "https://files.pythonhosted.org/packages/16/66/4666e53d06fc5a40f9d36394969ac1168f9f27a075a020af1cc04622e075/websockets-12.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e9bc646bfbd9badbf59efb48db7265b097e9f626c3530c9d1329a826ef4db6a0",
                "md5": "62f2b0775e0a58bd7be8e650648b7524",
                "sha256": "87b4aafed34653e465eb77b7c93ef058516cb5acf3eb21e42f33928616172def"
            },
            "downloads": -1,
            "filename": "websockets-12.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "62f2b0775e0a58bd7be8e650648b7524",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 130459,
            "upload_time": "2023-10-21T14:20:25",
            "upload_time_iso_8601": "2023-10-21T14:20:25.369156Z",
            "url": "https://files.pythonhosted.org/packages/e9/bc/646bfbd9badbf59efb48db7265b097e9f626c3530c9d1329a826ef4db6a0/websockets-12.0-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": "ba43b0dd6921ae0c8e48cdd5140b6745ae45424f4ad0aa3fd2eb06b48be55463",
                "md5": "ec0b0f0fde454d43f580998914dec1b5",
                "sha256": "b2ee7288b85959797970114deae81ab41b731f19ebcd3bd499ae9ca0e3f1d2c8"
            },
            "downloads": -1,
            "filename": "websockets-12.0-cp38-cp38-musllinux_1_1_aarch64.whl",
            "has_sig": false,
            "md5_digest": "ec0b0f0fde454d43f580998914dec1b5",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 134791,
            "upload_time": "2023-10-21T14:20:26",
            "upload_time_iso_8601": "2023-10-21T14:20:26.994335Z",
            "url": "https://files.pythonhosted.org/packages/ba/43/b0dd6921ae0c8e48cdd5140b6745ae45424f4ad0aa3fd2eb06b48be55463/websockets-12.0-cp38-cp38-musllinux_1_1_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ba0dc1f43e921cbf0c546898bb54d22863490bb80491be2b24f1d1c9ac23cfd6",
                "md5": "c1a4f673e212b014daa83450689e3090",
                "sha256": "7fa3d25e81bfe6a89718e9791128398a50dec6d57faf23770787ff441d851967"
            },
            "downloads": -1,
            "filename": "websockets-12.0-cp38-cp38-musllinux_1_1_i686.whl",
            "has_sig": false,
            "md5_digest": "c1a4f673e212b014daa83450689e3090",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 134034,
            "upload_time": "2023-10-21T14:20:28",
            "upload_time_iso_8601": "2023-10-21T14:20:28.316429Z",
            "url": "https://files.pythonhosted.org/packages/ba/0d/c1f43e921cbf0c546898bb54d22863490bb80491be2b24f1d1c9ac23cfd6/websockets-12.0-cp38-cp38-musllinux_1_1_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "cacc4dc115e53ef66a03fd13be5a8623947bfb6e17131f9bede444eca090a454",
                "md5": "33d54aa67f0cf800c888bd4c423e3d55",
                "sha256": "a571f035a47212288e3b3519944f6bf4ac7bc7553243e41eac50dd48552b6df7"
            },
            "downloads": -1,
            "filename": "websockets-12.0-cp38-cp38-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "33d54aa67f0cf800c888bd4c423e3d55",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 134667,
            "upload_time": "2023-10-21T14:20:29",
            "upload_time_iso_8601": "2023-10-21T14:20:29.888577Z",
            "url": "https://files.pythonhosted.org/packages/ca/cc/4dc115e53ef66a03fd13be5a8623947bfb6e17131f9bede444eca090a454/websockets-12.0-cp38-cp38-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d345bcf3056e7627652aa54bf82cbdeaea1d293d4d78fcd4a8e4ee72080ac511",
                "md5": "f34d692c1b69e7739889651634b15512",
                "sha256": "3c6cc1360c10c17463aadd29dd3af332d4a1adaa8796f6b0e9f9df1fdb0bad62"
            },
            "downloads": -1,
            "filename": "websockets-12.0-cp38-cp38-win32.whl",
            "has_sig": false,
            "md5_digest": "f34d692c1b69e7739889651634b15512",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 124451,
            "upload_time": "2023-10-21T14:20:31",
            "upload_time_iso_8601": "2023-10-21T14:20:31.203961Z",
            "url": "https://files.pythonhosted.org/packages/d3/45/bcf3056e7627652aa54bf82cbdeaea1d293d4d78fcd4a8e4ee72080ac511/websockets-12.0-cp38-cp38-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0ed8b468e92e5140ad8550477250310132cc6316412c7e0d2eb9e05661cf1f58",
                "md5": "a78057ab93fbe6ccfd3a35f2f53f08cf",
                "sha256": "1bf386089178ea69d720f8db6199a0504a406209a0fc23e603b27b300fdd6892"
            },
            "downloads": -1,
            "filename": "websockets-12.0-cp38-cp38-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "a78057ab93fbe6ccfd3a35f2f53f08cf",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 124965,
            "upload_time": "2023-10-21T14:20:32",
            "upload_time_iso_8601": "2023-10-21T14:20:32.350594Z",
            "url": "https://files.pythonhosted.org/packages/0e/d8/b468e92e5140ad8550477250310132cc6316412c7e0d2eb9e05661cf1f58/websockets-12.0-cp38-cp38-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "69afc52981023e7afcdfdb50c4697f702659b3dedca54f71e3cc99b8581f5647",
                "md5": "8c00ffcf9c9786b8d0ad76b9a38a8aea",
                "sha256": "ab3d732ad50a4fbd04a4490ef08acd0517b6ae6b77eb967251f4c263011a990d"
            },
            "downloads": -1,
            "filename": "websockets-12.0-cp39-cp39-macosx_10_9_universal2.whl",
            "has_sig": false,
            "md5_digest": "8c00ffcf9c9786b8d0ad76b9a38a8aea",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 124014,
            "upload_time": "2023-10-21T14:20:33",
            "upload_time_iso_8601": "2023-10-21T14:20:33.540387Z",
            "url": "https://files.pythonhosted.org/packages/69/af/c52981023e7afcdfdb50c4697f702659b3dedca54f71e3cc99b8581f5647/websockets-12.0-cp39-cp39-macosx_10_9_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c5db2d12649006d6686802308831f4f8a1190105ea34afb68c52f098de689ad8",
                "md5": "c989096949a7918db005dbe559fe6f62",
                "sha256": "a1d9697f3337a89691e3bd8dc56dea45a6f6d975f92e7d5f773bc715c15dde28"
            },
            "downloads": -1,
            "filename": "websockets-12.0-cp39-cp39-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "c989096949a7918db005dbe559fe6f62",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 121251,
            "upload_time": "2023-10-21T14:20:34",
            "upload_time_iso_8601": "2023-10-21T14:20:34.640326Z",
            "url": "https://files.pythonhosted.org/packages/c5/db/2d12649006d6686802308831f4f8a1190105ea34afb68c52f098de689ad8/websockets-12.0-cp39-cp39-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0da4ec1043bc6acf5bc405762ecc1327f3573441185571122ae50fc00c6d3130",
                "md5": "5547b76f8532edb4f905afdace2ae6df",
                "sha256": "1df2fbd2c8a98d38a66f5238484405b8d1d16f929bb7a33ed73e4801222a6f53"
            },
            "downloads": -1,
            "filename": "websockets-12.0-cp39-cp39-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "5547b76f8532edb4f905afdace2ae6df",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 121322,
            "upload_time": "2023-10-21T14:20:35",
            "upload_time_iso_8601": "2023-10-21T14:20:35.758449Z",
            "url": "https://files.pythonhosted.org/packages/0d/a4/ec1043bc6acf5bc405762ecc1327f3573441185571122ae50fc00c6d3130/websockets-12.0-cp39-cp39-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "25a9a3e03f9f3c4425a914e5875dd09f2c2559d61b44edd52cf1e6b73f938898",
                "md5": "3e136e6429c0379b75e7463d0417e39a",
                "sha256": "23509452b3bc38e3a057382c2e941d5ac2e01e251acce7adc74011d7d8de434c"
            },
            "downloads": -1,
            "filename": "websockets-12.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "3e136e6429c0379b75e7463d0417e39a",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 130706,
            "upload_time": "2023-10-21T14:20:36",
            "upload_time_iso_8601": "2023-10-21T14:20:36.895504Z",
            "url": "https://files.pythonhosted.org/packages/25/a9/a3e03f9f3c4425a914e5875dd09f2c2559d61b44edd52cf1e6b73f938898/websockets-12.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "7b9ff5aae5c49b0fc04ca68c723386f0d97f17363384525c6566cd382912a022",
                "md5": "027ae312e7df5b3c3c64867a7fdbe5f0",
                "sha256": "2e5fc14ec6ea568200ea4ef46545073da81900a2b67b3e666f04adf53ad452ec"
            },
            "downloads": -1,
            "filename": "websockets-12.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "027ae312e7df5b3c3c64867a7fdbe5f0",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 129708,
            "upload_time": "2023-10-21T14:20:38",
            "upload_time_iso_8601": "2023-10-21T14:20:38.234475Z",
            "url": "https://files.pythonhosted.org/packages/7b/9f/f5aae5c49b0fc04ca68c723386f0d97f17363384525c6566cd382912a022/websockets-12.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "06dde8535f54b4aaded1ed44041ca8eb9de8786ce719ff148b56b4a903ef93e6",
                "md5": "2e521cace610aaa5a140cd8632abac85",
                "sha256": "46e71dbbd12850224243f5d2aeec90f0aaa0f2dde5aeeb8fc8df21e04d99eff9"
            },
            "downloads": -1,
            "filename": "websockets-12.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "2e521cace610aaa5a140cd8632abac85",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 130011,
            "upload_time": "2023-10-21T14:20:39",
            "upload_time_iso_8601": "2023-10-21T14:20:39.643068Z",
            "url": "https://files.pythonhosted.org/packages/06/dd/e8535f54b4aaded1ed44041ca8eb9de8786ce719ff148b56b4a903ef93e6/websockets-12.0-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": "67cc6fd14e45c5149e6c81c6771550ee5a4911321014e620f69baf1490001a80",
                "md5": "78592d91593146bed9ed17a654614fcb",
                "sha256": "b81f90dcc6c85a9b7f29873beb56c94c85d6f0dac2ea8b60d995bd18bf3e2aae"
            },
            "downloads": -1,
            "filename": "websockets-12.0-cp39-cp39-musllinux_1_1_aarch64.whl",
            "has_sig": false,
            "md5_digest": "78592d91593146bed9ed17a654614fcb",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 134686,
            "upload_time": "2023-10-21T14:20:40",
            "upload_time_iso_8601": "2023-10-21T14:20:40.775117Z",
            "url": "https://files.pythonhosted.org/packages/67/cc/6fd14e45c5149e6c81c6771550ee5a4911321014e620f69baf1490001a80/websockets-12.0-cp39-cp39-musllinux_1_1_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "1b9f84d42c8c3e510f2a9ad09ae178c31cc89cc838b143a04bf41ff0653ca018",
                "md5": "3e00dbd08d30fe563bda8d3073eba613",
                "sha256": "a02413bc474feda2849c59ed2dfb2cddb4cd3d2f03a2fedec51d6e959d9b608b"
            },
            "downloads": -1,
            "filename": "websockets-12.0-cp39-cp39-musllinux_1_1_i686.whl",
            "has_sig": false,
            "md5_digest": "3e00dbd08d30fe563bda8d3073eba613",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 133934,
            "upload_time": "2023-10-21T14:20:42",
            "upload_time_iso_8601": "2023-10-21T14:20:42.245068Z",
            "url": "https://files.pythonhosted.org/packages/1b/9f/84d42c8c3e510f2a9ad09ae178c31cc89cc838b143a04bf41ff0653ca018/websockets-12.0-cp39-cp39-musllinux_1_1_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "9c5b648db3556d8a441aa9705e1132b3ddae76204b57410952f85cf4a953623a",
                "md5": "4ea0859ec24eb2057b4c8c3fb90776aa",
                "sha256": "bbe6013f9f791944ed31ca08b077e26249309639313fff132bfbf3ba105673b9"
            },
            "downloads": -1,
            "filename": "websockets-12.0-cp39-cp39-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "4ea0859ec24eb2057b4c8c3fb90776aa",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 134559,
            "upload_time": "2023-10-21T14:20:43",
            "upload_time_iso_8601": "2023-10-21T14:20:43.446204Z",
            "url": "https://files.pythonhosted.org/packages/9c/5b/648db3556d8a441aa9705e1132b3ddae76204b57410952f85cf4a953623a/websockets-12.0-cp39-cp39-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "bb07050a8f6b06eb8a876a51c56f752dd51f59982dda37f2a1788bfd2a26952e",
                "md5": "845c6dfe8e9b59a23f6ae12528f8043c",
                "sha256": "cbe83a6bbdf207ff0541de01e11904827540aa069293696dd528a6640bd6a5f6"
            },
            "downloads": -1,
            "filename": "websockets-12.0-cp39-cp39-win32.whl",
            "has_sig": false,
            "md5_digest": "845c6dfe8e9b59a23f6ae12528f8043c",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 124449,
            "upload_time": "2023-10-21T14:20:45",
            "upload_time_iso_8601": "2023-10-21T14:20:45.561328Z",
            "url": "https://files.pythonhosted.org/packages/bb/07/050a8f6b06eb8a876a51c56f752dd51f59982dda37f2a1788bfd2a26952e/websockets-12.0-cp39-cp39-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "94925dc1202332df60422869fdb6c86213ff6987b1b06c329eed329cc49966f7",
                "md5": "296c83ba33a5875b2065e54b5273cfa3",
                "sha256": "fc4e7fa5414512b481a2483775a8e8be7803a35b30ca805afa4998a84f9fd9e8"
            },
            "downloads": -1,
            "filename": "websockets-12.0-cp39-cp39-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "296c83ba33a5875b2065e54b5273cfa3",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 124966,
            "upload_time": "2023-10-21T14:20:47",
            "upload_time_iso_8601": "2023-10-21T14:20:47.003567Z",
            "url": "https://files.pythonhosted.org/packages/94/92/5dc1202332df60422869fdb6c86213ff6987b1b06c329eed329cc49966f7/websockets-12.0-cp39-cp39-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "438b554a8a8bb6da9dd1ce04c44125e2192af7b7beebf6e3dbfa5d0e285cc20f",
                "md5": "3ad4816bb15578fe8bc4a4a96e441eed",
                "sha256": "248d8e2446e13c1d4326e0a6a4e9629cb13a11195051a73acf414812700badbd"
            },
            "downloads": -1,
            "filename": "websockets-12.0-pp310-pypy310_pp73-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "3ad4816bb15578fe8bc4a4a96e441eed",
            "packagetype": "bdist_wheel",
            "python_version": "pp310",
            "requires_python": ">=3.8",
            "size": 121110,
            "upload_time": "2023-10-21T14:20:48",
            "upload_time_iso_8601": "2023-10-21T14:20:48.335462Z",
            "url": "https://files.pythonhosted.org/packages/43/8b/554a8a8bb6da9dd1ce04c44125e2192af7b7beebf6e3dbfa5d0e285cc20f/websockets-12.0-pp310-pypy310_pp73-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b08e58b8812940d746ad74d395fb069497255cb5ef50748dfab1e8b386b1f339",
                "md5": "d0809bcea298242f4cfdc0a3c3df25a5",
                "sha256": "f44069528d45a933997a6fef143030d8ca8042f0dfaad753e2906398290e2870"
            },
            "downloads": -1,
            "filename": "websockets-12.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "d0809bcea298242f4cfdc0a3c3df25a5",
            "packagetype": "bdist_wheel",
            "python_version": "pp310",
            "requires_python": ">=3.8",
            "size": 123216,
            "upload_time": "2023-10-21T14:20:50",
            "upload_time_iso_8601": "2023-10-21T14:20:50.083791Z",
            "url": "https://files.pythonhosted.org/packages/b0/8e/58b8812940d746ad74d395fb069497255cb5ef50748dfab1e8b386b1f339/websockets-12.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "81ee272cb67ace1786ce6d9f39d47b3c55b335e8b75dd1972a7967aad39178b6",
                "md5": "5e7424a6a6b3c6d41f2411e29cae4dc8",
                "sha256": "c4e37d36f0d19f0a4413d3e18c0d03d0c268ada2061868c1e6f5ab1a6d575077"
            },
            "downloads": -1,
            "filename": "websockets-12.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "5e7424a6a6b3c6d41f2411e29cae4dc8",
            "packagetype": "bdist_wheel",
            "python_version": "pp310",
            "requires_python": ">=3.8",
            "size": 122821,
            "upload_time": "2023-10-21T14:20:51",
            "upload_time_iso_8601": "2023-10-21T14:20:51.237656Z",
            "url": "https://files.pythonhosted.org/packages/81/ee/272cb67ace1786ce6d9f39d47b3c55b335e8b75dd1972a7967aad39178b6/websockets-12.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a803387fc902b397729df166763e336f4e5cec09fe7b9d60f442542c94a21be1",
                "md5": "5aba0a2e9395f0d2aa8dc26c2c123c60",
                "sha256": "3d829f975fc2e527a3ef2f9c8f25e553eb7bc779c6665e8e1d52aa22800bb38b"
            },
            "downloads": -1,
            "filename": "websockets-12.0-pp310-pypy310_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "5aba0a2e9395f0d2aa8dc26c2c123c60",
            "packagetype": "bdist_wheel",
            "python_version": "pp310",
            "requires_python": ">=3.8",
            "size": 122768,
            "upload_time": "2023-10-21T14:20:52",
            "upload_time_iso_8601": "2023-10-21T14:20:52.590701Z",
            "url": "https://files.pythonhosted.org/packages/a8/03/387fc902b397729df166763e336f4e5cec09fe7b9d60f442542c94a21be1/websockets-12.0-pp310-pypy310_pp73-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": "50f05939fbc9bc1979d79a774ce5b7c4b33c0cefe99af22fb70f7462d0919640",
                "md5": "6cb718d0ac8a11c28ba43149eee8462d",
                "sha256": "2c71bd45a777433dd9113847af751aae36e448bc6b8c361a566cb043eda6ec30"
            },
            "downloads": -1,
            "filename": "websockets-12.0-pp310-pypy310_pp73-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "6cb718d0ac8a11c28ba43149eee8462d",
            "packagetype": "bdist_wheel",
            "python_version": "pp310",
            "requires_python": ">=3.8",
            "size": 125009,
            "upload_time": "2023-10-21T14:20:54",
            "upload_time_iso_8601": "2023-10-21T14:20:54.419152Z",
            "url": "https://files.pythonhosted.org/packages/50/f0/5939fbc9bc1979d79a774ce5b7c4b33c0cefe99af22fb70f7462d0919640/websockets-12.0-pp310-pypy310_pp73-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6198aa856d4b1655162bab77752935da5dbd779f272653b82fb2d2c8acb09a2a",
                "md5": "b65542831d374534d86f4365c495b67a",
                "sha256": "0bee75f400895aef54157b36ed6d3b308fcab62e5260703add87f44cee9c82a6"
            },
            "downloads": -1,
            "filename": "websockets-12.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "b65542831d374534d86f4365c495b67a",
            "packagetype": "bdist_wheel",
            "python_version": "pp38",
            "requires_python": ">=3.8",
            "size": 121105,
            "upload_time": "2023-10-21T14:20:55",
            "upload_time_iso_8601": "2023-10-21T14:20:55.690977Z",
            "url": "https://files.pythonhosted.org/packages/61/98/aa856d4b1655162bab77752935da5dbd779f272653b82fb2d2c8acb09a2a/websockets-12.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e1169e2c741660d541cc239cdc9f04cbc56bad2ac7585782f57ae7f329481f89",
                "md5": "da4dc930a08c3a0f406c0a297628b717",
                "sha256": "423fc1ed29f7512fceb727e2d2aecb952c46aa34895e9ed96071821309951123"
            },
            "downloads": -1,
            "filename": "websockets-12.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "da4dc930a08c3a0f406c0a297628b717",
            "packagetype": "bdist_wheel",
            "python_version": "pp38",
            "requires_python": ">=3.8",
            "size": 123213,
            "upload_time": "2023-10-21T14:20:56",
            "upload_time_iso_8601": "2023-10-21T14:20:56.995452Z",
            "url": "https://files.pythonhosted.org/packages/e1/16/9e2c741660d541cc239cdc9f04cbc56bad2ac7585782f57ae7f329481f89/websockets-12.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8881a947a715a7108d5bcae01f2a1b19fe6dbab22d7bfec64541ed3d07043aaf",
                "md5": "f7cbec6924b9e6b64e1aebe5f7302d74",
                "sha256": "27a5e9964ef509016759f2ef3f2c1e13f403725a5e6a1775555994966a66e931"
            },
            "downloads": -1,
            "filename": "websockets-12.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "f7cbec6924b9e6b64e1aebe5f7302d74",
            "packagetype": "bdist_wheel",
            "python_version": "pp38",
            "requires_python": ">=3.8",
            "size": 122820,
            "upload_time": "2023-10-21T14:20:58",
            "upload_time_iso_8601": "2023-10-21T14:20:58.254149Z",
            "url": "https://files.pythonhosted.org/packages/88/81/a947a715a7108d5bcae01f2a1b19fe6dbab22d7bfec64541ed3d07043aaf/websockets-12.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "af32f443ee05c815fccc4ca2899fe1cdcc7326b73ffb20b75d26b9b779d5d83b",
                "md5": "f8a17dccf5372be90e0616c548605b20",
                "sha256": "c3181df4583c4d3994d31fb235dc681d2aaad744fbdbf94c4802485ececdecf2"
            },
            "downloads": -1,
            "filename": "websockets-12.0-pp38-pypy38_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "f8a17dccf5372be90e0616c548605b20",
            "packagetype": "bdist_wheel",
            "python_version": "pp38",
            "requires_python": ">=3.8",
            "size": 122767,
            "upload_time": "2023-10-21T14:20:59",
            "upload_time_iso_8601": "2023-10-21T14:20:59.440614Z",
            "url": "https://files.pythonhosted.org/packages/af/32/f443ee05c815fccc4ca2899fe1cdcc7326b73ffb20b75d26b9b779d5d83b/websockets-12.0-pp38-pypy38_pp73-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": "3bf0a721a6361972aa8649db86672834545d889e9975d769348d26ccfa102e5c",
                "md5": "53e822df920cfae0ddde83ae29af5869",
                "sha256": "b067cb952ce8bf40115f6c19f478dc71c5e719b7fbaa511359795dfd9d1a6468"
            },
            "downloads": -1,
            "filename": "websockets-12.0-pp38-pypy38_pp73-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "53e822df920cfae0ddde83ae29af5869",
            "packagetype": "bdist_wheel",
            "python_version": "pp38",
            "requires_python": ">=3.8",
            "size": 125008,
            "upload_time": "2023-10-21T14:21:00",
            "upload_time_iso_8601": "2023-10-21T14:21:00.723349Z",
            "url": "https://files.pythonhosted.org/packages/3b/f0/a721a6361972aa8649db86672834545d889e9975d769348d26ccfa102e5c/websockets-12.0-pp38-pypy38_pp73-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "01aed48aebf121726d2a26e48170cd7558627b09e0d47186ddfa1be017c81663",
                "md5": "3e59d291af6fd51e39182850b5a4229c",
                "sha256": "00700340c6c7ab788f176d118775202aadea7602c5cc6be6ae127761c16d6b0b"
            },
            "downloads": -1,
            "filename": "websockets-12.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "3e59d291af6fd51e39182850b5a4229c",
            "packagetype": "bdist_wheel",
            "python_version": "pp39",
            "requires_python": ">=3.8",
            "size": 121107,
            "upload_time": "2023-10-21T14:21:02",
            "upload_time_iso_8601": "2023-10-21T14:21:02.399625Z",
            "url": "https://files.pythonhosted.org/packages/01/ae/d48aebf121726d2a26e48170cd7558627b09e0d47186ddfa1be017c81663/websockets-12.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c61a142fa072b2292ca0897c282d12f48d5b18bdda5ac32774e3d6f9bddfd8fe",
                "md5": "b8ea595d98910088ef40acb466a20c2d",
                "sha256": "e469d01137942849cff40517c97a30a93ae79917752b34029f0ec72df6b46399"
            },
            "downloads": -1,
            "filename": "websockets-12.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "b8ea595d98910088ef40acb466a20c2d",
            "packagetype": "bdist_wheel",
            "python_version": "pp39",
            "requires_python": ">=3.8",
            "size": 123209,
            "upload_time": "2023-10-21T14:21:03",
            "upload_time_iso_8601": "2023-10-21T14:21:03.591464Z",
            "url": "https://files.pythonhosted.org/packages/c6/1a/142fa072b2292ca0897c282d12f48d5b18bdda5ac32774e3d6f9bddfd8fe/websockets-12.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0372e4752b208241a606625da8d8757d98c3bfc6c69c0edc47603180c208f857",
                "md5": "92368115a6f73c91104d58acb60bef25",
                "sha256": "ffefa1374cd508d633646d51a8e9277763a9b78ae71324183693959cf94635a7"
            },
            "downloads": -1,
            "filename": "websockets-12.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "92368115a6f73c91104d58acb60bef25",
            "packagetype": "bdist_wheel",
            "python_version": "pp39",
            "requires_python": ">=3.8",
            "size": 122820,
            "upload_time": "2023-10-21T14:21:05",
            "upload_time_iso_8601": "2023-10-21T14:21:05.203383Z",
            "url": "https://files.pythonhosted.org/packages/03/72/e4752b208241a606625da8d8757d98c3bfc6c69c0edc47603180c208f857/websockets-12.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2d73a337e1275e4c3a9752896fbe467d2c6b5f25e983a2de0992e1dfaca04dbe",
                "md5": "531777edd938b761288d4f00fbe82b31",
                "sha256": "ba0cab91b3956dfa9f512147860783a1829a8d905ee218a9837c18f683239611"
            },
            "downloads": -1,
            "filename": "websockets-12.0-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "531777edd938b761288d4f00fbe82b31",
            "packagetype": "bdist_wheel",
            "python_version": "pp39",
            "requires_python": ">=3.8",
            "size": 122765,
            "upload_time": "2023-10-21T14:21:07",
            "upload_time_iso_8601": "2023-10-21T14:21:07.213496Z",
            "url": "https://files.pythonhosted.org/packages/2d/73/a337e1275e4c3a9752896fbe467d2c6b5f25e983a2de0992e1dfaca04dbe/websockets-12.0-pp39-pypy39_pp73-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": "c668ed11b1b1a24fb0fa1a8275f72464e2f1038e25cab0137a09747cd1f40836",
                "md5": "98c6eb5e1d5f92d6e917e23b7c555f82",
                "sha256": "2cb388a5bfb56df4d9a406783b7f9dbefb888c09b71629351cc6b036e9259370"
            },
            "downloads": -1,
            "filename": "websockets-12.0-pp39-pypy39_pp73-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "98c6eb5e1d5f92d6e917e23b7c555f82",
            "packagetype": "bdist_wheel",
            "python_version": "pp39",
            "requires_python": ">=3.8",
            "size": 125005,
            "upload_time": "2023-10-21T14:21:08",
            "upload_time_iso_8601": "2023-10-21T14:21:08.563701Z",
            "url": "https://files.pythonhosted.org/packages/c6/68/ed11b1b1a24fb0fa1a8275f72464e2f1038e25cab0137a09747cd1f40836/websockets-12.0-pp39-pypy39_pp73-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "794d9cc401e7b07e80532ebc8c8e993f42541534da9e9249c59ee0139dcb0352",
                "md5": "2d215994ff7bd67f6edd3012aacf6404",
                "sha256": "dc284bbc8d7c78a6c69e0c7325ab46ee5e40bb4d50e494d8131a07ef47500e9e"
            },
            "downloads": -1,
            "filename": "websockets-12.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "2d215994ff7bd67f6edd3012aacf6404",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 118370,
            "upload_time": "2023-10-21T14:21:10",
            "upload_time_iso_8601": "2023-10-21T14:21:10.075096Z",
            "url": "https://files.pythonhosted.org/packages/79/4d/9cc401e7b07e80532ebc8c8e993f42541534da9e9249c59ee0139dcb0352/websockets-12.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2e627a7874b7285413c954a4cca3c11fd851f11b2fe5b4ae2d9bee4f6d9bdb10",
                "md5": "49d033c8236aa56ba2524f65570a27c5",
                "sha256": "81df9cbcbb6c260de1e007e58c011bfebe2dafc8435107b0537f393dd38c8b1b"
            },
            "downloads": -1,
            "filename": "websockets-12.0.tar.gz",
            "has_sig": false,
            "md5_digest": "49d033c8236aa56ba2524f65570a27c5",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 104994,
            "upload_time": "2023-10-21T14:21:11",
            "upload_time_iso_8601": "2023-10-21T14:21:11.880064Z",
            "url": "https://files.pythonhosted.org/packages/2e/62/7a7874b7285413c954a4cca3c11fd851f11b2fe5b4ae2d9bee4f6d9bdb10/websockets-12.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-10-21 14:21:11",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "python-websockets",
    "github_project": "websockets",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "tox": true,
    "lcname": "websockets"
}
        
Elapsed time: 0.34057s