From 08adecd226b4d712eb900b1768a7a96294a89c20 Mon Sep 17 00:00:00 2001
From: Kevin O'Connor <kevin@koconnor.net>
Date: Fri, 4 Sep 2020 11:49:43 -0400
Subject: [PATCH] homing: Prefer printer.command_error() instead of
 homing.CommandError()

Update callers to use the printer.command_error reference instead of
directly using homing.CommandError() when raising or catching errors.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
---
 klippy/extras/bed_screws.py     |  1 -
 klippy/extras/manual_probe.py   |  3 +--
 klippy/extras/manual_stepper.py |  4 ++--
 klippy/extras/probe.py          | 11 +++++------
 klippy/kinematics/extruder.py   |  6 ++++--
 klippy/stepper.py               |  2 +-
 klippy/toolhead.py              |  4 ++--
 klippy/webhooks.py              |  2 +-
 8 files changed, 16 insertions(+), 17 deletions(-)

diff --git a/klippy/extras/bed_screws.py b/klippy/extras/bed_screws.py
index 483fc7efc..ccf9b327d 100644
--- a/klippy/extras/bed_screws.py
+++ b/klippy/extras/bed_screws.py
@@ -3,7 +3,6 @@
 # Copyright (C) 2019  Kevin O'Connor <kevin@koconnor.net>
 #
 # This file may be distributed under the terms of the GNU GPLv3 license.
-import homing
 
 def parse_coord(config, param):
     pair = config.get(param).strip().split(',', 1)
diff --git a/klippy/extras/manual_probe.py b/klippy/extras/manual_probe.py
index f42aaba83..e678bdf70 100644
--- a/klippy/extras/manual_probe.py
+++ b/klippy/extras/manual_probe.py
@@ -4,7 +4,6 @@
 #
 # This file may be distributed under the terms of the GNU GPLv3 license.
 import logging, bisect
-import homing
 
 class ManualProbe:
     def __init__(self, config):
@@ -97,7 +96,7 @@ class ManualProbeHelper:
             if curpos[2] < z_bob_pos:
                 self.toolhead.manual_move([None, None, z_bob_pos], self.speed)
             self.toolhead.manual_move([None, None, z_pos], self.speed)
-        except homing.CommandError as e:
+        except self.printer.command_error as e:
             self.finalize(False)
             raise
     def report_z_status(self, warn_no_change=False, prev_pos=None):
diff --git a/klippy/extras/manual_stepper.py b/klippy/extras/manual_stepper.py
index 5807c04cf..fba23f6a1 100644
--- a/klippy/extras/manual_stepper.py
+++ b/klippy/extras/manual_stepper.py
@@ -3,7 +3,7 @@
 # Copyright (C) 2019  Kevin O'Connor <kevin@koconnor.net>
 #
 # This file may be distributed under the terms of the GNU GPLv3 license.
-import stepper, homing, chelper
+import stepper, chelper
 from . import force_move
 
 ENDSTOP_SAMPLE_TIME = .000015
@@ -110,7 +110,7 @@ class ManualStepper:
                 error = str(e)
         self.sync_print_time()
         if error is not None:
-            raise homing.CommandError(error)
+            raise self.printer.command_error(error)
     cmd_MANUAL_STEPPER_help = "Command a manually configured stepper"
     def cmd_MANUAL_STEPPER(self, gcmd):
         enable = gcmd.get_int('ENABLE', None)
diff --git a/klippy/extras/probe.py b/klippy/extras/probe.py
index d97a5e7f4..9b4f1cb02 100644
--- a/klippy/extras/probe.py
+++ b/klippy/extras/probe.py
@@ -115,11 +115,11 @@ class PrinterProbe:
         try:
             homing_state.homing_move(pos, endstops, speed,
                                      probe_pos=True, verify_movement=verify)
-        except homing.CommandError as e:
+        except self.printer.command_error as e:
             reason = str(e)
             if "Timeout during endstop homing" in reason:
                 reason += HINT_TIMEOUT
-            raise homing.CommandError(reason)
+            raise self.printer.command_error(reason)
         pos = toolhead.get_position()
         self.gcode.respond_info("probe at %.3f,%.3f is z=%.6f"
                                 % (pos[0], pos[1], pos[2]))
@@ -162,8 +162,7 @@ class PrinterProbe:
             z_positions = [p[2] for p in positions]
             if max(z_positions) - min(z_positions) > samples_tolerance:
                 if retries >= samples_retries:
-                    raise homing.CommandError(
-                        "Probe samples exceed samples_tolerance")
+                    raise gcmd.error("Probe samples exceed samples_tolerance")
                 gcmd.respond_info("Probe samples exceed tolerance. Retrying...")
                 retries += 1
                 positions = []
@@ -295,14 +294,14 @@ class ProbeEndstopWrapper:
         start_pos = toolhead.get_position()
         self.activate_gcode.run_gcode_from_command()
         if toolhead.get_position()[:3] != start_pos[:3]:
-            raise homing.CommandError(
+            raise self.printer.command_error(
                 "Toolhead moved during probe activate_gcode script")
     def probe_finish(self):
         toolhead = self.printer.lookup_object('toolhead')
         start_pos = toolhead.get_position()
         self.deactivate_gcode.run_gcode_from_command()
         if toolhead.get_position()[:3] != start_pos[:3]:
-            raise homing.CommandError(
+            raise self.printer.command_error(
                 "Toolhead moved during probe deactivate_gcode script")
     def get_position_endstop(self):
         return self.position_endstop
diff --git a/klippy/kinematics/extruder.py b/klippy/kinematics/extruder.py
index 302c4eed4..a931c896a 100644
--- a/klippy/kinematics/extruder.py
+++ b/klippy/kinematics/extruder.py
@@ -4,7 +4,7 @@
 #
 # This file may be distributed under the terms of the GNU GPLv3 license.
 import math, logging
-import stepper, homing, chelper
+import stepper, chelper
 
 class PrinterExtruder:
     def __init__(self, config, extruder_num):
@@ -214,6 +214,8 @@ class PrinterExtruder:
 
 # Dummy extruder class used when a printer has no extruder at all
 class DummyExtruder:
+    def __init__(self, printer):
+        self.printer = printer
     def update_move_time(self, flush_time):
         pass
     def check_move(self, move):
@@ -223,7 +225,7 @@ class DummyExtruder:
     def get_name(self):
         return ""
     def get_heater(self):
-        raise homing.CommandError("Extruder not configured")
+        raise self.printer.command_error("Extruder not configured")
 
 def add_printer_objects(config):
     printer = config.get_printer()
diff --git a/klippy/stepper.py b/klippy/stepper.py
index a2e31c61a..a8ab22989 100644
--- a/klippy/stepper.py
+++ b/klippy/stepper.py
@@ -4,7 +4,7 @@
 #
 # This file may be distributed under the terms of the GNU GPLv3 license.
 import math, logging, collections
-import homing, chelper
+import chelper
 
 class error(Exception):
     pass
diff --git a/klippy/toolhead.py b/klippy/toolhead.py
index f14e81b93..f09e90160 100644
--- a/klippy/toolhead.py
+++ b/klippy/toolhead.py
@@ -250,7 +250,7 @@ class ToolHead:
         self.trapq_free_moves = ffi_lib.trapq_free_moves
         self.step_generators = []
         # Create kinematics class
-        self.extruder = kinematics.extruder.DummyExtruder()
+        self.extruder = kinematics.extruder.DummyExtruder(self.printer)
         kin_name = config.get('kinematics')
         try:
             mod = importlib.import_module('kinematics.' + kin_name)
@@ -470,7 +470,7 @@ class ToolHead:
         # Submit move
         try:
             self.move(newpos, speed)
-        except homing.CommandError as e:
+        except self.printer.command_error as e:
             self.flush_step_generation()
             raise
         # Transmit move in "drip" mode
diff --git a/klippy/webhooks.py b/klippy/webhooks.py
index dfa2a4914..1e8022e4c 100644
--- a/klippy/webhooks.py
+++ b/klippy/webhooks.py
@@ -228,7 +228,7 @@ class ClientConnection:
         try:
             func = self.webhooks.get_callback(web_request.get_method())
             func(web_request)
-        except homing.CommandError as e:
+        except self.printer.command_error as e:
             web_request.set_error(WebRequestError(e.message))
         except Exception as e:
             msg = ("Internal Error on WebRequest: %s"