summaryrefslogtreecommitdiff
path: root/dev-python/trio-websocket
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2023-03-10 00:03:27 +0000
committerV3n3RiX <venerix@koprulu.sector>2023-03-10 00:03:27 +0000
commit71e206c31e948709a88fafc342bd2d8695942aa5 (patch)
tree5a725c301c38681ee78bf527d6b813cfed0ba45d /dev-python/trio-websocket
parentb99d094da26977938043a92f89ef882a70250cf8 (diff)
gentoo auto-resync : 10:03:2023 - 00:03:27
Diffstat (limited to 'dev-python/trio-websocket')
-rw-r--r--dev-python/trio-websocket/Manifest4
-rw-r--r--dev-python/trio-websocket/files/trio-websocket-0.9.2-async-gen.patch79
-rw-r--r--dev-python/trio-websocket/metadata.xml13
-rw-r--r--dev-python/trio-websocket/trio-websocket-0.9.2.ebuild47
4 files changed, 143 insertions, 0 deletions
diff --git a/dev-python/trio-websocket/Manifest b/dev-python/trio-websocket/Manifest
new file mode 100644
index 000000000000..d6ca7ce7b105
--- /dev/null
+++ b/dev-python/trio-websocket/Manifest
@@ -0,0 +1,4 @@
+AUX trio-websocket-0.9.2-async-gen.patch 2466 BLAKE2B f86007cd76395954fb7691a94814509d2871ef7a637b93b40f5b8b275f42ddf496d8012f35756693ed88de38ab29d06690e2a9a8e6f99e00acf2c156734c7a53 SHA512 b3d20d131b4c036b12b725ad732bf87d3aafade16cefe6e55083267afc916a026d15f3976bb7da56124d6995541c27a0d87283d1154aee029ce32914aee5fc20
+DIST trio-websocket-0.9.2.gh.tar.gz 43146 BLAKE2B f5463d20253c3686a0d0fe4cb38ffec235c4378c14ed2952b3518486602b06bb961291d098542a52dee7e25506713df382e303cd2dc7fa579041124d66c8ecb8 SHA512 0f25a7d234a6d9f7c0c0bdbbd2836e6baee02b4ff2daab8354f8fd483a10de65fe357a273675a172227b1b0e9f7cf6cf27ddfdf9426d1b330122a8b2ef957435
+EBUILD trio-websocket-0.9.2.ebuild 1023 BLAKE2B e9cf3ca15aeaf47e58fb6695f1c664f4b9728c9757a56181fef414834b3475425ff75c3453479f5b8b630cbda17d63b028c3bfe4933d63a4e9396e498dd7e20c SHA512 45bcb3438b2931dd9cad3f9bffe55b844375caab27cad577e6afda619e5e25dda4b81f33a2013cc05737cc39914a97575bc45c694f23d23d242be5f04638dfa6
+MISC metadata.xml 409 BLAKE2B 68c9d1ab2984909315d2ec3f91f2703cc0941911fb049c35614c2cdc935e55f0f2440f6624aab4838f0d7d07e3e5717d19c7138660e82f8a3cb237e610a974e1 SHA512 c9d5e6f956b40d03d0a062ded846c507e783c55404a76b75141004df7d43e6a8bf5810480b4286a6bdf2d48c30aad51261e48581abb8799c107b924cd8131170
diff --git a/dev-python/trio-websocket/files/trio-websocket-0.9.2-async-gen.patch b/dev-python/trio-websocket/files/trio-websocket-0.9.2-async-gen.patch
new file mode 100644
index 000000000000..7631e2118678
--- /dev/null
+++ b/dev-python/trio-websocket/files/trio-websocket-0.9.2-async-gen.patch
@@ -0,0 +1,79 @@
+From 37388d8122960f6aec707a9aa30a310bdc67610a Mon Sep 17 00:00:00 2001
+From: John Belmonte <john@neggie.net>
+Date: Sat, 21 Nov 2020 15:38:54 +0900
+Subject: [PATCH] use native async generator support
+
+---
+ tests/test_connection.py | 7 ++-----
+ trio_websocket/_impl.py | 5 ++---
+ 2 files changed, 4 insertions(+), 8 deletions(-)
+
+diff --git a/tests/test_connection.py b/tests/test_connection.py
+index 8af07a9..7832355 100644
+--- a/tests/test_connection.py
++++ b/tests/test_connection.py
+@@ -37,7 +37,6 @@
+ import pytest
+ import trio
+ import trustme
+-from async_generator import async_generator, yield_
+ from trio.testing import memory_stream_pair
+ from wsproto.events import CloseConnection
+
+@@ -78,24 +77,22 @@
+
+
+ @pytest.fixture
+-@async_generator
+ async def echo_server(nursery):
+ ''' A server that reads one message, sends back the same message,
+ then closes the connection. '''
+ serve_fn = partial(serve_websocket, echo_request_handler, HOST, 0,
+ ssl_context=None)
+ server = await nursery.start(serve_fn)
+- await yield_(server)
++ yield server
+
+
+ @pytest.fixture
+-@async_generator
+ async def echo_conn(echo_server):
+ ''' Return a client connection instance that is connected to an echo
+ server. '''
+ async with open_websocket(HOST, echo_server.port, RESOURCE,
+ use_ssl=False) as conn:
+- await yield_(conn)
++ yield conn
+
+
+ async def echo_request_handler(request):
+diff --git a/trio_websocket/_impl.py b/trio_websocket/_impl.py
+index 693c379..440d0e2 100644
+--- a/trio_websocket/_impl.py
++++ b/trio_websocket/_impl.py
+@@ -9,7 +9,7 @@
+ import struct
+ import urllib.parse
+
+-from async_generator import async_generator, yield_, asynccontextmanager
++from async_generator import asynccontextmanager
+ import trio
+ import trio.abc
+ from wsproto import ConnectionType, WSConnection
+@@ -65,7 +65,6 @@ def remove_cancels(exc):
+
+
+ @asynccontextmanager
+-@async_generator
+ async def open_websocket(host, port, resource, *, use_ssl, subprotocols=None,
+ extra_headers=None,
+ message_queue_size=MESSAGE_QUEUE_SIZE, max_message_size=MAX_MESSAGE_SIZE,
+@@ -115,7 +114,7 @@ async def open_websocket(host, port, resource, *, use_ssl, subprotocols=None,
+ except OSError as e:
+ raise HandshakeError from e
+ try:
+- await yield_(connection)
++ yield connection
+ finally:
+ try:
+ with trio.fail_after(disconnect_timeout):
diff --git a/dev-python/trio-websocket/metadata.xml b/dev-python/trio-websocket/metadata.xml
new file mode 100644
index 000000000000..f92b85725b72
--- /dev/null
+++ b/dev-python/trio-websocket/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>python@gentoo.org</email>
+ <name>Python</name>
+ </maintainer>
+ <stabilize-allarches/>
+ <upstream>
+ <remote-id type="github">HyperionGray/trio-websocket</remote-id>
+ <remote-id type="pypi">trio-websocket</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/trio-websocket/trio-websocket-0.9.2.ebuild b/dev-python/trio-websocket/trio-websocket-0.9.2.ebuild
new file mode 100644
index 000000000000..c0129ead5201
--- /dev/null
+++ b/dev-python/trio-websocket/trio-websocket-0.9.2.ebuild
@@ -0,0 +1,47 @@
+# Copyright 2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( pypy3 python3_{9..11} )
+
+inherit distutils-r1
+
+DESCRIPTION="WebSocket client and server implementation for Python Trio"
+HOMEPAGE="
+ https://github.com/HyperionGray/trio-websocket/
+ https://pypi.org/project/trio-websocket/
+"
+SRC_URI="
+ https://github.com/HyperionGray/trio-websocket/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="
+ >=dev-python/async_generator-1.10[${PYTHON_USEDEP}]
+ >=dev-python/trio-0.11[${PYTHON_USEDEP}]
+ >=dev-python/wsproto-0.14[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ >=dev-python/pytest-trio-0.5.0[${PYTHON_USEDEP}]
+ dev-python/trustme[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+PATCHES=(
+ # backport from https://github.com/HyperionGray/trio-websocket/pull/138/
+ "${FILESDIR}"/${P}-async-gen.patch
+)
+
+python_test() {
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest -p trio
+}