From 3f3212e94d01a6c2f2bbdcf488eb81518f208e3e Mon Sep 17 00:00:00 2001 From: SomberNight Date: Tue, 8 Feb 2022 12:56:02 +0100 Subject: [PATCH] some clean-ups now that we require python 3.8 In particular, asyncio.CancelledError no longer inherits Exception (it inherits BaseException directly) --- electrum/daemon.py | 2 -- electrum/exchange_rate.py | 3 --- electrum/interface.py | 3 +-- electrum/lntransport.py | 2 -- electrum/lnworker.py | 2 -- electrum/network.py | 2 -- electrum/util.py | 9 ++------- 7 files changed, 3 insertions(+), 20 deletions(-) diff --git a/electrum/daemon.py b/electrum/daemon.py index c40d1f96b..afac69529 100644 --- a/electrum/daemon.py +++ b/electrum/daemon.py @@ -505,8 +505,6 @@ class Daemon(Logger): async with self.taskgroup as group: [await group.spawn(job) for job in jobs] await group.spawn(asyncio.Event().wait) # run forever (until cancel) - except asyncio.CancelledError: - raise except Exception as e: self.logger.exception("taskgroup died.") util.send_exception_to_crash_reporter(e) diff --git a/electrum/exchange_rate.py b/electrum/exchange_rate.py index 7ae230623..4ec8fa540 100644 --- a/electrum/exchange_rate.py +++ b/electrum/exchange_rate.py @@ -80,9 +80,6 @@ class ExchangeBase(Logger): self.logger.info(f"getting fx quotes for {ccy}") self.quotes = await self.get_rates(ccy) self.logger.info("received fx quotes") - except asyncio.CancelledError: - # CancelledError must be passed-through for cancellation to work - raise except aiohttp.ClientError as e: self.logger.info(f"failed fx quotes: {repr(e)}") self.quotes = {} diff --git a/electrum/interface.py b/electrum/interface.py index 0be9328e2..f67479fd8 100644 --- a/electrum/interface.py +++ b/electrum/interface.py @@ -380,8 +380,7 @@ class Interface(Logger): async def spawn_task(): task = await self.network.taskgroup.spawn(self.run()) - if sys.version_info >= (3, 8): - task.set_name(f"interface::{str(server)}") + task.set_name(f"interface::{str(server)}") asyncio.run_coroutine_threadsafe(spawn_task(), self.network.asyncio_loop) @property diff --git a/electrum/lntransport.py b/electrum/lntransport.py index 79d59e958..8a4abe423 100644 --- a/electrum/lntransport.py +++ b/electrum/lntransport.py @@ -123,8 +123,6 @@ class LNTransportBase: break try: s = await self.reader.read(2**10) - except asyncio.CancelledError: - raise except Exception: s = None if not s: diff --git a/electrum/lnworker.py b/electrum/lnworker.py index 65286b84b..6c9e8ce92 100644 --- a/electrum/lnworker.py +++ b/electrum/lnworker.py @@ -266,8 +266,6 @@ class LNWorker(Logger, NetworkRetryManager[LNPeerAddr]): try: async with self.taskgroup as group: await group.spawn(self._maintain_connectivity()) - except asyncio.CancelledError: - raise except Exception as e: self.logger.exception("taskgroup died.") finally: diff --git a/electrum/network.py b/electrum/network.py index 904edb01d..b3e33f0e6 100644 --- a/electrum/network.py +++ b/electrum/network.py @@ -1202,8 +1202,6 @@ class Network(Logger, NetworkRetryManager[ServerAddr]): async with taskgroup as group: await group.spawn(self._maintain_sessions()) [await group.spawn(job) for job in self._jobs] - except asyncio.CancelledError: - raise except Exception as e: self.logger.exception("taskgroup died.") finally: diff --git a/electrum/util.py b/electrum/util.py index ebbbdb92d..16012e573 100644 --- a/electrum/util.py +++ b/electrum/util.py @@ -1178,9 +1178,6 @@ def ignore_exceptions(func): async def wrapper(*args, **kwargs): try: return await func(*args, **kwargs) - except asyncio.CancelledError: - # note: with python 3.8, CancelledError no longer inherits Exception, so this catch is redundant - raise except Exception as e: pass return wrapper @@ -1669,10 +1666,8 @@ class nullcontext: async def __aexit__(self, *excinfo): pass -def get_running_loop(): - """Mimics _get_running_loop convenient functionality for sanity checks on all python versions""" - if sys.version_info < (3, 7): - return asyncio._get_running_loop() + +def get_running_loop() -> Optional[asyncio.AbstractEventLoop]: try: return asyncio.get_running_loop() except RuntimeError: