From 66716f87a5d9eaabd276178a16e76dfad49bc85b Mon Sep 17 00:00:00 2001 From: Lee Hudson Date: Mon, 30 Sep 2024 09:55:23 +0100 Subject: [PATCH] Added optional separator argument to TcpIo constructor --- src/tickit/adapters/io/tcp_io.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/tickit/adapters/io/tcp_io.py b/src/tickit/adapters/io/tcp_io.py index cfc4cadb0..83def45af 100644 --- a/src/tickit/adapters/io/tcp_io.py +++ b/src/tickit/adapters/io/tcp_io.py @@ -20,9 +20,10 @@ class TcpIo(AdapterIo[CommandAdapter]): host: str port: int - def __init__(self, host: str, port: int) -> None: + def __init__(self, host: str, port: int, separator: str = None) -> None: self.host = host self.port = port + self.separator = separator async def setup( self, adapter: CommandAdapter, raise_interrupt: RaiseInterrupt @@ -79,7 +80,11 @@ async def reply(replies: AsyncIterable[Optional[bytes]]) -> None: tasks.append(asyncio.create_task(reply(on_connect()))) while True: - data: bytes = await reader.read(1024) + if self.separator != None: + data: bytes = await reader.readuntil(separator=self.separator.encode()) + else: + data: bytes = await reader.read(1024) + if data == b"": break addr = writer.get_extra_info("peername")