Coverage for /Users/ajo/work/jumpstarter/jumpstarter/packages/jumpstarter/jumpstarter/streams/aiohttp.py: 52%
21 statements
« prev ^ index » next coverage.py v7.8.0, created at 2025-05-06 10:20 +0200
« prev ^ index » next coverage.py v7.8.0, created at 2025-05-06 10:20 +0200
1from dataclasses import dataclass
3from aiohttp import ClientError, StreamReader
4from anyio import BrokenResourceError, EndOfStream
5from anyio.abc import ObjectStream
8@dataclass(frozen=True, kw_only=True, slots=True)
9class AiohttpStreamReaderStream(ObjectStream[bytes]):
10 reader: StreamReader
12 async def send(self, item: bytes):
13 raise BrokenResourceError
15 async def receive(self) -> bytes:
16 try:
17 item = await self.reader.readany()
18 except ClientError as e:
19 raise BrokenResourceError from e
20 if len(item) == 0:
21 raise EndOfStream
22 return item
24 async def send_eof(self):
25 pass
27 async def aclose(self):
28 pass