diff --git a/setup.py b/setup.py index 2758106..857e3b5 100644 --- a/setup.py +++ b/setup.py @@ -9,7 +9,7 @@ setup( name="arcam-fmj", - version="0.4.5", + version="0.4.6", description="A python library for speaking to Arcam receivers", long_description=long_description, long_description_content_type="text/x-rst", diff --git a/src/arcam/fmj/client.py b/src/arcam/fmj/client.py index 587b774..c95e52d 100644 --- a/src/arcam/fmj/client.py +++ b/src/arcam/fmj/client.py @@ -101,10 +101,14 @@ async def cancelled_watcher(): except asyncio.CancelledError: cancelled.add(True) - async with Nursery() as nursery: - nursery.start_soon(cancelled_watcher()) - nursery.start_soon(self._process_data(self._reader)) - nursery.start_soon(self._process_heartbeat(self._writer)) + try: + async with Nursery() as nursery: + nursery.start_soon(cancelled_watcher()) + nursery.start_soon(self._process_data(self._reader)) + nursery.start_soon(self._process_heartbeat(self._writer)) + except MultiError as e: + if len(e.exceptions) == 1: + raise e.exceptions[0] from e if cancelled: raise asyncio.CancelledError