From d065787afcc312fd5bee709a9b8cb15647f0ab08 Mon Sep 17 00:00:00 2001 From: Kevin O'Connor Date: Tue, 4 Jun 2019 12:41:28 -0400 Subject: [PATCH] gcode_macro: Add support "x in printer" to templates Signed-off-by: Kevin O'Connor --- klippy/extras/gcode_macro.py | 6 ++++++ test/klippy/macros.cfg | 7 +++++++ 2 files changed, 13 insertions(+) diff --git a/klippy/extras/gcode_macro.py b/klippy/extras/gcode_macro.py index a29e1248..0ad695b6 100644 --- a/klippy/extras/gcode_macro.py +++ b/klippy/extras/gcode_macro.py @@ -28,6 +28,12 @@ class GetStatusWrapper: self.eventtime = self.printer.get_reactor().monotonic() self.cache[sval] = res = dict(po.get_status(self.eventtime)) return res + def __contains__(self, val): + try: + self.__getitem__(val) + except KeyError as e: + return False + return True # Wrapper around a Jinja2 template class TemplateWrapper: diff --git a/test/klippy/macros.cfg b/test/klippy/macros.cfg index d766c9d6..4886425f 100644 --- a/test/klippy/macros.cfg +++ b/test/klippy/macros.cfg @@ -106,6 +106,12 @@ gcode: M112 {% endif %} +[gcode_macro TEST_in] +gcode: + {% if "abc" in printer or "gcode" not in printer %} + M112 + {% endif %} + # Main test start point [gcode_macro TESTIT] gcode: @@ -113,3 +119,4 @@ gcode: TEST_expression TEST_variable TEST_param T=123 + TEST_in