From 98e53077b6dd3360d942776aff2c0094c26aaed2 Mon Sep 17 00:00:00 2001 From: Lex Robinson Date: Wed, 29 Aug 2018 23:17:54 +0100 Subject: [PATCH] Fix tilda_tools test not working in Windows Fixes for hard coded '/'s. --- .development/pyboard_util.py | 13 ++++++++++++- .development/resources.py | 7 ++++--- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/.development/pyboard_util.py b/.development/pyboard_util.py index b1afee7..db1ef2d 100644 --- a/.development/pyboard_util.py +++ b/.development/pyboard_util.py @@ -61,10 +61,21 @@ def soft_reset(args, verbose = True): raise PyboardError('could not soft reboot') def find_tty(): - # Todo: find solution for windows, test in linux + # Todo: test in linux, let user pick if multiple ports are available for pattern in ['/dev/ttyACM*', '/dev/tty.usbmodemTiLDA*', '/dev/tty.usbmodem*']: for path in glob.glob(pattern): return path + + if sys.platform.startswith('win'): + import serial + for port in ['COM%s' % (i + 1) for i in range(256)]: + try: + s = serial.Serial(port) + s.close() + return port + except (OSError, serial.SerialException): + pass + print("Couldn't find badge tty - Please make it's plugged in and reset it if necessary") sys.exit(1) diff --git a/.development/resources.py b/.development/resources.py index 31dd9bc..cae7da0 100644 --- a/.development/resources.py +++ b/.development/resources.py @@ -135,7 +135,7 @@ def add_metadata(path, resources): for resource in resources.values(): file = None if resource['type'] == "app": - file = next(f for f in resource['files'] if "/main.py" in f) + file = next(f for f in resource['files'] if os.path.basename(f) == "main.py") elif resource['type'] == "lib": file = next(iter(resource['files'].keys())) @@ -166,6 +166,7 @@ def resolve_dependencies(resources): to_add = resource['dependencies'].copy() while len(to_add): r = to_add.pop() + r = os.path.normpath(r) if r in already_added: continue if r not in resources: @@ -244,6 +245,6 @@ def pretty_print_resources(resources): def normalize_dependency(dependency): """lib dependencies can be shortened to just their module name""" - if "." in dependency or "/" in dependency or "upip:" in dependency: + if "." in dependency or os.pathsep in dependency or "upip:" in dependency: return dependency - return "lib/%s.py" % dependency + return os.path.join("lib", "%s.py" % dependency)