build: Remove async_generator as a dependency

Python 3.6+ can do this natively.
This commit is contained in:
2023-11-01 06:03:06 +01:00
parent 9aa3389902
commit 160ca7109e
5 changed files with 34 additions and 42 deletions

View File

@@ -1,7 +1,5 @@
from functools import wraps
from async_generator import async_generator, yield_
from ssb.packet_stream import PSMessageType
@@ -9,7 +7,7 @@ class MuxRPCAPIException(Exception):
pass
class MuxRPCHandler(object):
class MuxRPCHandler:
def check_message(self, msg):
body = msg.body
if isinstance(body, dict) and 'name' in body and body['name'] == 'Error':
@@ -30,14 +28,14 @@ class MuxRPCSourceHandler(MuxRPCHandler):
def __init__(self, ps_handler):
self.ps_handler = ps_handler
@async_generator
async def __aiter__(self):
async for msg in self.ps_handler:
try:
self.check_message(msg)
await yield_(msg)
except MuxRPCAPIException:
raise
def __aiter__(self):
return self
async def __anext__(self):
msg = await self.ps_handler.__anext__()
self.check_message(msg)
return msg
class MuxRPCSinkHandlerMixin(object):

View File

@@ -6,7 +6,6 @@ from time import time
from math import ceil
import simplejson
from async_generator import async_generator, yield_
from secret_handshake import SHSClient, SHSServer
@@ -32,13 +31,16 @@ class PSStreamHandler(object):
async def stop(self):
await self.queue.put(None)
@async_generator
async def __aiter__(self):
while True:
elem = await self.queue.get()
if not elem:
return
await yield_(elem)
def __aiter__(self):
return self
async def __anext__(self):
elem = await self.queue.get()
if not elem:
raise StopAsyncIteration()
return elem
class PSRequestHandler(object):
@@ -113,15 +115,19 @@ class PacketStream(object):
def is_connected(self):
return self.connection.is_connected
@async_generator
async def __aiter__(self):
while True:
msg = await self.read()
if not msg:
return
# filter out replies
if msg.req >= 0:
await yield_(msg)
def __aiter__(self):
return self
async def __anext__(self):
msg = await self.read()
if not msg:
raise StopAsyncIteration()
if msg.req >= 0:
return msg
return None
async def __await__(self):
async for data in self: