From ec19341e05f4ce8e5acc9f7eed4df36a7eb2a1c8 Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Tue, 26 Jan 2016 20:30:45 +0200 Subject: [PATCH] Fix error with unicode for serial ports description --- platformio/__init__.py | 2 +- platformio/util.py | 15 ++++++++++++--- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/platformio/__init__.py b/platformio/__init__.py index 78e2efe3..a3b6db6e 100644 --- a/platformio/__init__.py +++ b/platformio/__init__.py @@ -14,7 +14,7 @@ import sys -VERSION = (2, 8, "0.dev4") +VERSION = (2, 8, "0.dev5") __version__ = ".".join([str(s) for s in VERSION]) __title__ = "platformio" diff --git a/platformio/util.py b/platformio/util.py index 63a605f7..5285b151 100644 --- a/platformio/util.py +++ b/platformio/util.py @@ -272,9 +272,18 @@ def get_serialports(): from serial.tools.list_ports import comports except ImportError: raise exception.GetSerialPortsError(os.name) - result = [{"port": p, "description": unicode(d, errors='ignore'), - "hwid": h} - for p, d, h in comports() if p] + + result = [] + for p, d, h in comports(): + if not p: + continue + if "windows" in get_systype(): + try: + d = unicode(d, errors="ignore") + except TypeError: + pass + result.append({"port": p, "description": d, "hwid": h}) + # fix for PySerial if not result and system() == "Darwin": for p in glob("/dev/tty.*"):