Workaround for bug in PySerial: Don't crash if file doesn't exist

Gonna report this upstream at the PySerial folks, if nobody else found this yet.

Fixes Sentry issue CURA-11W.
This commit is contained in:
Ghostkeeper 2020-07-22 09:50:46 +02:00
parent 8714ff9edb
commit 9daab5ed9b
No known key found for this signature in database
GPG key ID: D2A8871EE34EC59A

View file

@ -114,10 +114,14 @@ class USBPrinterOutputDeviceManager(QObject, OutputDevicePlugin):
:param only_list_usb: If true, only usb ports are listed
"""
base_list = []
for port in serial.tools.list_ports.comports():
try:
port_list = serial.tools.list_ports.comports()
except TypeError: # Bug in PySerial causes a TypeError if port gets disconnected while processing.
port_list = []
for port in port_list:
if not isinstance(port, tuple):
port = (port.device, port.description, port.hwid)
if not port[2]: # HWID may be None if the port got disconnected while processing, the device is not USB or the system doesn't report the type.
if not port[2]: # HWID may be None if the device is not USB or the system doesn't report the type.
continue
if only_list_usb and not port[2].startswith("USB"):
continue