From 1f8acd988430369662079295caf08c092d6416ed Mon Sep 17 00:00:00 2001 From: Vadim Yanitskiy Date: Thu, 27 Feb 2020 02:42:56 +0700 Subject: [PATCH] transport/pcsc: work around Python 3.5 bug: guard disconnect() Unfortunately, Debian ships old Python (3.5 vs 3.8) and old pyscard (1.9.4 vs 1.9.9). Calling PCSCCardConnection.disconnect() from a destructor causes warnings about ignored exceptions: AttributeError: 'NoneType' object has no attribute 'disconnect' AttributeError: 'NoneType' object has no attribute 'setChanged' AttributeError: 'NoneType' object has no attribute 'SCardDisconnect' TypeError: 'NoneType' object is not callable All these exceptions happen in pyscard's own destructors. Change-Id: I9c644bc5fe9791b141a30bfc13647d77937a82ee --- pySim/transport/pcsc.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pySim/transport/pcsc.py b/pySim/transport/pcsc.py index fadf6f93..2c2cbb93 100644 --- a/pySim/transport/pcsc.py +++ b/pySim/transport/pcsc.py @@ -39,7 +39,11 @@ class PcscSimLink(LinkBase): self._con = self._reader.createConnection() def __del__(self): - self._con.disconnect() + try: + # FIXME: this causes multiple warnings in Python 3.5.3 + self._con.disconnect() + except: + pass return def wait_for_card(self, timeout=None, newcardonly=False):