diff options
author | Kevin O'Connor <kevin@koconnor.net> | 2018-05-28 10:21:51 -0400 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2018-05-28 10:43:40 -0400 |
commit | 0728c1a8be5f76d62fae79a9adcc998081049f9e (patch) | |
tree | 44d4395405e22fe55578af7341f54b85f4fc16ff | |
parent | 75f870994722cf2340d8bc39c0600ca592dadc7a (diff) | |
download | kutter-0728c1a8be5f76d62fae79a9adcc998081049f9e.tar.gz kutter-0728c1a8be5f76d62fae79a9adcc998081049f9e.tar.xz kutter-0728c1a8be5f76d62fae79a9adcc998081049f9e.zip |
msgproto: Add support for a get_constant_int() method
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
-rw-r--r-- | klippy/msgproto.py | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/klippy/msgproto.py b/klippy/msgproto.py index 66362e18..739f2cb1 100644 --- a/klippy/msgproto.py +++ b/klippy/msgproto.py @@ -327,18 +327,18 @@ class MessageParser: logging.exception("process_identify error") raise error("Error during identify: %s" % (str(e),)) class sentinel: pass - def get_constant(self, name, default=sentinel): + def get_constant(self, name, default=sentinel, parser=str): if name not in self.config: if default is not self.sentinel: return default raise error("Firmware constant '%s' not found" % (name,)) - return self.config[name] - def get_constant_float(self, name, default=sentinel): - if name not in self.config and default is not self.sentinel: - return default try: - return float(self.config[name]) - except ValueError: - raise error("Firmware constant '%s' not a float" % (name,)) - except KeyError: - raise error("Firmware constant '%s' not found" % (name,)) + value = parser(self.config[name]) + except: + raise error("Unable to parse firmware constant %s: %s" % ( + name, self.config[name])) + return value + def get_constant_float(self, name, default=sentinel): + return self.get_constant(name, default, parser=float) + def get_constant_int(self, name, default=sentinel): + return self.get_constant(name, default, parser=int) |