From a90c7c14d433c52b38a5f0e5b7eddb69073e62e9 Mon Sep 17 00:00:00 2001 From: Ricardo Lafuente Date: Tue, 22 Dec 2020 16:48:46 +0000 Subject: [PATCH 1/8] Fix gcd error Fix found at https://github.com/vispy/vispy/issues/1947 --- src/chiplotle/geometry/shapes/star_crisscross.py | 5 ++--- src/chiplotle/tools/mathtools/lcm.py | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/chiplotle/geometry/shapes/star_crisscross.py b/src/chiplotle/geometry/shapes/star_crisscross.py index 28bd0d0..2df5123 100644 --- a/src/chiplotle/geometry/shapes/star_crisscross.py +++ b/src/chiplotle/geometry/shapes/star_crisscross.py @@ -9,7 +9,6 @@ standard_library.install_aliases() from chiplotle.geometry.core.polygon import Polygon import math -from fractions import gcd def star_crisscross( @@ -61,9 +60,9 @@ def star_crisscross( if jump_size is None: jump_size = int(num_points / 2) - if gcd(num_points, jump_size) != 1: + if math.gcd(num_points, jump_size) != 1: if find_valid_jump_size: - while gcd(num_points, jump_size) != 1: + while math.gcd(num_points, jump_size) != 1: jump_size -= 1 else: invalid_star = [[half_width, half_height], [half_width, half_height]] diff --git a/src/chiplotle/tools/mathtools/lcm.py b/src/chiplotle/tools/mathtools/lcm.py index 2346ebb..ac61f06 100644 --- a/src/chiplotle/tools/mathtools/lcm.py +++ b/src/chiplotle/tools/mathtools/lcm.py @@ -5,7 +5,7 @@ from future import standard_library standard_library.install_aliases() -from fractions import gcd +from math import gcd def lcm(a, b): From 0c3bfaff3baae89918a11b599d62d7d873918ce5 Mon Sep 17 00:00:00 2001 From: Ricardo Lafuente Date: Tue, 22 Dec 2020 16:58:31 +0000 Subject: [PATCH 2/8] Remove old pyserial method --- src/chiplotle/tools/serialtools/what_plotter_in_port.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/chiplotle/tools/serialtools/what_plotter_in_port.py b/src/chiplotle/tools/serialtools/what_plotter_in_port.py index 752131d..73560be 100644 --- a/src/chiplotle/tools/serialtools/what_plotter_in_port.py +++ b/src/chiplotle/tools/serialtools/what_plotter_in_port.py @@ -37,10 +37,7 @@ def what_plotter_in_port(port, wait_time=10): t = time.time() while time.time() - t < wait_time: if ser.inWaiting() > 0: - try: - id = ser.readline(eol="\r").strip("\r") # <-- old pyserial - except: - id = ser.readline().strip("\r") + id = ser.readline().strip("\r") ## if not just a repeater... if id != "OI;": From 672a60efdfd2be3d0fbbebafb6eeb933bdc5451e Mon Sep 17 00:00:00 2001 From: Ricardo Lafuente Date: Tue, 22 Dec 2020 17:08:13 +0000 Subject: [PATCH 3/8] Ensure bytestring on serial connection --- src/chiplotle/tools/serialtools/what_plotter_in_port.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/chiplotle/tools/serialtools/what_plotter_in_port.py b/src/chiplotle/tools/serialtools/what_plotter_in_port.py index 73560be..6a7bba7 100644 --- a/src/chiplotle/tools/serialtools/what_plotter_in_port.py +++ b/src/chiplotle/tools/serialtools/what_plotter_in_port.py @@ -37,7 +37,7 @@ def what_plotter_in_port(port, wait_time=10): t = time.time() while time.time() - t < wait_time: if ser.inWaiting() > 0: - id = ser.readline().strip("\r") + id = ser.readline().strip(b"\r") ## if not just a repeater... if id != "OI;": From 5695d0b3a1b0c88f4acdac0ca5625041eeef0193 Mon Sep 17 00:00:00 2001 From: Ricardo Lafuente Date: Tue, 22 Dec 2020 17:12:47 +0000 Subject: [PATCH 4/8] Fix another bytestring --- src/chiplotle/tools/plottertools/instantiate_plotter_from_id.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/chiplotle/tools/plottertools/instantiate_plotter_from_id.py b/src/chiplotle/tools/plottertools/instantiate_plotter_from_id.py index 98dc01a..65bc75c 100644 --- a/src/chiplotle/tools/plottertools/instantiate_plotter_from_id.py +++ b/src/chiplotle/tools/plottertools/instantiate_plotter_from_id.py @@ -15,7 +15,7 @@ def instantiate_plotter_from_id(serial, id): - `id` is a string of the plotter ID. """ ## massage id... - id = id.replace("-", "").strip("\r") + id = id.replace("-", "").strip(b"\r") ## find a plotter within existing plotters that matches ID ## and instantiate. for plt_str in dir(plotters): From 48009b15565d39fd77044d95cdbcaad8851fa16f Mon Sep 17 00:00:00 2001 From: Ricardo Lafuente Date: Tue, 22 Dec 2020 17:16:07 +0000 Subject: [PATCH 5/8] Fix yet another bytestring --- src/chiplotle/tools/plottertools/instantiate_plotter_from_id.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/chiplotle/tools/plottertools/instantiate_plotter_from_id.py b/src/chiplotle/tools/plottertools/instantiate_plotter_from_id.py index 65bc75c..b88037e 100644 --- a/src/chiplotle/tools/plottertools/instantiate_plotter_from_id.py +++ b/src/chiplotle/tools/plottertools/instantiate_plotter_from_id.py @@ -15,7 +15,7 @@ def instantiate_plotter_from_id(serial, id): - `id` is a string of the plotter ID. """ ## massage id... - id = id.replace("-", "").strip(b"\r") + id = id.replace(b"-", b"").strip(b"\r") ## find a plotter within existing plotters that matches ID ## and instantiate. for plt_str in dir(plotters): From af82c78522aee63635c87b9af2e43306cf29bc5e Mon Sep 17 00:00:00 2001 From: Ricardo Lafuente Date: Tue, 22 Dec 2020 17:17:48 +0000 Subject: [PATCH 6/8] Convert to str instead of bytes --- src/chiplotle/tools/plottertools/instantiate_plotter_from_id.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/chiplotle/tools/plottertools/instantiate_plotter_from_id.py b/src/chiplotle/tools/plottertools/instantiate_plotter_from_id.py index b88037e..e1354b6 100644 --- a/src/chiplotle/tools/plottertools/instantiate_plotter_from_id.py +++ b/src/chiplotle/tools/plottertools/instantiate_plotter_from_id.py @@ -19,6 +19,6 @@ def instantiate_plotter_from_id(serial, id): ## find a plotter within existing plotters that matches ID ## and instantiate. for plt_str in dir(plotters): - if id in plt_str: + if str(id) in plt_str: plotter = getattr(plotters, plt_str)(serial) return plotter From c9cbf2462ee326974bfe3193c7c043c579b9ed90 Mon Sep 17 00:00:00 2001 From: Ricardo Lafuente Date: Tue, 22 Dec 2020 17:30:43 +0000 Subject: [PATCH 7/8] Try data bytes conversion --- src/chiplotle/plotters/baseplotter.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/chiplotle/plotters/baseplotter.py b/src/chiplotle/plotters/baseplotter.py index 3e4e4eb..d9ba146 100644 --- a/src/chiplotle/plotters/baseplotter.py +++ b/src/chiplotle/plotters/baseplotter.py @@ -75,7 +75,8 @@ def write(self, data): else: print(c, type(c)) result.append(c) - data = b"".join(result) + data = "".join(result) + data = bytes(data) else: raise TypeError("Unknown type {}, can't write to serial".format(type(data))) self._write_bytes_to_port(data) From 8641573517b1042fee00a9c0398cd64d1e5c390f Mon Sep 17 00:00:00 2001 From: Ricardo Lafuente Date: Tue, 22 Dec 2020 17:32:19 +0000 Subject: [PATCH 8/8] Add utf-8 byte conversion --- src/chiplotle/plotters/baseplotter.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/chiplotle/plotters/baseplotter.py b/src/chiplotle/plotters/baseplotter.py index d9ba146..5c7a779 100644 --- a/src/chiplotle/plotters/baseplotter.py +++ b/src/chiplotle/plotters/baseplotter.py @@ -76,7 +76,7 @@ def write(self, data): print(c, type(c)) result.append(c) data = "".join(result) - data = bytes(data) + data = bytes(data, 'utf-8') else: raise TypeError("Unknown type {}, can't write to serial".format(type(data))) self._write_bytes_to_port(data)