thw plugins: log exception at import time (but only if interesting) - electrum - Electrum Bitcoin wallet HTML git clone https://git.parazyd.org/electrum DIR Log DIR Files DIR Refs DIR Submodules --- DIR commit 2eb02931aea1d4bf0c869284959bdb9b584f19f4 DIR parent de903103dafd46e1073d0e4de5df86e2407386bd HTML Author: SomberNight <somber.night@protonmail.com> Date: Mon, 11 Jan 2021 00:05:23 +0100 hw plugins: log exception at import time (but only if interesting) related: https://github.com/spesmilo/electrum/issues/6928 Diffstat: M electrum/plugins/bitbox02/bitbox02… | 10 ++++++---- M electrum/plugins/coldcard/coldcard… | 4 +++- M electrum/plugins/ledger/ledger.py | 4 +++- M electrum/plugins/trezor/trezor.py | 3 ++- 4 files changed, 14 insertions(+), 7 deletions(-) --- DIR diff --git a/electrum/plugins/bitbox02/bitbox02.py b/electrum/plugins/bitbox02/bitbox02.py t@@ -25,6 +25,9 @@ import electrum.ecc as ecc from ..hw_wallet import HW_PluginBase, HardwareClientBase +_logger = get_logger(__name__) + + try: from bitbox02 import bitbox02 from bitbox02 import util t@@ -36,13 +39,12 @@ try: FirmwareVersionOutdatedException, ) requirements_ok = True -except ImportError: +except ImportError as e: + if not (isinstance(e, ModuleNotFoundError) and e.name == 'bitbox02'): + _logger.exception('error importing bitbox02 plugin deps') requirements_ok = False -_logger = get_logger(__name__) - - class BitBox02Client(HardwareClientBase): # handler is a BitBox02_Handler, importing it would lead to a circular dependency def __init__(self, handler: Any, device: Device, config: SimpleConfig, *, plugin: HW_PluginBase): DIR diff --git a/electrum/plugins/coldcard/coldcard.py b/electrum/plugins/coldcard/coldcard.py t@@ -49,7 +49,9 @@ try: except: return False -except ImportError: +except ImportError as e: + if not (isinstance(e, ModuleNotFoundError) and e.name == 'ckcc'): + _logger.exception('error importing coldcard plugin deps') requirements_ok = False COINKITE_VID = 0xd13e DIR diff --git a/electrum/plugins/ledger/ledger.py b/electrum/plugins/ledger/ledger.py t@@ -35,7 +35,9 @@ try: from btchip.btchipException import BTChipException BTCHIP = True BTCHIP_DEBUG = False -except ImportError: +except ImportError as e: + if not (isinstance(e, ModuleNotFoundError) and e.name == 'btchip'): + _logger.exception('error importing ledger plugin deps') BTCHIP = False MSG_NEEDS_FW_UPDATE_GENERIC = _('Firmware version too old. Please update at') + \ DIR diff --git a/electrum/plugins/trezor/trezor.py b/electrum/plugins/trezor/trezor.py t@@ -36,7 +36,8 @@ try: TREZORLIB = True except Exception as e: - _logger.exception('error importing trezorlib') + if not (isinstance(e, ModuleNotFoundError) and e.name == 'trezorlib'): + _logger.exception('error importing trezor plugin deps') TREZORLIB = False class _EnumMissing: