summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-04-10 08:59:01 +0000
committerCoprDistGit <infra@openeuler.org>2023-04-10 08:59:01 +0000
commit23020080dba89cf90ef02b4b9784ae12e7eb20f0 (patch)
tree2b4fa85e006f00311672c0af3b82192a3026bffb
parentc14ed9ecd75aa0a468d1b3c23a069a282d74c112 (diff)
automatic import of python-trio-websocket
-rw-r--r--.gitignore1
-rw-r--r--python-trio-websocket.spec339
-rw-r--r--sources1
3 files changed, 341 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..00a6914 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/trio-websocket-0.10.2.tar.gz
diff --git a/python-trio-websocket.spec b/python-trio-websocket.spec
new file mode 100644
index 0000000..de6804d
--- /dev/null
+++ b/python-trio-websocket.spec
@@ -0,0 +1,339 @@
+%global _empty_manifest_terminate_build 0
+Name: python-trio-websocket
+Version: 0.10.2
+Release: 1
+Summary: WebSocket library for Trio
+License: MIT License
+URL: https://github.com/HyperionGray/trio-websocket
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/ea/56/33f46c824c43493de52d62842e569a8c3db6b0e965825257a0684a608580/trio-websocket-0.10.2.tar.gz
+BuildArch: noarch
+
+Requires: python3-exceptiongroup
+Requires: python3-trio
+Requires: python3-wsproto
+
+%description
+# Trio WebSocket
+
+This library implements both server and client aspects of the [the WebSocket
+protocol](https://tools.ietf.org/html/rfc6455), striving for safety,
+correctness, and ergonomics. It is based on the [wsproto
+project](https://wsproto.readthedocs.io/en/latest/), which is a
+[Sans-IO](https://sans-io.readthedocs.io/) state machine that implements the
+majority of the WebSocket protocol, including framing, codecs, and events. This
+library handles I/O using [the Trio
+framework](https://trio.readthedocs.io/en/latest/). This library passes the
+[Autobahn Test Suite](https://github.com/crossbario/autobahn-testsuite).
+
+This README contains a brief introduction to the project. Full documentation [is
+available here](https://trio-websocket.readthedocs.io).
+
+[![PyPI](https://img.shields.io/pypi/v/trio-websocket.svg?style=flat-square)](https://pypi.org/project/trio-websocket/)
+![Python Versions](https://img.shields.io/pypi/pyversions/trio-websocket.svg?style=flat-square)
+[![Build Status](https://img.shields.io/github/actions/workflow/status/HyperionGray/trio-websocket/ci.yml)](https://github.com/HyperionGray/trio-websocket/actions/workflows/ci.yml)
+[![Read the Docs](https://img.shields.io/readthedocs/trio-websocket.svg)](https://trio-websocket.readthedocs.io)
+
+## Alternatives
+
+If you happen to only need a server, using Quart via the [quart-trio](https://github.com/pgjones/quart-trio)
+extension may suffice. While trio-websocket is more flexible, Quart covers
+both HTTP and WebSocket within a single framework, and serving both from the
+same port is straightforward. There has yet to be a performance comparison.
+
+## Installation
+
+This library requires Python 3.7 or greater. To install from PyPI:
+
+ pip install trio-websocket
+
+## Client Example
+
+This example demonstrates how to open a WebSocket URL:
+
+```python
+import trio
+from sys import stderr
+from trio_websocket import open_websocket_url
+
+
+async def main():
+ try:
+ async with open_websocket_url('wss://echo.websocket.org') as ws:
+ await ws.send_message('hello world!')
+ message = await ws.get_message()
+ print('Received message: %s' % message)
+ except OSError as ose:
+ print('Connection attempt failed: %s' % ose, file=stderr)
+
+trio.run(main)
+```
+
+The WebSocket context manager connects automatically before entering the block
+and disconnects automatically before exiting the block. The full API offers a
+lot of flexibility and additional options.
+
+## Server Example
+
+A WebSocket server requires a bind address, a port, and a coroutine to handle
+incoming connections. This example demonstrates an "echo server" that replies to
+each incoming message with an identical outgoing message.
+
+```python
+import trio
+from trio_websocket import serve_websocket, ConnectionClosed
+
+async def echo_server(request):
+ ws = await request.accept()
+ while True:
+ try:
+ message = await ws.get_message()
+ await ws.send_message(message)
+ except ConnectionClosed:
+ break
+
+async def main():
+ await serve_websocket(echo_server, '127.0.0.1', 8000, ssl_context=None)
+
+trio.run(main)
+```
+
+The server's handler ``echo_server(…)`` receives a connection request object.
+This object can be used to inspect the client's request and modify the
+handshake, then it can be exchanged for an actual WebSocket object ``ws``.
+Again, the full API offers a lot of flexibility and additional options.
+
+
+%package -n python3-trio-websocket
+Summary: WebSocket library for Trio
+Provides: python-trio-websocket
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-trio-websocket
+# Trio WebSocket
+
+This library implements both server and client aspects of the [the WebSocket
+protocol](https://tools.ietf.org/html/rfc6455), striving for safety,
+correctness, and ergonomics. It is based on the [wsproto
+project](https://wsproto.readthedocs.io/en/latest/), which is a
+[Sans-IO](https://sans-io.readthedocs.io/) state machine that implements the
+majority of the WebSocket protocol, including framing, codecs, and events. This
+library handles I/O using [the Trio
+framework](https://trio.readthedocs.io/en/latest/). This library passes the
+[Autobahn Test Suite](https://github.com/crossbario/autobahn-testsuite).
+
+This README contains a brief introduction to the project. Full documentation [is
+available here](https://trio-websocket.readthedocs.io).
+
+[![PyPI](https://img.shields.io/pypi/v/trio-websocket.svg?style=flat-square)](https://pypi.org/project/trio-websocket/)
+![Python Versions](https://img.shields.io/pypi/pyversions/trio-websocket.svg?style=flat-square)
+[![Build Status](https://img.shields.io/github/actions/workflow/status/HyperionGray/trio-websocket/ci.yml)](https://github.com/HyperionGray/trio-websocket/actions/workflows/ci.yml)
+[![Read the Docs](https://img.shields.io/readthedocs/trio-websocket.svg)](https://trio-websocket.readthedocs.io)
+
+## Alternatives
+
+If you happen to only need a server, using Quart via the [quart-trio](https://github.com/pgjones/quart-trio)
+extension may suffice. While trio-websocket is more flexible, Quart covers
+both HTTP and WebSocket within a single framework, and serving both from the
+same port is straightforward. There has yet to be a performance comparison.
+
+## Installation
+
+This library requires Python 3.7 or greater. To install from PyPI:
+
+ pip install trio-websocket
+
+## Client Example
+
+This example demonstrates how to open a WebSocket URL:
+
+```python
+import trio
+from sys import stderr
+from trio_websocket import open_websocket_url
+
+
+async def main():
+ try:
+ async with open_websocket_url('wss://echo.websocket.org') as ws:
+ await ws.send_message('hello world!')
+ message = await ws.get_message()
+ print('Received message: %s' % message)
+ except OSError as ose:
+ print('Connection attempt failed: %s' % ose, file=stderr)
+
+trio.run(main)
+```
+
+The WebSocket context manager connects automatically before entering the block
+and disconnects automatically before exiting the block. The full API offers a
+lot of flexibility and additional options.
+
+## Server Example
+
+A WebSocket server requires a bind address, a port, and a coroutine to handle
+incoming connections. This example demonstrates an "echo server" that replies to
+each incoming message with an identical outgoing message.
+
+```python
+import trio
+from trio_websocket import serve_websocket, ConnectionClosed
+
+async def echo_server(request):
+ ws = await request.accept()
+ while True:
+ try:
+ message = await ws.get_message()
+ await ws.send_message(message)
+ except ConnectionClosed:
+ break
+
+async def main():
+ await serve_websocket(echo_server, '127.0.0.1', 8000, ssl_context=None)
+
+trio.run(main)
+```
+
+The server's handler ``echo_server(…)`` receives a connection request object.
+This object can be used to inspect the client's request and modify the
+handshake, then it can be exchanged for an actual WebSocket object ``ws``.
+Again, the full API offers a lot of flexibility and additional options.
+
+
+%package help
+Summary: Development documents and examples for trio-websocket
+Provides: python3-trio-websocket-doc
+%description help
+# Trio WebSocket
+
+This library implements both server and client aspects of the [the WebSocket
+protocol](https://tools.ietf.org/html/rfc6455), striving for safety,
+correctness, and ergonomics. It is based on the [wsproto
+project](https://wsproto.readthedocs.io/en/latest/), which is a
+[Sans-IO](https://sans-io.readthedocs.io/) state machine that implements the
+majority of the WebSocket protocol, including framing, codecs, and events. This
+library handles I/O using [the Trio
+framework](https://trio.readthedocs.io/en/latest/). This library passes the
+[Autobahn Test Suite](https://github.com/crossbario/autobahn-testsuite).
+
+This README contains a brief introduction to the project. Full documentation [is
+available here](https://trio-websocket.readthedocs.io).
+
+[![PyPI](https://img.shields.io/pypi/v/trio-websocket.svg?style=flat-square)](https://pypi.org/project/trio-websocket/)
+![Python Versions](https://img.shields.io/pypi/pyversions/trio-websocket.svg?style=flat-square)
+[![Build Status](https://img.shields.io/github/actions/workflow/status/HyperionGray/trio-websocket/ci.yml)](https://github.com/HyperionGray/trio-websocket/actions/workflows/ci.yml)
+[![Read the Docs](https://img.shields.io/readthedocs/trio-websocket.svg)](https://trio-websocket.readthedocs.io)
+
+## Alternatives
+
+If you happen to only need a server, using Quart via the [quart-trio](https://github.com/pgjones/quart-trio)
+extension may suffice. While trio-websocket is more flexible, Quart covers
+both HTTP and WebSocket within a single framework, and serving both from the
+same port is straightforward. There has yet to be a performance comparison.
+
+## Installation
+
+This library requires Python 3.7 or greater. To install from PyPI:
+
+ pip install trio-websocket
+
+## Client Example
+
+This example demonstrates how to open a WebSocket URL:
+
+```python
+import trio
+from sys import stderr
+from trio_websocket import open_websocket_url
+
+
+async def main():
+ try:
+ async with open_websocket_url('wss://echo.websocket.org') as ws:
+ await ws.send_message('hello world!')
+ message = await ws.get_message()
+ print('Received message: %s' % message)
+ except OSError as ose:
+ print('Connection attempt failed: %s' % ose, file=stderr)
+
+trio.run(main)
+```
+
+The WebSocket context manager connects automatically before entering the block
+and disconnects automatically before exiting the block. The full API offers a
+lot of flexibility and additional options.
+
+## Server Example
+
+A WebSocket server requires a bind address, a port, and a coroutine to handle
+incoming connections. This example demonstrates an "echo server" that replies to
+each incoming message with an identical outgoing message.
+
+```python
+import trio
+from trio_websocket import serve_websocket, ConnectionClosed
+
+async def echo_server(request):
+ ws = await request.accept()
+ while True:
+ try:
+ message = await ws.get_message()
+ await ws.send_message(message)
+ except ConnectionClosed:
+ break
+
+async def main():
+ await serve_websocket(echo_server, '127.0.0.1', 8000, ssl_context=None)
+
+trio.run(main)
+```
+
+The server's handler ``echo_server(…)`` receives a connection request object.
+This object can be used to inspect the client's request and modify the
+handshake, then it can be exchanged for an actual WebSocket object ``ws``.
+Again, the full API offers a lot of flexibility and additional options.
+
+
+%prep
+%autosetup -n trio-websocket-0.10.2
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-trio-websocket -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Mon Apr 10 2023 Python_Bot <Python_Bot@openeuler.org> - 0.10.2-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..4fced11
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+a53db2fdeffbccf687fb03a914211eaf trio-websocket-0.10.2.tar.gz