aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2024-06-17 13:49:05 -0400
committerKevin O'Connor <kevin@koconnor.net>2024-06-17 13:49:05 -0400
commit11f04ba1bae774d32fd43bed4a0772c58d8df199 (patch)
tree7eec3a3fca5012f33602a9f0e434cd85ad1cb96b
parent863a463cb2d07fce2ae09e2b0f925bdf201051dc (diff)
downloadkutter-11f04ba1bae774d32fd43bed4a0772c58d8df199.tar.gz
kutter-11f04ba1bae774d32fd43bed4a0772c58d8df199.tar.xz
kutter-11f04ba1bae774d32fd43bed4a0772c58d8df199.zip
configfile: Allow getchoice() to take a list
If a list is passed to getchoice(), seamlessly convert it to a dict. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
-rw-r--r--klippy/configfile.py2
-rw-r--r--klippy/extras/bltouch.py2
-rw-r--r--klippy/extras/display/hd44780.py2
-rw-r--r--klippy/extras/display/hd44780_spi.py2
-rw-r--r--klippy/extras/display/menu_keys.py2
-rw-r--r--klippy/extras/probe.py2
-rw-r--r--klippy/extras/replicape.py2
-rw-r--r--klippy/kinematics/cartesian.py2
-rw-r--r--klippy/kinematics/hybrid_corexy.py2
-rw-r--r--klippy/kinematics/hybrid_corexz.py2
-rw-r--r--klippy/mcu.py3
11 files changed, 12 insertions, 11 deletions
diff --git a/klippy/configfile.py b/klippy/configfile.py
index 91b555cd..a8a4a4ff 100644
--- a/klippy/configfile.py
+++ b/klippy/configfile.py
@@ -69,6 +69,8 @@ class ConfigWrapper:
return self._get_wrapper(self.fileconfig.getboolean, option, default,
note_valid=note_valid)
def getchoice(self, option, choices, default=sentinel, note_valid=True):
+ if type(choices) == type([]):
+ choices = {i: i for i in choices}
if choices and type(list(choices.keys())[0]) == int:
c = self.getint(option, default, note_valid=note_valid)
else:
diff --git a/klippy/extras/bltouch.py b/klippy/extras/bltouch.py
index 58f66819..ae461f4b 100644
--- a/klippy/extras/bltouch.py
+++ b/klippy/extras/bltouch.py
@@ -42,7 +42,7 @@ class BLTouchProbe:
# Create an "endstop" object to handle the sensor pin
self.mcu_endstop = ppins.setup_pin('endstop', config.get('sensor_pin'))
# output mode
- omodes = {'5V': '5V', 'OD': 'OD', None: None}
+ omodes = ['5V', 'OD', None]
self.output_mode = config.getchoice('set_output_mode', omodes, None)
# Setup for sensor test
self.next_test_time = 0.
diff --git a/klippy/extras/display/hd44780.py b/klippy/extras/display/hd44780.py
index 9adfa20f..2da49c51 100644
--- a/klippy/extras/display/hd44780.py
+++ b/klippy/extras/display/hd44780.py
@@ -8,7 +8,7 @@ import logging
BACKGROUND_PRIORITY_CLOCK = 0x7fffffff00000000
LINE_LENGTH_DEFAULT=20
-LINE_LENGTH_OPTIONS={16:16, 20:20}
+LINE_LENGTH_OPTIONS=[16, 20]
TextGlyphs = { 'right_arrow': b'\x7e' }
diff --git a/klippy/extras/display/hd44780_spi.py b/klippy/extras/display/hd44780_spi.py
index cd1d9e3e..f21accbb 100644
--- a/klippy/extras/display/hd44780_spi.py
+++ b/klippy/extras/display/hd44780_spi.py
@@ -9,7 +9,7 @@ import logging
from .. import bus
LINE_LENGTH_DEFAULT=20
-LINE_LENGTH_OPTIONS={16:16, 20:20}
+LINE_LENGTH_OPTIONS=[16, 20]
TextGlyphs = { 'right_arrow': b'\x7e' }
diff --git a/klippy/extras/display/menu_keys.py b/klippy/extras/display/menu_keys.py
index 91a96e19..8094c996 100644
--- a/klippy/extras/display/menu_keys.py
+++ b/klippy/extras/display/menu_keys.py
@@ -18,7 +18,7 @@ class MenuKeys:
# Register rotary encoder
encoder_pins = config.get('encoder_pins', None)
encoder_steps_per_detent = config.getchoice('encoder_steps_per_detent',
- {2: 2, 4: 4}, 4)
+ [2, 4], 4)
if encoder_pins is not None:
try:
pin1, pin2 = encoder_pins.split(',')
diff --git a/klippy/extras/probe.py b/klippy/extras/probe.py
index 88aed25f..c467e181 100644
--- a/klippy/extras/probe.py
+++ b/klippy/extras/probe.py
@@ -252,7 +252,7 @@ class ProbeSessionHelper:
self.sample_count = config.getint('samples', 1, minval=1)
self.sample_retract_dist = config.getfloat('sample_retract_dist', 2.,
above=0.)
- atypes = {'median': 'median', 'average': 'average'}
+ atypes = ['median', 'average']
self.samples_result = config.getchoice('samples_result', atypes,
'average')
self.samples_tolerance = config.getfloat('samples_tolerance', 0.100,
diff --git a/klippy/extras/replicape.py b/klippy/extras/replicape.py
index ab501caf..f7f7bb64 100644
--- a/klippy/extras/replicape.py
+++ b/klippy/extras/replicape.py
@@ -160,7 +160,7 @@ class Replicape:
printer = config.get_printer()
ppins = printer.lookup_object('pins')
ppins.register_chip('replicape', self)
- revisions = {'B3': 'B3'}
+ revisions = ['B3']
config.getchoice('revision', revisions)
self.host_mcu = mcu.get_printer_mcu(printer, config.get('host_mcu'))
# Setup enable pin
diff --git a/klippy/kinematics/cartesian.py b/klippy/kinematics/cartesian.py
index 9774672e..0c4bb925 100644
--- a/klippy/kinematics/cartesian.py
+++ b/klippy/kinematics/cartesian.py
@@ -23,7 +23,7 @@ class CartKinematics:
self.dc_module = None
if config.has_section('dual_carriage'):
dc_config = config.getsection('dual_carriage')
- dc_axis = dc_config.getchoice('axis', {'x': 'x', 'y': 'y'})
+ dc_axis = dc_config.getchoice('axis', ['x', 'y'])
self.dual_carriage_axis = {'x': 0, 'y': 1}[dc_axis]
# setup second dual carriage rail
self.rails.append(stepper.LookupMultiRail(dc_config))
diff --git a/klippy/kinematics/hybrid_corexy.py b/klippy/kinematics/hybrid_corexy.py
index e852826a..265a0e6d 100644
--- a/klippy/kinematics/hybrid_corexy.py
+++ b/klippy/kinematics/hybrid_corexy.py
@@ -27,7 +27,7 @@ class HybridCoreXYKinematics:
if config.has_section('dual_carriage'):
dc_config = config.getsection('dual_carriage')
# dummy for cartesian config users
- dc_config.getchoice('axis', {'x': 'x'}, default='x')
+ dc_config.getchoice('axis', ['x'], default='x')
# setup second dual carriage rail
self.rails.append(stepper.PrinterRail(dc_config))
self.rails[1].get_endstops()[0][0].add_stepper(
diff --git a/klippy/kinematics/hybrid_corexz.py b/klippy/kinematics/hybrid_corexz.py
index 58e6b0d3..2d89e3f7 100644
--- a/klippy/kinematics/hybrid_corexz.py
+++ b/klippy/kinematics/hybrid_corexz.py
@@ -27,7 +27,7 @@ class HybridCoreXZKinematics:
if config.has_section('dual_carriage'):
dc_config = config.getsection('dual_carriage')
# dummy for cartesian config users
- dc_config.getchoice('axis', {'x': 'x'}, default='x')
+ dc_config.getchoice('axis', ['x'], default='x')
# setup second dual carriage rail
self.rails.append(stepper.PrinterRail(dc_config))
self.rails[2].get_endstops()[0][0].add_stepper(
diff --git a/klippy/mcu.py b/klippy/mcu.py
index 6b106245..23ba0717 100644
--- a/klippy/mcu.py
+++ b/klippy/mcu.py
@@ -574,9 +574,8 @@ class MCU:
restart_methods = [None, 'arduino', 'cheetah', 'command', 'rpi_usb']
self._restart_method = 'command'
if self._baud:
- rmethods = {m: m for m in restart_methods}
self._restart_method = config.getchoice('restart_method',
- rmethods, None)
+ restart_methods, None)
self._reset_cmd = self._config_reset_cmd = None
self._is_mcu_bridge = False
self._emergency_stop_cmd = None