From ab86a85c77553b1e350bb58e130b303252911560 Mon Sep 17 00:00:00 2001 From: jspijker Date: Tue, 10 Jan 2023 11:02:08 +0100 Subject: [PATCH] Ignore redundant-override in the machine_* types --- .printer-linter | 4 +++- printer-linter/src/printerlinter/linters/defintion.py | 11 ++++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/.printer-linter b/.printer-linter index f9f105e1f7..2ead01ffb1 100644 --- a/.printer-linter +++ b/.printer-linter @@ -12,4 +12,6 @@ format: format-definition-single-value-single-line: true # Format dicts and lists with a single item on one line "dict": { "value": 10 } format-profile-space-around-delimiters: true format-profile-sort-keys: true -diagnostic-mesh-file-size: 1200000 \ No newline at end of file +diagnostic-mesh-file-size: 1200000 +diagnostic-definition-redundant-override-ignore: + - machine_.* diff --git a/printer-linter/src/printerlinter/linters/defintion.py b/printer-linter/src/printerlinter/linters/defintion.py index e27d8a7679..c4e955a2a5 100644 --- a/printer-linter/src/printerlinter/linters/defintion.py +++ b/printer-linter/src/printerlinter/linters/defintion.py @@ -84,6 +84,8 @@ class Definition(Linter): self._loadDefinitionFiles(parent_file) def _isDefinedInParent(self, key, value_dict, inherits_from): + if self._ignore(key, "diagnostic-definition-redundant-override"): + return False, None, None, None if "overrides" not in self._definitions[inherits_from]: return self._isDefinedInParent(key, value_dict, self._definitions[inherits_from]["inherits"]) @@ -119,7 +121,6 @@ class Definition(Linter): return False, None, None, None def _loadBasePrinterSettings(self): - """ TODO @Jelle please explain why this """ settings = {} for k, v in self._definitions[self.base_def]["settings"].items(): self._getSetting(k, v, settings) @@ -130,3 +131,11 @@ class Definition(Linter): for childname, child in setting["children"].items(): self._getSetting(childname, child, settings) settings |= {name: setting} + + def _ignore(self, key: dict, type_of_check: str) -> bool: + if f"{type_of_check}-ignore" in self._settings: + filters = [re.compile(f) for f in self._settings[f"{type_of_check}-ignore"]] + for f in filters: + if f.match(key): + return True + return False