From d6c3aaad8af18e792ce7cfad720138dc26c782bd Mon Sep 17 00:00:00 2001 From: Kevin O'Connor Date: Sun, 31 Oct 2021 13:39:01 -0400 Subject: [PATCH] gcode: Use regular str() types for g-code commands on Python2 Avoid using unicode() types on Python2 as it can lead to subtle errors. Also, accept utf8 on gcode input (instead of just ascii). Signed-off-by: Kevin O'Connor --- klippy/gcode.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/klippy/gcode.py b/klippy/gcode.py index 17bf17e4..e1769e47 100644 --- a/klippy/gcode.py +++ b/klippy/gcode.py @@ -381,13 +381,13 @@ class GCodeIO: def _process_data(self, eventtime): # Read input, separate by newline, and add to pending_commands try: - data = os.read(self.fd, 4096) - except os.error: + data = str(os.read(self.fd, 4096).decode('utf8')) + except os.error, UnicodeDecodeError: logging.exception("Read g-code") return self.input_log.append((eventtime, data)) self.bytes_read += len(data) - lines = data.decode().split('\n') + lines = data.split('\n') lines[0] = self.partial_input + lines[0] self.partial_input = lines.pop() pending_commands = self.pending_commands