From 6109b4b9da593d0dd114b3bb1ce81bd42cd04392 Mon Sep 17 00:00:00 2001 From: Jelle Spijker Date: Tue, 13 Dec 2022 14:36:14 +0100 Subject: [PATCH] distinguish between (default_)value and other properties --- .../src/printerlinter/linters/defintion.py | 23 +++++++++++-------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/printer-linter/src/printerlinter/linters/defintion.py b/printer-linter/src/printerlinter/linters/defintion.py index d684cd98e9..e27d8a7679 100644 --- a/printer-linter/src/printerlinter/linters/defintion.py +++ b/printer-linter/src/printerlinter/linters/defintion.py @@ -41,7 +41,7 @@ class Definition(Linter): definition = self._definitions[definition_name] if "overrides" in definition and definition_name not in ("fdmprinter", "fdmextruder"): for key, value_dict in definition["overrides"].items(): - is_redefined, value, parent = self._isDefinedInParent(key, value_dict, definition['inherits']) + is_redefined, child_key, child_value, parent = self._isDefinedInParent(key, value_dict, definition['inherits']) if is_redefined: redefined = re.compile(r'.*(\"' + key + r'\"[\s\:\S]*?)\{[\s\S]*?\},?') found = redefined.search(self._content) @@ -59,7 +59,7 @@ class Definition(Linter): yield Diagnostic( file = self._file, diagnostic_name = "diagnostic-definition-redundant-override", - message = f"Overriding {key} with the same value ({value}) as defined in parent definition: {definition['inherits']}", + message = f"Overriding {key} with the same value ({child_key}: {child_value}) as defined in parent definition: {definition['inherits']}", level = "Warning", offset = found.span(0)[0], replacements = replacements @@ -92,28 +92,31 @@ class Definition(Linter): is_number = False else: is_number = self._definitions[self.base_def]["overrides"][key]["type"] in ("float", "int") - for value in value_dict.values(): + for child_key, child_value in value_dict.items(): if key in parent: - check_values = [cv for cv in [parent[key].get("default_value", None), parent[key].get("value", None)] if cv is not None] + if child_key in ("default_value", "value"): + check_values = [cv for cv in [parent[key].get("default_value", None), parent[key].get("value", None)] if cv is not None] + else: + check_values = [parent[key].get(child_key, None)] for check_value in check_values: - if is_number: + if is_number and child_key in ("default_value", "value"): try: - v = str(float(value)) + v = str(float(child_value)) except: - v = value + v = child_value try: cv = str(float(check_value)) except: cv = check_value else: - v = value + v = child_value cv = check_value if v == cv: - return True, value, parent + return True, child_key, child_value, parent if "inherits" in parent: return self._isDefinedInParent(key, value_dict, parent["inherits"]) - return False, None, None + return False, None, None, None def _loadBasePrinterSettings(self): """ TODO @Jelle please explain why this """