From 5fc42a6c9733bd8f165be7fa8d70fb614ae8de53 Mon Sep 17 00:00:00 2001
From: Damien George <damien.p.george@gmail.com>
Date: Wed, 22 Oct 2014 20:27:43 +0100
Subject: [PATCH] tools, pydfu: Some fixes to support Python 3.

---
 tools/pydfu.py | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/tools/pydfu.py b/tools/pydfu.py
index af805b4ce..8b4e960eb 100755
--- a/tools/pydfu.py
+++ b/tools/pydfu.py
@@ -239,7 +239,7 @@ def consume(fmt, data, names):
 
 def cstring(string):
     """Extracts a null-terminated string from a byte array."""
-    return string.split('\0', 1)[0]
+    return string.split(b'\0', 1)[0]
 
 
 def compute_crc(data):
@@ -361,8 +361,8 @@ def get_dfu_devices(*args, **kwargs):
     refine the search.
     """
 
-    return usb.core.find(*args, find_all=True,
-                         custom_match=FilterDFU(), **kwargs)
+    return list(usb.core.find(*args, find_all=True,
+                              custom_match=FilterDFU(), **kwargs))
 
 
 def get_memory_layout(device):
@@ -504,7 +504,11 @@ def main():
         list_dfu_devices(idVendor=__VID, idProduct=__PID)
         return
 
-    init()
+    try:
+        init()
+    except ValueError as er:
+        print(str(er))
+        sys.exit(1)
 
     if args.mass_erase:
         print ("Mass erase...")
-- 
GitLab