Index | index by Group | index by Distribution | index by Vendor | index by creation date | index by Name | Mirrors | Help | Search |
Name: python311-websockets | Distribution: openSUSE Tumbleweed |
Version: 13.1 | Vendor: openSUSE |
Release: 1.2 | Build date: Tue Oct 29 17:04:09 2024 |
Group: Development/Languages/Python | Build host: reproducible |
Size: 1645085 | Source RPM: python-websockets-13.1-1.2.src.rpm |
Packager: http://bugs.opensuse.org | |
Url: https://github.com/aaugustin/websockets | |
Summary: An implementation of the WebSocket Protocol (RFC 6455) |
WebSockets is a library for developing WebSocket servers_ and clients_ in Python. It implements RFC 6455 with a focus on correctness and simplicity. It passes the Autobahn Testsuite. Built on top of Python's asynchronous I/O support introduced in PEP 3156, it provides an API based on coroutines, making it easy to write highly concurrent applications.
BSD-3-Clause
* Tue Oct 29 2024 John Paul Adrian Glaubitz <adrian.glaubitz@suse.com> - Update to 13.1 * Added support for reconnecting automatically by using connect() as an asynchronous iterator to the new asyncio implementation. * connect() now follows redirects in the new asyncio implementation. * Added HTTP Basic Auth to the new asyncio and threading implementations of servers. * Made the set of active connections available in the Server.connections property. * Improved reporting of errors during the opening handshake. * Raised ConcurrencyError on unsupported concurrent calls. Previously, RuntimeError was raised. For backwards compatibility, ConcurrencyError is a subclass of RuntimeError. * The new asyncio and threading implementations of servers don’t start the connection handler anymore when process_request or process_response returns an HTTP response. * Fixed a bug in the threading implementation that could lead to incorrect error reporting when closing a connection while recv() is running. - from version 13.0.1 * Restored the C extension in the source distribution. - from version 13.0 * Validated compatibility with Python 3.12 and 3.13. * Added environment variables to configure debug logs, the Server and User-Agent headers, as well as security limits. * If you were monkey-patching constants, be aware that they were renamed, which will break your configuration. You must switch to the environment variables. * The error message in server logs when a header is too long is more explicit. * Fixed a bug in the threading implementation that could prevent the program from exiting when a connection wasn’t closed properly. * Redirecting from a ws:// URI to a wss:// URI now works. * broadcast(raise_exceptions=True) no longer crashes when there isn’t any exception. - Remove stray speedups.c from websockets Python directory * Wed Jan 24 2024 Daniel Garcia <daniel.garcia@suse.com> - Disable broken tests with openssl 3.2 and python < 3.11 bsc#1217782 * Wed Dec 06 2023 Dirk Müller <dmueller@suse.com> - update to 12.0: * websockets 12.0 requires Python ≥ 3.8. * Made convenience imports from ``websockets`` compatible with static code analysis tools such as auto-completion in an IDE or type checking with mypy_. * Accepted a plain :class:`int` where an :class:`~http.HTTPStatus` is expected. * Added :class:`~frames.CloseCode`. - drop py312-shutdown.patch (upstream) * Wed Sep 20 2023 Markéta Machová <mmachova@suse.com> - Add py312-shutdown.patch to fix server shutdown on Python 3.12 * Wed May 24 2023 Daniel Garcia <daniel.garcia@suse.com> - Run tests with pytest - Disable flaky test gh#python-websockets/websockets#1322 * Sun May 14 2023 Dirk Müller <dmueller@suse.com> - update to 11.0.3: * Fixed the :mod:`threading` implementation of servers on Windows. * Wed May 10 2023 Dirk Müller <dmueller@suse.com> - update to 11.0.2: * Fixed a deadlock in the :mod:`threading` implementation when closing a connection without reading all messages. * Restored the C extension in the source distribution. * Backwards-incompatible changes * The Sans-I/O implementation was moved. * The ``connection`` module was renamed to ``protocol``. * The ``connection.Connection``, ``server.ServerConnection``, and ``client.ClientConnection`` classes were renamed to ``protocol.Protocol``, ``server.ServerProtocol``, and ``client.ClientProtocol``. * If you instantiate :class:`~server.ServerProtocol` or :class:`~client.ClientProtocol` directly, make sure you are using keyword arguments. * Closing a connection without an empty close frame is OK. * .. admonition:: websockets 10.0 introduces a implementation on top of :mod:`threading`. * It may be more convenient if you don't need to manage many connections and you're more comfortable with :mod:`threading` than :mod:`asyncio`. * It is particularly suited to client applications that establish only one connection. It may be used for servers handling few connections. * See :func:`~sync.client.connect` and :func:`~sync.server.serve` for details. * Added ``open_timeout`` to :func:`~server.serve`. * Made it possible to close a server without closing existing connections. * Added :attr:`~server.ServerProtocol.select_subprotocol` to customize negotiation of subprotocols in the Sans-I/O layer. * Added platform-independent wheels. * Improved error handling in :func:`~websockets.broadcast`. * Set ``server_hostname`` automatically on TLS connections when providing a ``sock`` argument to :func:`~sync.client.connect`. * Fri Apr 21 2023 Dirk Müller <dmueller@suse.com> - add sle15_python_module_pythons (jsc#PED-68) * Thu Apr 13 2023 Matej Cepl <mcepl@suse.com> - Make calling of %{sle15modernpython} optional. * Wed Nov 09 2022 Yogalakshmi Arunachalam <yarunachalam@suse.com> - Update to 10.4 New features * Validated compatibility with Python 3.11. * Added the latency property to protocols. * Changed ping to return the latency of the connection. * Supported overriding or removing the User-Agent header in clients and the Server header in servers. * Added deployment guides for more Platform as a Service providers. * Sat Sep 24 2022 Dirk Müller <dmueller@suse.com> - update to 10.3: * Reduced noise in logs when :mod:`ssl` or :mod:`zlib` raise exceptions. * Made compression negotiation more lax for compatibility with Firefox. * Improved FAQ and quick start guide. * Fixed backwards-incompatibility in 10.1 for connection handlers created with * Avoided leaking open sockets when :func:`~client.connect` is canceled. * Thu Jul 21 2022 John Paul Adrian Glaubitz <adrian.glaubitz@suse.com> - Include in SLE-15 (bsc#1199282, jsc#PM-3243, jsc#SLE-24629) * Fri Feb 04 2022 Dirk Müller <dmueller@suse.com> - update to 10.1: * Made the second parameter of connection handlers optional. It will be deprecated in the next major release. The request path is available in the :attr:`~legacy.protocol.WebSocketCommonProtocol.path` attribute of the first argument. If you implemented the connection handler of a server as:: async def handler(request, path): ... You should replace it by:: async def handler(request): path = request.path # if handler() uses the path argument ... * Added ``python -m websockets --version``. * Reverted optimization of default compression settings for clients, mainly to avoid triggering bugs in poorly implemented servers like `AWS API Gateway`_. * Mirrored the entire :class:`~asyncio.Server` API in :class:`~server.WebSocketServer`. * Improved performance for large messages on ARM processors. * Documented how to auto-reload on code changes in development. * Avoided half-closing TCP connections that are already closed. * Sat Oct 30 2021 Ben Greiner <code@bnavigator.de> - Reactivate python39 build, only disable testing. No need to break consuming packages -- gh#aaugustin/websockets#1051 * Fri Oct 29 2021 Matej Cepl <mcepl@suse.com> - Update to 10.0: - Backwards-incompatible changes - websockets 10.0 requires Python ≥ 3.7. - The ``loop`` parameter is deprecated from all APIs. The ``loop`` parameter is also removed from `~server.WebSocketServer`. This should be transparent. - `~client.connect` times out after 10 seconds by default. You can adjust the timeout with the ``open_timeout`` parameter. Set it to `None` to disable the timeout entirely. - The ``legacy_recv`` option is deprecated. - The signature of `~exceptions.ConnectionClosed` changed. If you raise `~exceptions.ConnectionClosed` or a subclass, rather than catch them when websockets raises them, you must change your code. - A ``msg`` parameter was added to `~exceptions.InvalidURI`. If you raise `~exceptions.InvalidURI`, rather than catch it when websockets raises it, you must change your code. - New features - websockets 10.0 introduces a Sans-I/O API for easier integration in third-party libraries. - Added compatibility with Python 3.10. - Added `~websockets.broadcast` to send a message to many clients. - Added support for reconnecting automatically by using `~client.connect` as an asynchronous iterator. - Added ``open_timeout`` to :func:`~client.connect`. - Documented how to integrate with Django. - Documented how to deploy websockets in production, with several options. - Documented how to authenticate connections. - Documented how to broadcast messages to many connections. - Improvements - Improved logging. - Optimized default compression settings to reduce memory usage. - Optimized processing of client-to-server messages when the C extension isn't available. - Supported relative redirects in `~client.connect`. - Handled TCP connection drops during the opening handshake. - Made it easier to customize authentication with `~auth.BasicAuthWebSocketServerProtocol.check_credentials`. - Provided additional information in `~exceptions.ConnectionClosed` exceptions. - Clarified several exceptions or log messages. - Restructured documentation. - Improved API documentation. - Extended FAQ. - Bug fixes - Avoided a crash when receiving a ping while the connection is closing. - The test suite is temporarily broken on Python 3.9.7 (gh#aaugustin/websockets#1051). * Wed Aug 11 2021 Matej Cepl <mcepl@suse.com> - Increase WEBSOCKETS_TESTS_TIMEOUT_FACTOR to 10 to make test_keepalive_ping_with_no_ping_timeout pass again. - Remove skip-test_keepalive_ping_with_no_ping_timeout.patch, of course. * Tue Aug 10 2021 Matej Cepl <mcepl@suse.com> - Use %pyunittest macro instead of doing it on our own. - Add skip-test_keepalive_ping_with_no_ping_timeout.patch for gh#aaugustin/websockets#1026. * Sun Jun 06 2021 Dirk Müller <dmueller@suse.com> - update to 9.1: * *Version 9.1 fixes a security issue introduced in version 8.0.** * Restored compatibility of ``python -m websockets`` with Python < 3.9. * Restored compatibility with mypy. * Fixed issues with the packaging of the 9.0 release. * :class:`~datastructures.Headers` and :exc:`~datastructures.MultipleValuesError` were moved from ``websockets.http`` to :mod:`websockets.datastructures`. If you're using them, you should adjust the import path. * The ``client``, ``server``, ``protocol``, and ``auth`` modules were moved from the ``websockets`` package to ``websockets.legacy`` sub-package, as part of an upcoming refactoring. Despite the name, they're still fully supported. The refactoring should be a transparent upgrade for most uses when it's available. The legacy implementation will be preserved according to the `backwards-compatibility policy`_. * The ``framing``, ``handshake``, ``headers``, ``http``, and ``uri`` modules in the ``websockets`` package are deprecated. These modules provided low-level APIs for reuse by other WebSocket implementations, but that never happened. Keeping these APIs public makes it more difficult to improve websockets for no actual benefit. * Added compatibility with Python 3.9. * Added support for IRIs in addition to URIs. * Added close codes 1012, 1013, and 1014. * Raised an error when passing a :class:`dict` to
/usr/lib/python3.11/site-packages/websockets /usr/lib/python3.11/site-packages/websockets-13.1-py3.11.egg-info /usr/lib/python3.11/site-packages/websockets-13.1-py3.11.egg-info/PKG-INFO /usr/lib/python3.11/site-packages/websockets-13.1-py3.11.egg-info/SOURCES.txt /usr/lib/python3.11/site-packages/websockets-13.1-py3.11.egg-info/dependency_links.txt /usr/lib/python3.11/site-packages/websockets-13.1-py3.11.egg-info/top_level.txt /usr/lib/python3.11/site-packages/websockets/__init__.py /usr/lib/python3.11/site-packages/websockets/__main__.py /usr/lib/python3.11/site-packages/websockets/__pycache__ /usr/lib/python3.11/site-packages/websockets/__pycache__/__init__.cpython-311.opt-1.pyc /usr/lib/python3.11/site-packages/websockets/__pycache__/__init__.cpython-311.pyc /usr/lib/python3.11/site-packages/websockets/__pycache__/__main__.cpython-311.opt-1.pyc /usr/lib/python3.11/site-packages/websockets/__pycache__/__main__.cpython-311.pyc /usr/lib/python3.11/site-packages/websockets/__pycache__/auth.cpython-311.opt-1.pyc /usr/lib/python3.11/site-packages/websockets/__pycache__/auth.cpython-311.pyc /usr/lib/python3.11/site-packages/websockets/__pycache__/client.cpython-311.opt-1.pyc /usr/lib/python3.11/site-packages/websockets/__pycache__/client.cpython-311.pyc /usr/lib/python3.11/site-packages/websockets/__pycache__/connection.cpython-311.opt-1.pyc /usr/lib/python3.11/site-packages/websockets/__pycache__/connection.cpython-311.pyc /usr/lib/python3.11/site-packages/websockets/__pycache__/datastructures.cpython-311.opt-1.pyc /usr/lib/python3.11/site-packages/websockets/__pycache__/datastructures.cpython-311.pyc /usr/lib/python3.11/site-packages/websockets/__pycache__/exceptions.cpython-311.opt-1.pyc /usr/lib/python3.11/site-packages/websockets/__pycache__/exceptions.cpython-311.pyc /usr/lib/python3.11/site-packages/websockets/__pycache__/frames.cpython-311.opt-1.pyc /usr/lib/python3.11/site-packages/websockets/__pycache__/frames.cpython-311.pyc /usr/lib/python3.11/site-packages/websockets/__pycache__/headers.cpython-311.opt-1.pyc /usr/lib/python3.11/site-packages/websockets/__pycache__/headers.cpython-311.pyc /usr/lib/python3.11/site-packages/websockets/__pycache__/http.cpython-311.opt-1.pyc /usr/lib/python3.11/site-packages/websockets/__pycache__/http.cpython-311.pyc /usr/lib/python3.11/site-packages/websockets/__pycache__/http11.cpython-311.opt-1.pyc /usr/lib/python3.11/site-packages/websockets/__pycache__/http11.cpython-311.pyc /usr/lib/python3.11/site-packages/websockets/__pycache__/imports.cpython-311.opt-1.pyc /usr/lib/python3.11/site-packages/websockets/__pycache__/imports.cpython-311.pyc /usr/lib/python3.11/site-packages/websockets/__pycache__/protocol.cpython-311.opt-1.pyc /usr/lib/python3.11/site-packages/websockets/__pycache__/protocol.cpython-311.pyc /usr/lib/python3.11/site-packages/websockets/__pycache__/server.cpython-311.opt-1.pyc /usr/lib/python3.11/site-packages/websockets/__pycache__/server.cpython-311.pyc /usr/lib/python3.11/site-packages/websockets/__pycache__/streams.cpython-311.opt-1.pyc /usr/lib/python3.11/site-packages/websockets/__pycache__/streams.cpython-311.pyc /usr/lib/python3.11/site-packages/websockets/__pycache__/typing.cpython-311.opt-1.pyc /usr/lib/python3.11/site-packages/websockets/__pycache__/typing.cpython-311.pyc /usr/lib/python3.11/site-packages/websockets/__pycache__/uri.cpython-311.opt-1.pyc /usr/lib/python3.11/site-packages/websockets/__pycache__/uri.cpython-311.pyc /usr/lib/python3.11/site-packages/websockets/__pycache__/utils.cpython-311.opt-1.pyc /usr/lib/python3.11/site-packages/websockets/__pycache__/utils.cpython-311.pyc /usr/lib/python3.11/site-packages/websockets/__pycache__/version.cpython-311.opt-1.pyc /usr/lib/python3.11/site-packages/websockets/__pycache__/version.cpython-311.pyc /usr/lib/python3.11/site-packages/websockets/asyncio /usr/lib/python3.11/site-packages/websockets/asyncio/__init__.py /usr/lib/python3.11/site-packages/websockets/asyncio/__pycache__ /usr/lib/python3.11/site-packages/websockets/asyncio/__pycache__/__init__.cpython-311.opt-1.pyc /usr/lib/python3.11/site-packages/websockets/asyncio/__pycache__/__init__.cpython-311.pyc /usr/lib/python3.11/site-packages/websockets/asyncio/__pycache__/async_timeout.cpython-311.opt-1.pyc /usr/lib/python3.11/site-packages/websockets/asyncio/__pycache__/async_timeout.cpython-311.pyc /usr/lib/python3.11/site-packages/websockets/asyncio/__pycache__/client.cpython-311.opt-1.pyc /usr/lib/python3.11/site-packages/websockets/asyncio/__pycache__/client.cpython-311.pyc /usr/lib/python3.11/site-packages/websockets/asyncio/__pycache__/compatibility.cpython-311.opt-1.pyc /usr/lib/python3.11/site-packages/websockets/asyncio/__pycache__/compatibility.cpython-311.pyc /usr/lib/python3.11/site-packages/websockets/asyncio/__pycache__/connection.cpython-311.opt-1.pyc /usr/lib/python3.11/site-packages/websockets/asyncio/__pycache__/connection.cpython-311.pyc /usr/lib/python3.11/site-packages/websockets/asyncio/__pycache__/messages.cpython-311.opt-1.pyc /usr/lib/python3.11/site-packages/websockets/asyncio/__pycache__/messages.cpython-311.pyc /usr/lib/python3.11/site-packages/websockets/asyncio/__pycache__/server.cpython-311.opt-1.pyc /usr/lib/python3.11/site-packages/websockets/asyncio/__pycache__/server.cpython-311.pyc /usr/lib/python3.11/site-packages/websockets/asyncio/async_timeout.py /usr/lib/python3.11/site-packages/websockets/asyncio/client.py /usr/lib/python3.11/site-packages/websockets/asyncio/compatibility.py /usr/lib/python3.11/site-packages/websockets/asyncio/connection.py /usr/lib/python3.11/site-packages/websockets/asyncio/messages.py /usr/lib/python3.11/site-packages/websockets/asyncio/server.py /usr/lib/python3.11/site-packages/websockets/auth.py /usr/lib/python3.11/site-packages/websockets/client.py /usr/lib/python3.11/site-packages/websockets/connection.py /usr/lib/python3.11/site-packages/websockets/datastructures.py /usr/lib/python3.11/site-packages/websockets/exceptions.py /usr/lib/python3.11/site-packages/websockets/extensions /usr/lib/python3.11/site-packages/websockets/extensions/__init__.py /usr/lib/python3.11/site-packages/websockets/extensions/__pycache__ /usr/lib/python3.11/site-packages/websockets/extensions/__pycache__/__init__.cpython-311.opt-1.pyc /usr/lib/python3.11/site-packages/websockets/extensions/__pycache__/__init__.cpython-311.pyc /usr/lib/python3.11/site-packages/websockets/extensions/__pycache__/base.cpython-311.opt-1.pyc /usr/lib/python3.11/site-packages/websockets/extensions/__pycache__/base.cpython-311.pyc /usr/lib/python3.11/site-packages/websockets/extensions/__pycache__/permessage_deflate.cpython-311.opt-1.pyc /usr/lib/python3.11/site-packages/websockets/extensions/__pycache__/permessage_deflate.cpython-311.pyc /usr/lib/python3.11/site-packages/websockets/extensions/base.py /usr/lib/python3.11/site-packages/websockets/extensions/permessage_deflate.py /usr/lib/python3.11/site-packages/websockets/frames.py /usr/lib/python3.11/site-packages/websockets/headers.py /usr/lib/python3.11/site-packages/websockets/http.py /usr/lib/python3.11/site-packages/websockets/http11.py /usr/lib/python3.11/site-packages/websockets/imports.py /usr/lib/python3.11/site-packages/websockets/legacy /usr/lib/python3.11/site-packages/websockets/legacy/__init__.py /usr/lib/python3.11/site-packages/websockets/legacy/__pycache__ /usr/lib/python3.11/site-packages/websockets/legacy/__pycache__/__init__.cpython-311.opt-1.pyc /usr/lib/python3.11/site-packages/websockets/legacy/__pycache__/__init__.cpython-311.pyc /usr/lib/python3.11/site-packages/websockets/legacy/__pycache__/auth.cpython-311.opt-1.pyc /usr/lib/python3.11/site-packages/websockets/legacy/__pycache__/auth.cpython-311.pyc /usr/lib/python3.11/site-packages/websockets/legacy/__pycache__/client.cpython-311.opt-1.pyc /usr/lib/python3.11/site-packages/websockets/legacy/__pycache__/client.cpython-311.pyc /usr/lib/python3.11/site-packages/websockets/legacy/__pycache__/exceptions.cpython-311.opt-1.pyc /usr/lib/python3.11/site-packages/websockets/legacy/__pycache__/exceptions.cpython-311.pyc /usr/lib/python3.11/site-packages/websockets/legacy/__pycache__/framing.cpython-311.opt-1.pyc /usr/lib/python3.11/site-packages/websockets/legacy/__pycache__/framing.cpython-311.pyc /usr/lib/python3.11/site-packages/websockets/legacy/__pycache__/handshake.cpython-311.opt-1.pyc /usr/lib/python3.11/site-packages/websockets/legacy/__pycache__/handshake.cpython-311.pyc /usr/lib/python3.11/site-packages/websockets/legacy/__pycache__/http.cpython-311.opt-1.pyc /usr/lib/python3.11/site-packages/websockets/legacy/__pycache__/http.cpython-311.pyc /usr/lib/python3.11/site-packages/websockets/legacy/__pycache__/protocol.cpython-311.opt-1.pyc /usr/lib/python3.11/site-packages/websockets/legacy/__pycache__/protocol.cpython-311.pyc /usr/lib/python3.11/site-packages/websockets/legacy/__pycache__/server.cpython-311.opt-1.pyc /usr/lib/python3.11/site-packages/websockets/legacy/__pycache__/server.cpython-311.pyc /usr/lib/python3.11/site-packages/websockets/legacy/auth.py /usr/lib/python3.11/site-packages/websockets/legacy/client.py /usr/lib/python3.11/site-packages/websockets/legacy/exceptions.py /usr/lib/python3.11/site-packages/websockets/legacy/framing.py /usr/lib/python3.11/site-packages/websockets/legacy/handshake.py /usr/lib/python3.11/site-packages/websockets/legacy/http.py /usr/lib/python3.11/site-packages/websockets/legacy/protocol.py /usr/lib/python3.11/site-packages/websockets/legacy/server.py /usr/lib/python3.11/site-packages/websockets/protocol.py /usr/lib/python3.11/site-packages/websockets/py.typed /usr/lib/python3.11/site-packages/websockets/server.py /usr/lib/python3.11/site-packages/websockets/speedups.cpython-311-arm-linux-gnueabihf.so /usr/lib/python3.11/site-packages/websockets/speedups.pyi /usr/lib/python3.11/site-packages/websockets/streams.py /usr/lib/python3.11/site-packages/websockets/sync /usr/lib/python3.11/site-packages/websockets/sync/__init__.py /usr/lib/python3.11/site-packages/websockets/sync/__pycache__ /usr/lib/python3.11/site-packages/websockets/sync/__pycache__/__init__.cpython-311.opt-1.pyc /usr/lib/python3.11/site-packages/websockets/sync/__pycache__/__init__.cpython-311.pyc /usr/lib/python3.11/site-packages/websockets/sync/__pycache__/client.cpython-311.opt-1.pyc /usr/lib/python3.11/site-packages/websockets/sync/__pycache__/client.cpython-311.pyc /usr/lib/python3.11/site-packages/websockets/sync/__pycache__/connection.cpython-311.opt-1.pyc /usr/lib/python3.11/site-packages/websockets/sync/__pycache__/connection.cpython-311.pyc /usr/lib/python3.11/site-packages/websockets/sync/__pycache__/messages.cpython-311.opt-1.pyc /usr/lib/python3.11/site-packages/websockets/sync/__pycache__/messages.cpython-311.pyc /usr/lib/python3.11/site-packages/websockets/sync/__pycache__/server.cpython-311.opt-1.pyc /usr/lib/python3.11/site-packages/websockets/sync/__pycache__/server.cpython-311.pyc /usr/lib/python3.11/site-packages/websockets/sync/__pycache__/utils.cpython-311.opt-1.pyc /usr/lib/python3.11/site-packages/websockets/sync/__pycache__/utils.cpython-311.pyc /usr/lib/python3.11/site-packages/websockets/sync/client.py /usr/lib/python3.11/site-packages/websockets/sync/connection.py /usr/lib/python3.11/site-packages/websockets/sync/messages.py /usr/lib/python3.11/site-packages/websockets/sync/server.py /usr/lib/python3.11/site-packages/websockets/sync/utils.py /usr/lib/python3.11/site-packages/websockets/typing.py /usr/lib/python3.11/site-packages/websockets/uri.py /usr/lib/python3.11/site-packages/websockets/utils.py /usr/lib/python3.11/site-packages/websockets/version.py /usr/share/doc/packages/python311-websockets /usr/share/doc/packages/python311-websockets/README.rst /usr/share/licenses/python311-websockets /usr/share/licenses/python311-websockets/LICENSE
Generated by rpm2html 1.8.1
Fabrice Bellet, Sat Dec 21 00:22:59 2024