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
This commit is contained in:
Vadim Yanitskiy
2020-02-27 02:42:56 +07:00
committed by fixeria
parent ab34fa895e
commit 1f8acd9884

View File

@@ -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):