websockets


Namewebsockets JSON
Version 15.0 PyPI version JSON
download
home_pageNone
SummaryAn implementation of the WebSocket Protocol (RFC 6455 & 7692)
upload_time2025-02-16 11:06:55
maintainerNone
docs_urlNone
authorNone
requires_python>=3.9
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.asyncio.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) as server:
            await server.serve_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 + WebSocket servers
  that build on top of ``websockets`` to support WebSocket connections, like
  uvicorn_ or Sanic_.

.. _uvicorn: https://www.uvicorn.org/
.. _Sanic: https://sanic.dev/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": null,
    "name": "websockets",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": null,
    "keywords": "WebSocket",
    "author": null,
    "author_email": "Aymeric Augustin <aymeric.augustin@m4x.org>",
    "download_url": "https://files.pythonhosted.org/packages/2e/7a/8bc4d15af7ff30f7ba34f9a172063bfcee9f5001d7cef04bee800a658f33/websockets-15.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.asyncio.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) as server:\n            await server.serve_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 + WebSocket servers\n  that build on top of ``websockets`` to support WebSocket connections, like\n  uvicorn_ or Sanic_.\n\n.. _uvicorn: https://www.uvicorn.org/\n.. _Sanic: https://sanic.dev/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": "15.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": null,
            "digests": {
                "blake2b_256": "3df1b20cc4c1ff84911c791f36fa511a78203836bb4d603f56290de08c067437",
                "md5": "fb0dc8aee28c61fe155f9bdfe4264a4b",
                "sha256": "5e6ee18a53dd5743e6155b8ff7e8e477c25b29b440f87f65be8165275c87fef0"
            },
            "downloads": -1,
            "filename": "websockets-15.0-cp310-cp310-macosx_10_9_universal2.whl",
            "has_sig": false,
            "md5_digest": "fb0dc8aee28c61fe155f9bdfe4264a4b",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.9",
            "size": 174701,
            "upload_time": "2025-02-16T11:04:51",
            "upload_time_iso_8601": "2025-02-16T11:04:51.753050Z",
            "url": "https://files.pythonhosted.org/packages/3d/f1/b20cc4c1ff84911c791f36fa511a78203836bb4d603f56290de08c067437/websockets-15.0-cp310-cp310-macosx_10_9_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f9e84de59ee85ec86052ca574f4e5327ef948e4f77757d3c9c1503f5a0e9c039",
                "md5": "53066cab2e29175e53a1f86071c66c7a",
                "sha256": "ee06405ea2e67366a661ed313e14cf2a86e84142a3462852eb96348f7219cee3"
            },
            "downloads": -1,
            "filename": "websockets-15.0-cp310-cp310-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "53066cab2e29175e53a1f86071c66c7a",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.9",
            "size": 172358,
            "upload_time": "2025-02-16T11:04:54",
            "upload_time_iso_8601": "2025-02-16T11:04:54.456860Z",
            "url": "https://files.pythonhosted.org/packages/f9/e8/4de59ee85ec86052ca574f4e5327ef948e4f77757d3c9c1503f5a0e9c039/websockets-15.0-cp310-cp310-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "2feab0f95815cdc83d61b1a895858671c6af38a76c23f3ea5d91e2ba11bbedc7",
                "md5": "66bfd19a02fc6815c383177adb71e0cd",
                "sha256": "8711682a629bbcaf492f5e0af72d378e976ea1d127a2d47584fa1c2c080b436b"
            },
            "downloads": -1,
            "filename": "websockets-15.0-cp310-cp310-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "66bfd19a02fc6815c383177adb71e0cd",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.9",
            "size": 172610,
            "upload_time": "2025-02-16T11:04:56",
            "upload_time_iso_8601": "2025-02-16T11:04:56.753485Z",
            "url": "https://files.pythonhosted.org/packages/2f/ea/b0f95815cdc83d61b1a895858671c6af38a76c23f3ea5d91e2ba11bbedc7/websockets-15.0-cp310-cp310-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "09edc5d8f1f296f475c00611a40eff6a952248785efb125f91a0b29575f36ba6",
                "md5": "1e5116331482970f39b61e6baf4236b4",
                "sha256": "94c4a9b01eede952442c088d415861b0cf2053cbd696b863f6d5022d4e4e2453"
            },
            "downloads": -1,
            "filename": "websockets-15.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "1e5116331482970f39b61e6baf4236b4",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.9",
            "size": 181579,
            "upload_time": "2025-02-16T11:04:59",
            "upload_time_iso_8601": "2025-02-16T11:04:59.042365Z",
            "url": "https://files.pythonhosted.org/packages/09/ed/c5d8f1f296f475c00611a40eff6a952248785efb125f91a0b29575f36ba6/websockets-15.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "b7fc2444b5ae792d92179f20cec53475bcc25d1d7f00a2be9947de9837ef230a",
                "md5": "d128d8830e60b27b233eac004045369d",
                "sha256": "45535fead66e873f411c1d3cf0d3e175e66f4dd83c4f59d707d5b3e4c56541c4"
            },
            "downloads": -1,
            "filename": "websockets-15.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "d128d8830e60b27b233eac004045369d",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.9",
            "size": 180588,
            "upload_time": "2025-02-16T11:05:01",
            "upload_time_iso_8601": "2025-02-16T11:05:01.278523Z",
            "url": "https://files.pythonhosted.org/packages/b7/fc/2444b5ae792d92179f20cec53475bcc25d1d7f00a2be9947de9837ef230a/websockets-15.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "ffb50945a31562d351cff26d76a2ae9a4ba4536e698aa059a4262afd793b2a1d",
                "md5": "b672be91e45b43b4c6a9124a2dfdfb1d",
                "sha256": "0e389efe46ccb25a1f93d08c7a74e8123a2517f7b7458f043bd7529d1a63ffeb"
            },
            "downloads": -1,
            "filename": "websockets-15.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": "b672be91e45b43b4c6a9124a2dfdfb1d",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.9",
            "size": 180902,
            "upload_time": "2025-02-16T11:05:02",
            "upload_time_iso_8601": "2025-02-16T11:05:02.772363Z",
            "url": "https://files.pythonhosted.org/packages/ff/b5/0945a31562d351cff26d76a2ae9a4ba4536e698aa059a4262afd793b2a1d/websockets-15.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": null,
            "digests": {
                "blake2b_256": "b67ce9d844b87754bc83b294cc1c695cbc6c5d42e329b85d2bf2d7bb9554d09c",
                "md5": "5e91af569a63c004ef5ffde2eedb1941",
                "sha256": "67a04754d121ea5ca39ddedc3f77071651fb5b0bc6b973c71c515415b44ed9c5"
            },
            "downloads": -1,
            "filename": "websockets-15.0-cp310-cp310-musllinux_1_2_aarch64.whl",
            "has_sig": false,
            "md5_digest": "5e91af569a63c004ef5ffde2eedb1941",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.9",
            "size": 181282,
            "upload_time": "2025-02-16T11:05:04",
            "upload_time_iso_8601": "2025-02-16T11:05:04.097911Z",
            "url": "https://files.pythonhosted.org/packages/b6/7c/e9d844b87754bc83b294cc1c695cbc6c5d42e329b85d2bf2d7bb9554d09c/websockets-15.0-cp310-cp310-musllinux_1_2_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "9e6c6a5d3272f494fa2fb4806b896ecb312bd6c72bab632df4ace19946c079dc",
                "md5": "af36885c5409ff375523bd6ff01f0bb7",
                "sha256": "bd66b4865c8b853b8cca7379afb692fc7f52cf898786537dfb5e5e2d64f0a47f"
            },
            "downloads": -1,
            "filename": "websockets-15.0-cp310-cp310-musllinux_1_2_i686.whl",
            "has_sig": false,
            "md5_digest": "af36885c5409ff375523bd6ff01f0bb7",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.9",
            "size": 180694,
            "upload_time": "2025-02-16T11:05:05",
            "upload_time_iso_8601": "2025-02-16T11:05:05.428267Z",
            "url": "https://files.pythonhosted.org/packages/9e/6c/6a5d3272f494fa2fb4806b896ecb312bd6c72bab632df4ace19946c079dc/websockets-15.0-cp310-cp310-musllinux_1_2_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "b2321fb4b62c2ec2c9844d4ddaa4021d993552c7c493a0acdcec95551679d501",
                "md5": "7ce704cc3d0e67adf122b34f66842ec1",
                "sha256": "a4cc73a6ae0a6751b76e69cece9d0311f054da9b22df6a12f2c53111735657c8"
            },
            "downloads": -1,
            "filename": "websockets-15.0-cp310-cp310-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "7ce704cc3d0e67adf122b34f66842ec1",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.9",
            "size": 180631,
            "upload_time": "2025-02-16T11:05:07",
            "upload_time_iso_8601": "2025-02-16T11:05:07.645368Z",
            "url": "https://files.pythonhosted.org/packages/b2/32/1fb4b62c2ec2c9844d4ddaa4021d993552c7c493a0acdcec95551679d501/websockets-15.0-cp310-cp310-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "e49b5ef1ddb8857ce894217bdd9572ad98c1cef20d8f9f0f43823b782b7ded6b",
                "md5": "a68d8f41192e9d363bcfb66ee35e6f3b",
                "sha256": "89da58e4005e153b03fe8b8794330e3f6a9774ee9e1c3bd5bc52eb098c3b0c4f"
            },
            "downloads": -1,
            "filename": "websockets-15.0-cp310-cp310-win32.whl",
            "has_sig": false,
            "md5_digest": "a68d8f41192e9d363bcfb66ee35e6f3b",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.9",
            "size": 175664,
            "upload_time": "2025-02-16T11:05:09",
            "upload_time_iso_8601": "2025-02-16T11:05:09.992223Z",
            "url": "https://files.pythonhosted.org/packages/e4/9b/5ef1ddb8857ce894217bdd9572ad98c1cef20d8f9f0f43823b782b7ded6b/websockets-15.0-cp310-cp310-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "2963c320572ccf813ed2bc3058a0e0291ee95eb258dc5e6b3446ca45dc1af0fd",
                "md5": "ae9fee1d74a4e2550f0666a303920a7a",
                "sha256": "4ff380aabd7a74a42a760ee76c68826a8f417ceb6ea415bd574a035a111fd133"
            },
            "downloads": -1,
            "filename": "websockets-15.0-cp310-cp310-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "ae9fee1d74a4e2550f0666a303920a7a",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.9",
            "size": 176109,
            "upload_time": "2025-02-16T11:05:11",
            "upload_time_iso_8601": "2025-02-16T11:05:11.390840Z",
            "url": "https://files.pythonhosted.org/packages/29/63/c320572ccf813ed2bc3058a0e0291ee95eb258dc5e6b3446ca45dc1af0fd/websockets-15.0-cp310-cp310-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "ee1681a7403c8c0a33383de647e89c07824ea6a654e3877d6ff402cbae298cb8",
                "md5": "e4d1ffe4948bcd6dd9fdbf7f24398b5a",
                "sha256": "dd24c4d256558429aeeb8d6c24ebad4e982ac52c50bc3670ae8646c181263965"
            },
            "downloads": -1,
            "filename": "websockets-15.0-cp311-cp311-macosx_10_9_universal2.whl",
            "has_sig": false,
            "md5_digest": "e4d1ffe4948bcd6dd9fdbf7f24398b5a",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.9",
            "size": 174702,
            "upload_time": "2025-02-16T11:05:14",
            "upload_time_iso_8601": "2025-02-16T11:05:14.163184Z",
            "url": "https://files.pythonhosted.org/packages/ee/16/81a7403c8c0a33383de647e89c07824ea6a654e3877d6ff402cbae298cb8/websockets-15.0-cp311-cp311-macosx_10_9_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "ef404629202386a3bf1195db9fe41baeb1d6dfd8d72e651d9592d81dae7fdc7c",
                "md5": "f5a72f6c435fa55f7d6913f1e1a7034d",
                "sha256": "f83eca8cbfd168e424dfa3b3b5c955d6c281e8fc09feb9d870886ff8d03683c7"
            },
            "downloads": -1,
            "filename": "websockets-15.0-cp311-cp311-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "f5a72f6c435fa55f7d6913f1e1a7034d",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.9",
            "size": 172359,
            "upload_time": "2025-02-16T11:05:15",
            "upload_time_iso_8601": "2025-02-16T11:05:15.613761Z",
            "url": "https://files.pythonhosted.org/packages/ef/40/4629202386a3bf1195db9fe41baeb1d6dfd8d72e651d9592d81dae7fdc7c/websockets-15.0-cp311-cp311-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "7b33dfb650e822bc7912d8c542c452497867af91dec81e7b5bf96aca5b419d58",
                "md5": "fe2ef8bd5de30193d2fd5affb37caa9a",
                "sha256": "4095a1f2093002c2208becf6f9a178b336b7572512ee0a1179731acb7788e8ad"
            },
            "downloads": -1,
            "filename": "websockets-15.0-cp311-cp311-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "fe2ef8bd5de30193d2fd5affb37caa9a",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.9",
            "size": 172604,
            "upload_time": "2025-02-16T11:05:17",
            "upload_time_iso_8601": "2025-02-16T11:05:17.855880Z",
            "url": "https://files.pythonhosted.org/packages/7b/33/dfb650e822bc7912d8c542c452497867af91dec81e7b5bf96aca5b419d58/websockets-15.0-cp311-cp311-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "2e52666743114513fcffd43ee5df261a1eb5d41f8e9861b7a190b730732c19ba",
                "md5": "041ab37c8819e9d530925843a5454493",
                "sha256": "fb915101dfbf318486364ce85662bb7b020840f68138014972c08331458d41f3"
            },
            "downloads": -1,
            "filename": "websockets-15.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "041ab37c8819e9d530925843a5454493",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.9",
            "size": 182145,
            "upload_time": "2025-02-16T11:05:19",
            "upload_time_iso_8601": "2025-02-16T11:05:19.186474Z",
            "url": "https://files.pythonhosted.org/packages/2e/52/666743114513fcffd43ee5df261a1eb5d41f8e9861b7a190b730732c19ba/websockets-15.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "9c635273f146b13aa4a057a95ab0855d9990f3a1ced63693f4365135d1abfacc",
                "md5": "1057ebc58dee9389933cb33e57d6964c",
                "sha256": "45d464622314973d78f364689d5dbb9144e559f93dca11b11af3f2480b5034e1"
            },
            "downloads": -1,
            "filename": "websockets-15.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "1057ebc58dee9389933cb33e57d6964c",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.9",
            "size": 181152,
            "upload_time": "2025-02-16T11:05:21",
            "upload_time_iso_8601": "2025-02-16T11:05:21.319021Z",
            "url": "https://files.pythonhosted.org/packages/9c/63/5273f146b13aa4a057a95ab0855d9990f3a1ced63693f4365135d1abfacc/websockets-15.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "0fae075697f3f97de7c26b73ae96d952e13fa36393e0db3f028540b28954e0a9",
                "md5": "dc2a5721562f22ea4926465d0b23c52a",
                "sha256": "ace960769d60037ca9625b4c578a6f28a14301bd2a1ff13bb00e824ac9f73e55"
            },
            "downloads": -1,
            "filename": "websockets-15.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": "dc2a5721562f22ea4926465d0b23c52a",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.9",
            "size": 181523,
            "upload_time": "2025-02-16T11:05:22",
            "upload_time_iso_8601": "2025-02-16T11:05:22.805007Z",
            "url": "https://files.pythonhosted.org/packages/0f/ae/075697f3f97de7c26b73ae96d952e13fa36393e0db3f028540b28954e0a9/websockets-15.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": null,
            "digests": {
                "blake2b_256": "258706d091bbcbe01903bed3dad3bb4a1a3c516f61e611ec31fffb28abe4974b",
                "md5": "4485f1a846edb7581132215528fe260d",
                "sha256": "c7cd4b1015d2f60dfe539ee6c95bc968d5d5fad92ab01bb5501a77393da4f596"
            },
            "downloads": -1,
            "filename": "websockets-15.0-cp311-cp311-musllinux_1_2_aarch64.whl",
            "has_sig": false,
            "md5_digest": "4485f1a846edb7581132215528fe260d",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.9",
            "size": 181791,
            "upload_time": "2025-02-16T11:05:25",
            "upload_time_iso_8601": "2025-02-16T11:05:25.031042Z",
            "url": "https://files.pythonhosted.org/packages/25/87/06d091bbcbe01903bed3dad3bb4a1a3c516f61e611ec31fffb28abe4974b/websockets-15.0-cp311-cp311-musllinux_1_2_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "77085063b6cc1b2aa1fba2ee3b578b777db22fde7145f121d07fd878811e983b",
                "md5": "d3496c8ad1d890068e37d87e6050ee25",
                "sha256": "4f7290295794b5dec470867c7baa4a14182b9732603fd0caf2a5bf1dc3ccabf3"
            },
            "downloads": -1,
            "filename": "websockets-15.0-cp311-cp311-musllinux_1_2_i686.whl",
            "has_sig": false,
            "md5_digest": "d3496c8ad1d890068e37d87e6050ee25",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.9",
            "size": 181231,
            "upload_time": "2025-02-16T11:05:26",
            "upload_time_iso_8601": "2025-02-16T11:05:26.306998Z",
            "url": "https://files.pythonhosted.org/packages/77/08/5063b6cc1b2aa1fba2ee3b578b777db22fde7145f121d07fd878811e983b/websockets-15.0-cp311-cp311-musllinux_1_2_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "86ffaf23084df0a7405bb2add12add8c17d6192a8de9480f1b90d12352ba2b7d",
                "md5": "7719db26c2866ea9e00c7e7ec4b12f43",
                "sha256": "3abd670ca7ce230d5a624fd3d55e055215d8d9b723adee0a348352f5d8d12ff4"
            },
            "downloads": -1,
            "filename": "websockets-15.0-cp311-cp311-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "7719db26c2866ea9e00c7e7ec4b12f43",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.9",
            "size": 181191,
            "upload_time": "2025-02-16T11:05:27",
            "upload_time_iso_8601": "2025-02-16T11:05:27.722879Z",
            "url": "https://files.pythonhosted.org/packages/86/ff/af23084df0a7405bb2add12add8c17d6192a8de9480f1b90d12352ba2b7d/websockets-15.0-cp311-cp311-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "21ceb2bdfcf49201dee0b899edc6a814755763ec03d74f2714923d38453a9e8d",
                "md5": "0fac0e4a3c9415f53b61cba8f1b8fed6",
                "sha256": "110a847085246ab8d4d119632145224d6b49e406c64f1bbeed45c6f05097b680"
            },
            "downloads": -1,
            "filename": "websockets-15.0-cp311-cp311-win32.whl",
            "has_sig": false,
            "md5_digest": "0fac0e4a3c9415f53b61cba8f1b8fed6",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.9",
            "size": 175666,
            "upload_time": "2025-02-16T11:05:30",
            "upload_time_iso_8601": "2025-02-16T11:05:30.048150Z",
            "url": "https://files.pythonhosted.org/packages/21/ce/b2bdfcf49201dee0b899edc6a814755763ec03d74f2714923d38453a9e8d/websockets-15.0-cp311-cp311-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "8d7b444edcd5365538c226b631897975a65bbf5ccf27c77102e17d8f12a306ea",
                "md5": "5943b983bc847216ceb54dba60951a1f",
                "sha256": "8d7bbbe2cd6ed80aceef2a14e9f1c1b61683194c216472ed5ff33b700e784e37"
            },
            "downloads": -1,
            "filename": "websockets-15.0-cp311-cp311-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "5943b983bc847216ceb54dba60951a1f",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.9",
            "size": 176105,
            "upload_time": "2025-02-16T11:05:31",
            "upload_time_iso_8601": "2025-02-16T11:05:31.406857Z",
            "url": "https://files.pythonhosted.org/packages/8d/7b/444edcd5365538c226b631897975a65bbf5ccf27c77102e17d8f12a306ea/websockets-15.0-cp311-cp311-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "221e92c4547d7b2a93f848aedaf37e9054111bc00dc11bff4385ca3f80dbb412",
                "md5": "5ea46576b86c3ae9311cc448006df8f2",
                "sha256": "cccc18077acd34c8072578394ec79563664b1c205f7a86a62e94fafc7b59001f"
            },
            "downloads": -1,
            "filename": "websockets-15.0-cp312-cp312-macosx_10_13_universal2.whl",
            "has_sig": false,
            "md5_digest": "5ea46576b86c3ae9311cc448006df8f2",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.9",
            "size": 174709,
            "upload_time": "2025-02-16T11:05:32",
            "upload_time_iso_8601": "2025-02-16T11:05:32.816042Z",
            "url": "https://files.pythonhosted.org/packages/22/1e/92c4547d7b2a93f848aedaf37e9054111bc00dc11bff4385ca3f80dbb412/websockets-15.0-cp312-cp312-macosx_10_13_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "9f37eae4830a28061ba552516d84478686b637cd9e57d6a90b45ad69e89cb0af",
                "md5": "78700b0db5095d629d9caccf15e27915",
                "sha256": "d4c22992e24f12de340ca5f824121a5b3e1a37ad4360b4e1aaf15e9d1c42582d"
            },
            "downloads": -1,
            "filename": "websockets-15.0-cp312-cp312-macosx_10_13_x86_64.whl",
            "has_sig": false,
            "md5_digest": "78700b0db5095d629d9caccf15e27915",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.9",
            "size": 172372,
            "upload_time": "2025-02-16T11:05:35",
            "upload_time_iso_8601": "2025-02-16T11:05:35.342312Z",
            "url": "https://files.pythonhosted.org/packages/9f/37/eae4830a28061ba552516d84478686b637cd9e57d6a90b45ad69e89cb0af/websockets-15.0-cp312-cp312-macosx_10_13_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "462fb409f8b8aa9328d5a47f7a301a43319d540d70cf036d1e6443675978a988",
                "md5": "7a4de8a8484e48bf2b3900e2edf17c6d",
                "sha256": "1206432cc6c644f6fc03374b264c5ff805d980311563202ed7fef91a38906276"
            },
            "downloads": -1,
            "filename": "websockets-15.0-cp312-cp312-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "7a4de8a8484e48bf2b3900e2edf17c6d",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.9",
            "size": 172607,
            "upload_time": "2025-02-16T11:05:36",
            "upload_time_iso_8601": "2025-02-16T11:05:36.704613Z",
            "url": "https://files.pythonhosted.org/packages/46/2f/b409f8b8aa9328d5a47f7a301a43319d540d70cf036d1e6443675978a988/websockets-15.0-cp312-cp312-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "d681d7e2e4542d4b4df849b0110df1b1f94f2647b71ab4b65d672090931ad2bb",
                "md5": "a33909dd78c558b5e5eddbbee3f88b17",
                "sha256": "5d3cc75ef3e17490042c47e0523aee1bcc4eacd2482796107fd59dd1100a44bc"
            },
            "downloads": -1,
            "filename": "websockets-15.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "a33909dd78c558b5e5eddbbee3f88b17",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.9",
            "size": 182422,
            "upload_time": "2025-02-16T11:05:38",
            "upload_time_iso_8601": "2025-02-16T11:05:38.050249Z",
            "url": "https://files.pythonhosted.org/packages/d6/81/d7e2e4542d4b4df849b0110df1b1f94f2647b71ab4b65d672090931ad2bb/websockets-15.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "b6913b303160938d123eea97f58be363f7dbec76e8c59d587e07b5bc257dd584",
                "md5": "8cd306c7887cdabdf46ec9a47b378b62",
                "sha256": "b89504227a5311610e4be16071465885a0a3d6b0e82e305ef46d9b064ce5fb72"
            },
            "downloads": -1,
            "filename": "websockets-15.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "8cd306c7887cdabdf46ec9a47b378b62",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.9",
            "size": 181362,
            "upload_time": "2025-02-16T11:05:40",
            "upload_time_iso_8601": "2025-02-16T11:05:40.346101Z",
            "url": "https://files.pythonhosted.org/packages/b6/91/3b303160938d123eea97f58be363f7dbec76e8c59d587e07b5bc257dd584/websockets-15.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f28bdf6807f1ca339c567aba9a7ab03bfdb9a833f625e8d2b4fc7529e4c701de",
                "md5": "cacd97b0ab1a859609275341dab3f453",
                "sha256": "56e3efe356416bc67a8e093607315951d76910f03d2b3ad49c4ade9207bf710d"
            },
            "downloads": -1,
            "filename": "websockets-15.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": "cacd97b0ab1a859609275341dab3f453",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.9",
            "size": 181787,
            "upload_time": "2025-02-16T11:05:42",
            "upload_time_iso_8601": "2025-02-16T11:05:42.610717Z",
            "url": "https://files.pythonhosted.org/packages/f2/8b/df6807f1ca339c567aba9a7ab03bfdb9a833f625e8d2b4fc7529e4c701de/websockets-15.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": null,
            "digests": {
                "blake2b_256": "2137e6d3d5ebb0ebcaf98ae84904205c9dcaf3e0fe93e65000b9f08631ed7309",
                "md5": "1fb2434d6633ffa2c8a716ba9e2cba20",
                "sha256": "0f2205cdb444a42a7919690238fb5979a05439b9dbb73dd47c863d39640d85ab"
            },
            "downloads": -1,
            "filename": "websockets-15.0-cp312-cp312-musllinux_1_2_aarch64.whl",
            "has_sig": false,
            "md5_digest": "1fb2434d6633ffa2c8a716ba9e2cba20",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.9",
            "size": 182058,
            "upload_time": "2025-02-16T11:05:45",
            "upload_time_iso_8601": "2025-02-16T11:05:45.126152Z",
            "url": "https://files.pythonhosted.org/packages/21/37/e6d3d5ebb0ebcaf98ae84904205c9dcaf3e0fe93e65000b9f08631ed7309/websockets-15.0-cp312-cp312-musllinux_1_2_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "c9df6aca296f2be4c638ad20908bb3d7c94ce7afc8d9b4b2b0780d1fc59b359c",
                "md5": "e78d8da98c0fd7b318218ea0b00c6566",
                "sha256": "aea01f40995fa0945c020228ab919b8dfc93fc8a9f2d3d705ab5b793f32d9e99"
            },
            "downloads": -1,
            "filename": "websockets-15.0-cp312-cp312-musllinux_1_2_i686.whl",
            "has_sig": false,
            "md5_digest": "e78d8da98c0fd7b318218ea0b00c6566",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.9",
            "size": 181434,
            "upload_time": "2025-02-16T11:05:46",
            "upload_time_iso_8601": "2025-02-16T11:05:46.692739Z",
            "url": "https://files.pythonhosted.org/packages/c9/df/6aca296f2be4c638ad20908bb3d7c94ce7afc8d9b4b2b0780d1fc59b359c/websockets-15.0-cp312-cp312-musllinux_1_2_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "88f175717a982bab39bbe63c83f9df0e7753e5c98bab907eb4fb5d97fe5c8c11",
                "md5": "c92ce5ac539ed9c1c7149a8f2da9dc8f",
                "sha256": "a9f8e33747b1332db11cf7fcf4a9512bef9748cb5eb4d3f7fbc8c30d75dc6ffc"
            },
            "downloads": -1,
            "filename": "websockets-15.0-cp312-cp312-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "c92ce5ac539ed9c1c7149a8f2da9dc8f",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.9",
            "size": 181431,
            "upload_time": "2025-02-16T11:05:48",
            "upload_time_iso_8601": "2025-02-16T11:05:48.194178Z",
            "url": "https://files.pythonhosted.org/packages/88/f1/75717a982bab39bbe63c83f9df0e7753e5c98bab907eb4fb5d97fe5c8c11/websockets-15.0-cp312-cp312-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "e715cee9e63ed9ac5bfc1a3ae8fc6c02c41745023c21eed622eef142d8fdd749",
                "md5": "2d51e1b503b743bec08583dd395c49d7",
                "sha256": "32e02a2d83f4954aa8c17e03fe8ec6962432c39aca4be7e8ee346b05a3476904"
            },
            "downloads": -1,
            "filename": "websockets-15.0-cp312-cp312-win32.whl",
            "has_sig": false,
            "md5_digest": "2d51e1b503b743bec08583dd395c49d7",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.9",
            "size": 175678,
            "upload_time": "2025-02-16T11:05:49",
            "upload_time_iso_8601": "2025-02-16T11:05:49.592758Z",
            "url": "https://files.pythonhosted.org/packages/e7/15/cee9e63ed9ac5bfc1a3ae8fc6c02c41745023c21eed622eef142d8fdd749/websockets-15.0-cp312-cp312-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "4e00993974c60f40faabb725d4dbae8b072ef73b4c4454bd261d3b1d34ace41f",
                "md5": "6086335103a54b09ffb852ec2b536710",
                "sha256": "ffc02b159b65c05f2ed9ec176b715b66918a674bd4daed48a9a7a590dd4be1aa"
            },
            "downloads": -1,
            "filename": "websockets-15.0-cp312-cp312-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "6086335103a54b09ffb852ec2b536710",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.9",
            "size": 176119,
            "upload_time": "2025-02-16T11:05:51",
            "upload_time_iso_8601": "2025-02-16T11:05:51.926006Z",
            "url": "https://files.pythonhosted.org/packages/4e/00/993974c60f40faabb725d4dbae8b072ef73b4c4454bd261d3b1d34ace41f/websockets-15.0-cp312-cp312-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "1223be28dc1023707ac51768f848d28a946443041a348ee3a54abdf9f6283372",
                "md5": "1737631a5bef3bd1ab6ec4f58a075fb0",
                "sha256": "d2244d8ab24374bed366f9ff206e2619345f9cd7fe79aad5225f53faac28b6b1"
            },
            "downloads": -1,
            "filename": "websockets-15.0-cp313-cp313-macosx_10_13_universal2.whl",
            "has_sig": false,
            "md5_digest": "1737631a5bef3bd1ab6ec4f58a075fb0",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.9",
            "size": 174714,
            "upload_time": "2025-02-16T11:05:53",
            "upload_time_iso_8601": "2025-02-16T11:05:53.236231Z",
            "url": "https://files.pythonhosted.org/packages/12/23/be28dc1023707ac51768f848d28a946443041a348ee3a54abdf9f6283372/websockets-15.0-cp313-cp313-macosx_10_13_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "8fff02b5e9fbb078e7666bf3d25c18c69b499747a12f3e7f2776063ef3fb7061",
                "md5": "c9f0010ab7ae5df1030f328ca56de5dc",
                "sha256": "3a302241fbe825a3e4fe07666a2ab513edfdc6d43ce24b79691b45115273b5e7"
            },
            "downloads": -1,
            "filename": "websockets-15.0-cp313-cp313-macosx_10_13_x86_64.whl",
            "has_sig": false,
            "md5_digest": "c9f0010ab7ae5df1030f328ca56de5dc",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.9",
            "size": 172374,
            "upload_time": "2025-02-16T11:05:55",
            "upload_time_iso_8601": "2025-02-16T11:05:55.551153Z",
            "url": "https://files.pythonhosted.org/packages/8f/ff/02b5e9fbb078e7666bf3d25c18c69b499747a12f3e7f2776063ef3fb7061/websockets-15.0-cp313-cp313-macosx_10_13_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "8e61901c8d4698e0477eff4c3c664d53f898b601fa83af4ce81946650ec2a4cb",
                "md5": "5d505eca9768bb8c12300dda14e7e73f",
                "sha256": "10552fed076757a70ba2c18edcbc601c7637b30cdfe8c24b65171e824c7d6081"
            },
            "downloads": -1,
            "filename": "websockets-15.0-cp313-cp313-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "5d505eca9768bb8c12300dda14e7e73f",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.9",
            "size": 172605,
            "upload_time": "2025-02-16T11:05:57",
            "upload_time_iso_8601": "2025-02-16T11:05:57.613576Z",
            "url": "https://files.pythonhosted.org/packages/8e/61/901c8d4698e0477eff4c3c664d53f898b601fa83af4ce81946650ec2a4cb/websockets-15.0-cp313-cp313-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "d24bdc47601a80dff317aecf8da7b4ab278d11d3494b2c373b493e4887561f90",
                "md5": "170b798bbcd6ac48271100f71c3476e3",
                "sha256": "c53f97032b87a406044a1c33d1e9290cc38b117a8062e8a8b285175d7e2f99c9"
            },
            "downloads": -1,
            "filename": "websockets-15.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "170b798bbcd6ac48271100f71c3476e3",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.9",
            "size": 182380,
            "upload_time": "2025-02-16T11:05:58",
            "upload_time_iso_8601": "2025-02-16T11:05:58.984253Z",
            "url": "https://files.pythonhosted.org/packages/d2/4b/dc47601a80dff317aecf8da7b4ab278d11d3494b2c373b493e4887561f90/websockets-15.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "83f7b155d2b38f05ed47a0b8de1c9ea245fcd7fc625d89f35a37eccba34b42de",
                "md5": "b0f851626a6ae83d0a49f340f7f3fdec",
                "sha256": "1caf951110ca757b8ad9c4974f5cac7b8413004d2f29707e4d03a65d54cedf2b"
            },
            "downloads": -1,
            "filename": "websockets-15.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "b0f851626a6ae83d0a49f340f7f3fdec",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.9",
            "size": 181325,
            "upload_time": "2025-02-16T11:06:01",
            "upload_time_iso_8601": "2025-02-16T11:06:01.381239Z",
            "url": "https://files.pythonhosted.org/packages/83/f7/b155d2b38f05ed47a0b8de1c9ea245fcd7fc625d89f35a37eccba34b42de/websockets-15.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "d3ff040a20c01c294695cac0e361caf86f33347acc38f164f6d2be1d3e007d9f",
                "md5": "c3cfe562965b2417b6757ab35c65f729",
                "sha256": "8bf1ab71f9f23b0a1d52ec1682a3907e0c208c12fef9c3e99d2b80166b17905f"
            },
            "downloads": -1,
            "filename": "websockets-15.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "c3cfe562965b2417b6757ab35c65f729",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.9",
            "size": 181763,
            "upload_time": "2025-02-16T11:06:04",
            "upload_time_iso_8601": "2025-02-16T11:06:04.344519Z",
            "url": "https://files.pythonhosted.org/packages/d3/ff/040a20c01c294695cac0e361caf86f33347acc38f164f6d2be1d3e007d9f/websockets-15.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "cb6aaf23e93678fda8341ac8775e85123425e45c608389d3514863c702896ea5",
                "md5": "247ac0bef90063b9fa361131b90f6f9f",
                "sha256": "bfcd3acc1a81f106abac6afd42327d2cf1e77ec905ae11dc1d9142a006a496b6"
            },
            "downloads": -1,
            "filename": "websockets-15.0-cp313-cp313-musllinux_1_2_aarch64.whl",
            "has_sig": false,
            "md5_digest": "247ac0bef90063b9fa361131b90f6f9f",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.9",
            "size": 182097,
            "upload_time": "2025-02-16T11:06:05",
            "upload_time_iso_8601": "2025-02-16T11:06:05.722972Z",
            "url": "https://files.pythonhosted.org/packages/cb/6a/af23e93678fda8341ac8775e85123425e45c608389d3514863c702896ea5/websockets-15.0-cp313-cp313-musllinux_1_2_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "7e3e1069e159c30129dc03c01513b5830237e576f47cedb888777dd885cae583",
                "md5": "79bd6145261da9d15c1b18b6eaf25f0c",
                "sha256": "c8c5c8e1bac05ef3c23722e591ef4f688f528235e2480f157a9cfe0a19081375"
            },
            "downloads": -1,
            "filename": "websockets-15.0-cp313-cp313-musllinux_1_2_i686.whl",
            "has_sig": false,
            "md5_digest": "79bd6145261da9d15c1b18b6eaf25f0c",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.9",
            "size": 181485,
            "upload_time": "2025-02-16T11:06:07",
            "upload_time_iso_8601": "2025-02-16T11:06:07.076828Z",
            "url": "https://files.pythonhosted.org/packages/7e/3e/1069e159c30129dc03c01513b5830237e576f47cedb888777dd885cae583/websockets-15.0-cp313-cp313-musllinux_1_2_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "9aa7c91c47103f1cd941b576bbc452601e9e01f67d5c9be3e0a9abe726491ab5",
                "md5": "1b4ddb516d53d2a1f3a69b278adba6f2",
                "sha256": "86bfb52a9cfbcc09aba2b71388b0a20ea5c52b6517c0b2e316222435a8cdab72"
            },
            "downloads": -1,
            "filename": "websockets-15.0-cp313-cp313-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "1b4ddb516d53d2a1f3a69b278adba6f2",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.9",
            "size": 181466,
            "upload_time": "2025-02-16T11:06:08",
            "upload_time_iso_8601": "2025-02-16T11:06:08.927369Z",
            "url": "https://files.pythonhosted.org/packages/9a/a7/c91c47103f1cd941b576bbc452601e9e01f67d5c9be3e0a9abe726491ab5/websockets-15.0-cp313-cp313-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "1632a4ca6e3d56c24aac46b0cf5c03b841379f6409d07fc2044b244f90f54105",
                "md5": "1e931fb7e1602bb0bb35f83ba4f83485",
                "sha256": "26ba70fed190708551c19a360f9d7eca8e8c0f615d19a574292b7229e0ae324c"
            },
            "downloads": -1,
            "filename": "websockets-15.0-cp313-cp313-win32.whl",
            "has_sig": false,
            "md5_digest": "1e931fb7e1602bb0bb35f83ba4f83485",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.9",
            "size": 175673,
            "upload_time": "2025-02-16T11:06:11",
            "upload_time_iso_8601": "2025-02-16T11:06:11.188969Z",
            "url": "https://files.pythonhosted.org/packages/16/32/a4ca6e3d56c24aac46b0cf5c03b841379f6409d07fc2044b244f90f54105/websockets-15.0-cp313-cp313-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "c03125a417a23e985b61ffa5544f9facfe4a118cb64d664c886f1244a8baeca5",
                "md5": "fc4f89559ffa469fa226207aca8dfc23",
                "sha256": "ae721bcc8e69846af00b7a77a220614d9b2ec57d25017a6bbde3a99473e41ce8"
            },
            "downloads": -1,
            "filename": "websockets-15.0-cp313-cp313-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "fc4f89559ffa469fa226207aca8dfc23",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.9",
            "size": 176115,
            "upload_time": "2025-02-16T11:06:12",
            "upload_time_iso_8601": "2025-02-16T11:06:12.602854Z",
            "url": "https://files.pythonhosted.org/packages/c0/31/25a417a23e985b61ffa5544f9facfe4a118cb64d664c886f1244a8baeca5/websockets-15.0-cp313-cp313-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "d6fc070a2ac3741d1ed169a947841a8dfbff2b9a935a039b147906cc8d37d9ab",
                "md5": "2e1d059bf4734ede262411110883f9d6",
                "sha256": "c348abc5924caa02a62896300e32ea80a81521f91d6db2e853e6b1994017c9f6"
            },
            "downloads": -1,
            "filename": "websockets-15.0-cp39-cp39-macosx_10_9_universal2.whl",
            "has_sig": false,
            "md5_digest": "2e1d059bf4734ede262411110883f9d6",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 174697,
            "upload_time": "2025-02-16T11:06:15",
            "upload_time_iso_8601": "2025-02-16T11:06:15.488668Z",
            "url": "https://files.pythonhosted.org/packages/d6/fc/070a2ac3741d1ed169a947841a8dfbff2b9a935a039b147906cc8d37d9ab/websockets-15.0-cp39-cp39-macosx_10_9_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "67d026cec8c4c3915aadb369f65f06292e3afe6f72547bed653d41ce4ea8667f",
                "md5": "fe4691da822859c62b79eb908f734c13",
                "sha256": "5294fcb410ed0a45d5d1cdedc4e51a60aab5b2b3193999028ea94afc2f554b05"
            },
            "downloads": -1,
            "filename": "websockets-15.0-cp39-cp39-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "fe4691da822859c62b79eb908f734c13",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 172357,
            "upload_time": "2025-02-16T11:06:16",
            "upload_time_iso_8601": "2025-02-16T11:06:16.861367Z",
            "url": "https://files.pythonhosted.org/packages/67/d0/26cec8c4c3915aadb369f65f06292e3afe6f72547bed653d41ce4ea8667f/websockets-15.0-cp39-cp39-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "615215305c5d2871c57a3aa0f238a67db003a4221745a8d1dca30ebab1e2e1d7",
                "md5": "fc2c7a95a54a1b2c8375b788a5034a73",
                "sha256": "c24ba103ecf45861e2e1f933d40b2d93f5d52d8228870c3e7bf1299cd1cb8ff1"
            },
            "downloads": -1,
            "filename": "websockets-15.0-cp39-cp39-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "fc2c7a95a54a1b2c8375b788a5034a73",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 172603,
            "upload_time": "2025-02-16T11:06:18",
            "upload_time_iso_8601": "2025-02-16T11:06:18.216168Z",
            "url": "https://files.pythonhosted.org/packages/61/52/15305c5d2871c57a3aa0f238a67db003a4221745a8d1dca30ebab1e2e1d7/websockets-15.0-cp39-cp39-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "1c81118d80d2da2556ff53989c9b05eea8fdd4e7a850ae56bbd1d53de1dfa2fd",
                "md5": "2042e84b754627069d18af8dc5210dc9",
                "sha256": "cc8821a03bcfb36e4e4705316f6b66af28450357af8a575dc8f4b09bf02a3dee"
            },
            "downloads": -1,
            "filename": "websockets-15.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "2042e84b754627069d18af8dc5210dc9",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 181363,
            "upload_time": "2025-02-16T11:06:19",
            "upload_time_iso_8601": "2025-02-16T11:06:19.671978Z",
            "url": "https://files.pythonhosted.org/packages/1c/81/118d80d2da2556ff53989c9b05eea8fdd4e7a850ae56bbd1d53de1dfa2fd/websockets-15.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "d18a9ac84781b2a54843d454e28750a4bbade1cf4d2807420b4cb1595123456d",
                "md5": "5dfdb08fea3f575b10f14e18d1e1d90a",
                "sha256": "ffc5ae23ada6515f31604f700009e2df90b091b67d463a8401c1d8a37f76c1d7"
            },
            "downloads": -1,
            "filename": "websockets-15.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "5dfdb08fea3f575b10f14e18d1e1d90a",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 180365,
            "upload_time": "2025-02-16T11:06:21",
            "upload_time_iso_8601": "2025-02-16T11:06:21.198173Z",
            "url": "https://files.pythonhosted.org/packages/d1/8a/9ac84781b2a54843d454e28750a4bbade1cf4d2807420b4cb1595123456d/websockets-15.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "5d1f9b4847c427329cd74d71486e985f7f08a9327c6cbf4098ba848bae5527c3",
                "md5": "89823da931bd45949a092da2eeb6b09e",
                "sha256": "7ac67b542505186b3bbdaffbc303292e1ee9c8729e5d5df243c1f20f4bb9057e"
            },
            "downloads": -1,
            "filename": "websockets-15.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": "89823da931bd45949a092da2eeb6b09e",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 180666,
            "upload_time": "2025-02-16T11:06:22",
            "upload_time_iso_8601": "2025-02-16T11:06:22.525794Z",
            "url": "https://files.pythonhosted.org/packages/5d/1f/9b4847c427329cd74d71486e985f7f08a9327c6cbf4098ba848bae5527c3/websockets-15.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": null,
            "digests": {
                "blake2b_256": "a47696b259169545eeee5cb48efb746bb88cc853da42d0caff67a6cd7ff4234f",
                "md5": "ec43bcda619c31c60d07c3d1dea8abd2",
                "sha256": "c86dc2068f1c5ca2065aca34f257bbf4f78caf566eb230f692ad347da191f0a1"
            },
            "downloads": -1,
            "filename": "websockets-15.0-cp39-cp39-musllinux_1_2_aarch64.whl",
            "has_sig": false,
            "md5_digest": "ec43bcda619c31c60d07c3d1dea8abd2",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 181064,
            "upload_time": "2025-02-16T11:06:23",
            "upload_time_iso_8601": "2025-02-16T11:06:23.954335Z",
            "url": "https://files.pythonhosted.org/packages/a4/76/96b259169545eeee5cb48efb746bb88cc853da42d0caff67a6cd7ff4234f/websockets-15.0-cp39-cp39-musllinux_1_2_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "a05d975b5ab63fb333482ca7e8ae69af8fdefd1b14b070f0ade71f16aac9bc37",
                "md5": "7bbc65bdd33c0e57cdf1cecdd5248253",
                "sha256": "30cff3ef329682b6182c01c568f551481774c476722020b8f7d0daacbed07a17"
            },
            "downloads": -1,
            "filename": "websockets-15.0-cp39-cp39-musllinux_1_2_i686.whl",
            "has_sig": false,
            "md5_digest": "7bbc65bdd33c0e57cdf1cecdd5248253",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 180465,
            "upload_time": "2025-02-16T11:06:25",
            "upload_time_iso_8601": "2025-02-16T11:06:25.428626Z",
            "url": "https://files.pythonhosted.org/packages/a0/5d/975b5ab63fb333482ca7e8ae69af8fdefd1b14b070f0ade71f16aac9bc37/websockets-15.0-cp39-cp39-musllinux_1_2_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "65bf2ba968e665b0a8f77e86fafb9a5b47232edea8ce31b87e7e814a54a433d7",
                "md5": "0158520e9b5507e07a522b3cab2fd0cb",
                "sha256": "98dcf978d4c6048965d1762abd534c9d53bae981a035bfe486690ba11f49bbbb"
            },
            "downloads": -1,
            "filename": "websockets-15.0-cp39-cp39-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "0158520e9b5507e07a522b3cab2fd0cb",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 180434,
            "upload_time": "2025-02-16T11:06:26",
            "upload_time_iso_8601": "2025-02-16T11:06:26.810410Z",
            "url": "https://files.pythonhosted.org/packages/65/bf/2ba968e665b0a8f77e86fafb9a5b47232edea8ce31b87e7e814a54a433d7/websockets-15.0-cp39-cp39-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "b606385c1a8943dc3a706bf6dce4ecba1ddc189c3aa8f43f8e6f6cd1443cf38f",
                "md5": "6e7617e50686443000c17fc54006ab58",
                "sha256": "37d66646f929ae7c22c79bc73ec4074d6db45e6384500ee3e0d476daf55482a9"
            },
            "downloads": -1,
            "filename": "websockets-15.0-cp39-cp39-win32.whl",
            "has_sig": false,
            "md5_digest": "6e7617e50686443000c17fc54006ab58",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 175660,
            "upload_time": "2025-02-16T11:06:28",
            "upload_time_iso_8601": "2025-02-16T11:06:28.231585Z",
            "url": "https://files.pythonhosted.org/packages/b6/06/385c1a8943dc3a706bf6dce4ecba1ddc189c3aa8f43f8e6f6cd1443cf38f/websockets-15.0-cp39-cp39-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "261d0bea814271dc414d6b560e9679b60b5b1594fd823f15cea0e00e755be410",
                "md5": "c1ae904a9efa8de303aadcf9903eee6c",
                "sha256": "24d5333a9b2343330f0f4eb88546e2c32a7f5c280f8dd7d3cc079beb0901781b"
            },
            "downloads": -1,
            "filename": "websockets-15.0-cp39-cp39-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "c1ae904a9efa8de303aadcf9903eee6c",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 176121,
            "upload_time": "2025-02-16T11:06:30",
            "upload_time_iso_8601": "2025-02-16T11:06:30.439404Z",
            "url": "https://files.pythonhosted.org/packages/26/1d/0bea814271dc414d6b560e9679b60b5b1594fd823f15cea0e00e755be410/websockets-15.0-cp39-cp39-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "4252359467c7ca12721a04520da9ba9fc29da2cd176c30992f6f81fa881bb3e5",
                "md5": "4691bf4b353f4436c898a2e2174f9f88",
                "sha256": "b499caef4bca9cbd0bd23cd3386f5113ee7378094a3cb613a2fa543260fe9506"
            },
            "downloads": -1,
            "filename": "websockets-15.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl",
            "has_sig": false,
            "md5_digest": "4691bf4b353f4436c898a2e2174f9f88",
            "packagetype": "bdist_wheel",
            "python_version": "pp310",
            "requires_python": ">=3.9",
            "size": 172384,
            "upload_time": "2025-02-16T11:06:32",
            "upload_time_iso_8601": "2025-02-16T11:06:32.691376Z",
            "url": "https://files.pythonhosted.org/packages/42/52/359467c7ca12721a04520da9ba9fc29da2cd176c30992f6f81fa881bb3e5/websockets-15.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "7cff36fd8a45fac404d8f109e03ca06328f49847d71c0c048414c76bb2db91c4",
                "md5": "b66843201f286da923c862fd2199a7c3",
                "sha256": "17f2854c6bd9ee008c4b270f7010fe2da6c16eac5724a175e75010aacd905b31"
            },
            "downloads": -1,
            "filename": "websockets-15.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "b66843201f286da923c862fd2199a7c3",
            "packagetype": "bdist_wheel",
            "python_version": "pp310",
            "requires_python": ">=3.9",
            "size": 172616,
            "upload_time": "2025-02-16T11:06:35",
            "upload_time_iso_8601": "2025-02-16T11:06:35.006648Z",
            "url": "https://files.pythonhosted.org/packages/7c/ff/36fd8a45fac404d8f109e03ca06328f49847d71c0c048414c76bb2db91c4/websockets-15.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "b1a865496a87984815e2837835d5ac3c9f81ea82031036877e8f80953c59dbd9",
                "md5": "14c975b05eb86c95957527f0d5b7b8f1",
                "sha256": "89f72524033abbfde880ad338fd3c2c16e31ae232323ebdfbc745cbb1b3dcc03"
            },
            "downloads": -1,
            "filename": "websockets-15.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "14c975b05eb86c95957527f0d5b7b8f1",
            "packagetype": "bdist_wheel",
            "python_version": "pp310",
            "requires_python": ">=3.9",
            "size": 173871,
            "upload_time": "2025-02-16T11:06:36",
            "upload_time_iso_8601": "2025-02-16T11:06:36.444304Z",
            "url": "https://files.pythonhosted.org/packages/b1/a8/65496a87984815e2837835d5ac3c9f81ea82031036877e8f80953c59dbd9/websockets-15.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "23899441e1e0818d46fe22d78b3e5c8fe2316516211330e138231c90dce5559e",
                "md5": "1e3ca1c3b79ee89e761064390319d227",
                "sha256": "1657a9eecb29d7838e3b415458cc494e6d1b194f7ac73a34aa55c6fb6c72d1f3"
            },
            "downloads": -1,
            "filename": "websockets-15.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "1e3ca1c3b79ee89e761064390319d227",
            "packagetype": "bdist_wheel",
            "python_version": "pp310",
            "requires_python": ">=3.9",
            "size": 173477,
            "upload_time": "2025-02-16T11:06:37",
            "upload_time_iso_8601": "2025-02-16T11:06:37.822811Z",
            "url": "https://files.pythonhosted.org/packages/23/89/9441e1e0818d46fe22d78b3e5c8fe2316516211330e138231c90dce5559e/websockets-15.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "2f1b80460b3ac9795ef7bbaa074c603d64e009dbb2ceb11008416efab0dcc811",
                "md5": "1352a64ecb2c5804456cea08eb57c3bd",
                "sha256": "e413352a921f5ad5d66f9e2869b977e88d5103fc528b6deb8423028a2befd842"
            },
            "downloads": -1,
            "filename": "websockets-15.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": "1352a64ecb2c5804456cea08eb57c3bd",
            "packagetype": "bdist_wheel",
            "python_version": "pp310",
            "requires_python": ">=3.9",
            "size": 173425,
            "upload_time": "2025-02-16T11:06:39",
            "upload_time_iso_8601": "2025-02-16T11:06:39.341278Z",
            "url": "https://files.pythonhosted.org/packages/2f/1b/80460b3ac9795ef7bbaa074c603d64e009dbb2ceb11008416efab0dcc811/websockets-15.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": null,
            "digests": {
                "blake2b_256": "56d18da7e733ed266f342e8c544c3b8338449de9b860d85d9a0bfd4fe1857d6e",
                "md5": "db3f7f9c2fc791db101c7972c30092e3",
                "sha256": "8561c48b0090993e3b2a54db480cab1d23eb2c5735067213bb90f402806339f5"
            },
            "downloads": -1,
            "filename": "websockets-15.0-pp310-pypy310_pp73-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "db3f7f9c2fc791db101c7972c30092e3",
            "packagetype": "bdist_wheel",
            "python_version": "pp310",
            "requires_python": ">=3.9",
            "size": 176160,
            "upload_time": "2025-02-16T11:06:40",
            "upload_time_iso_8601": "2025-02-16T11:06:40.739496Z",
            "url": "https://files.pythonhosted.org/packages/56/d1/8da7e733ed266f342e8c544c3b8338449de9b860d85d9a0bfd4fe1857d6e/websockets-15.0-pp310-pypy310_pp73-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "ad10c1d3f25fd5130f29023a26591afdeed8f687c8f10acb6425fca8090f34a9",
                "md5": "b7cb01dbcfb916f4fe531f3b0099f91a",
                "sha256": "190bc6ef8690cd88232a038d1b15714c258f79653abad62f7048249b09438af3"
            },
            "downloads": -1,
            "filename": "websockets-15.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl",
            "has_sig": false,
            "md5_digest": "b7cb01dbcfb916f4fe531f3b0099f91a",
            "packagetype": "bdist_wheel",
            "python_version": "pp39",
            "requires_python": ">=3.9",
            "size": 172381,
            "upload_time": "2025-02-16T11:06:43",
            "upload_time_iso_8601": "2025-02-16T11:06:43.119016Z",
            "url": "https://files.pythonhosted.org/packages/ad/10/c1d3f25fd5130f29023a26591afdeed8f687c8f10acb6425fca8090f34a9/websockets-15.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "ed4c058e9c1f8ec05c1707dfbf2562e02415e36b96f82d2c4b4fb15344c7da10",
                "md5": "42df9bc32b3121f38e466eb74aaa832e",
                "sha256": "327adab7671f3726b0ba69be9e865bba23b37a605b585e65895c428f6e47e766"
            },
            "downloads": -1,
            "filename": "websockets-15.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "42df9bc32b3121f38e466eb74aaa832e",
            "packagetype": "bdist_wheel",
            "python_version": "pp39",
            "requires_python": ">=3.9",
            "size": 172612,
            "upload_time": "2025-02-16T11:06:45",
            "upload_time_iso_8601": "2025-02-16T11:06:45.395699Z",
            "url": "https://files.pythonhosted.org/packages/ed/4c/058e9c1f8ec05c1707dfbf2562e02415e36b96f82d2c4b4fb15344c7da10/websockets-15.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "9e47f9c5e24efb72f89c66b06b3d9a54270c3d8ee6175c00f62683b78c8d9fba",
                "md5": "70d9e8d73c08337a1b41b0b36812fe1c",
                "sha256": "2bd8ef197c87afe0a9009f7a28b5dc613bfc585d329f80b7af404e766aa9e8c7"
            },
            "downloads": -1,
            "filename": "websockets-15.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "70d9e8d73c08337a1b41b0b36812fe1c",
            "packagetype": "bdist_wheel",
            "python_version": "pp39",
            "requires_python": ">=3.9",
            "size": 173864,
            "upload_time": "2025-02-16T11:06:46",
            "upload_time_iso_8601": "2025-02-16T11:06:46.730970Z",
            "url": "https://files.pythonhosted.org/packages/9e/47/f9c5e24efb72f89c66b06b3d9a54270c3d8ee6175c00f62683b78c8d9fba/websockets-15.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "b3e8697a8f451a22478d2474d4c807b5a938351a3daf9033523688d05e126f1c",
                "md5": "4e928d0a9a3968ee04479a0a7452e42c",
                "sha256": "789c43bf4a10cd067c24c321238e800b8b2716c863ddb2294d2fed886fa5a689"
            },
            "downloads": -1,
            "filename": "websockets-15.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "4e928d0a9a3968ee04479a0a7452e42c",
            "packagetype": "bdist_wheel",
            "python_version": "pp39",
            "requires_python": ">=3.9",
            "size": 173472,
            "upload_time": "2025-02-16T11:06:48",
            "upload_time_iso_8601": "2025-02-16T11:06:48.244254Z",
            "url": "https://files.pythonhosted.org/packages/b3/e8/697a8f451a22478d2474d4c807b5a938351a3daf9033523688d05e126f1c/websockets-15.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "64dce8b5dfd15cf2467e6dcdcf8766ce11bf639a3ec9b9a2ce599462f5d0d33a",
                "md5": "b2ffa42b5a55181e50575bab6fed3abe",
                "sha256": "7394c0b7d460569c9285fa089a429f58465db930012566c03046f9e3ab0ed181"
            },
            "downloads": -1,
            "filename": "websockets-15.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": "b2ffa42b5a55181e50575bab6fed3abe",
            "packagetype": "bdist_wheel",
            "python_version": "pp39",
            "requires_python": ">=3.9",
            "size": 173422,
            "upload_time": "2025-02-16T11:06:50",
            "upload_time_iso_8601": "2025-02-16T11:06:50.471186Z",
            "url": "https://files.pythonhosted.org/packages/64/dc/e8b5dfd15cf2467e6dcdcf8766ce11bf639a3ec9b9a2ce599462f5d0d33a/websockets-15.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": null,
            "digests": {
                "blake2b_256": "6084ea2385f71664ca0990fc72df19842a47bd3cca88af63037fe548741e2b6f",
                "md5": "7cc6f4e7bbc4d4139c1a4d2fff43cbda",
                "sha256": "2ea4f210422b912ebe58ef0ad33088bc8e5c5ff9655a8822500690abc3b1232d"
            },
            "downloads": -1,
            "filename": "websockets-15.0-pp39-pypy39_pp73-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "7cc6f4e7bbc4d4139c1a4d2fff43cbda",
            "packagetype": "bdist_wheel",
            "python_version": "pp39",
            "requires_python": ">=3.9",
            "size": 176154,
            "upload_time": "2025-02-16T11:06:52",
            "upload_time_iso_8601": "2025-02-16T11:06:52.038904Z",
            "url": "https://files.pythonhosted.org/packages/60/84/ea2385f71664ca0990fc72df19842a47bd3cca88af63037fe548741e2b6f/websockets-15.0-pp39-pypy39_pp73-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "e8b231eec524b53f01cd8343f10a8e429730c52c1849941d1f530f8253b6d934",
                "md5": "8cc7a960e7659dc43019c0a047625fe0",
                "sha256": "51ffd53c53c4442415b613497a34ba0aa7b99ac07f1e4a62db5dcd640ae6c3c3"
            },
            "downloads": -1,
            "filename": "websockets-15.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "8cc7a960e7659dc43019c0a047625fe0",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9",
            "size": 169023,
            "upload_time": "2025-02-16T11:06:53",
            "upload_time_iso_8601": "2025-02-16T11:06:53.320629Z",
            "url": "https://files.pythonhosted.org/packages/e8/b2/31eec524b53f01cd8343f10a8e429730c52c1849941d1f530f8253b6d934/websockets-15.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "2e7a8bc4d15af7ff30f7ba34f9a172063bfcee9f5001d7cef04bee800a658f33",
                "md5": "753a523e3de5b0f32927e590b910dfde",
                "sha256": "ca36151289a15b39d8d683fd8b7abbe26fc50be311066c5f8dcf3cb8cee107ab"
            },
            "downloads": -1,
            "filename": "websockets-15.0.tar.gz",
            "has_sig": false,
            "md5_digest": "753a523e3de5b0f32927e590b910dfde",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 175574,
            "upload_time": "2025-02-16T11:06:55",
            "upload_time_iso_8601": "2025-02-16T11:06:55.664040Z",
            "url": "https://files.pythonhosted.org/packages/2e/7a/8bc4d15af7ff30f7ba34f9a172063bfcee9f5001d7cef04bee800a658f33/websockets-15.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-02-16 11:06:55",
    "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.48051s