diff --git a/printer-linter/src/printerlinter/defintion.py b/printer-linter/src/printerlinter/defintion.py index a92828f31b..4d47900d68 100644 --- a/printer-linter/src/printerlinter/defintion.py +++ b/printer-linter/src/printerlinter/defintion.py @@ -7,7 +7,7 @@ from .replacement import Replacement class Definition: - def __init__(self, file, settings): + def __init__(self, file, settings) -> None: self._settings = settings self._file = file self._defs = {} @@ -20,7 +20,7 @@ class Definition: self._getSetting(k, v, settings) self._defs["fdmprinter"] = {"overrides": settings} - def check(self): + def check(self) -> None: if self._settings["checks"].get("diagnostic-definition-redundant-override", False): for check in self.checkRedefineOverride(): yield check @@ -32,7 +32,7 @@ class Definition: yield - def checkRedefineOverride(self): + def checkRedefineOverride(self) -> None: definition_name = list(self._defs.keys())[0] definition = self._defs[definition_name] if "overrides" in definition and definition_name != "fdmprinter": @@ -54,17 +54,18 @@ class Definition: replacement_text = "")] ) - def checkValueOutOfBounds(self): + def checkValueOutOfBounds(self) -> None: pass - def _getSetting(self, name, setting, settings): + def _getSetting(self, name, setting, settings) -> None: if "children" in setting: for childname, child in setting["children"].items(): self._getSetting(childname, child, settings) settings |= {name: setting} - def _getDefs(self, file): - if not file.exists(): + def _getDefs(self, file) -> None: + """ Loads up file, and it's parent definitions into self._defs """ + if not file.exists() or Path(file.stem).stem in self._defs: return self._defs[Path(file.stem).stem] = json.loads(file.read_text()) if "inherits" in self._defs[Path(file.stem).stem]: diff --git a/printer-linter/src/printerlinter/diagnostic.py b/printer-linter/src/printerlinter/diagnostic.py index 7941929c43..a6843ed38f 100644 --- a/printer-linter/src/printerlinter/diagnostic.py +++ b/printer-linter/src/printerlinter/diagnostic.py @@ -1,5 +1,5 @@ class Diagnostic: - def __init__(self, file, diagnostic_name, message, level, offset, replacements=None): + def __init__(self, file, diagnostic_name, message, level, offset, replacements=None) -> None: self.file = file self.diagnostic_name = diagnostic_name self.message = message @@ -7,7 +7,7 @@ class Diagnostic: self.level = level self.replacements = replacements - def toDict(self): + def toDict(self) -> dict: diagnostic_dict = {"DiagnosticName": self.diagnostic_name, "DiagnosticMessage": { "Message": self.message, diff --git a/printer-linter/src/printerlinter/meshes.py b/printer-linter/src/printerlinter/meshes.py index 404f194100..47205ce219 100644 --- a/printer-linter/src/printerlinter/meshes.py +++ b/printer-linter/src/printerlinter/meshes.py @@ -2,12 +2,12 @@ from .diagnostic import Diagnostic class Meshes: - def __init__(self, file, settings): + def __init__(self, file, settings) -> None: self._settings = settings self._file = file self._max_file_size = self._settings.get("diagnostic-mesh-file-size", 1e6) - def check(self): + def check(self) -> None: if self._settings["checks"].get("diagnostic-mesh-file-extension", False): for check in self.checkFileFormat(): yield check @@ -18,7 +18,7 @@ class Meshes: yield - def checkFileFormat(self): + def checkFileFormat(self) -> None: if self._file.suffix.lower() not in (".3mf", ".obj", ".stl"): yield Diagnostic( file = self._file, diff --git a/printer-linter/src/printerlinter/profile.py b/printer-linter/src/printerlinter/profile.py index 137344fe71..c5386ab0e8 100644 --- a/printer-linter/src/printerlinter/profile.py +++ b/printer-linter/src/printerlinter/profile.py @@ -1,7 +1,7 @@ class Profile: - def __init__(self, file, settings): + def __init__(self, file, settings) -> None: self._settings = settings self._file = file - def check(self): + def check(self) -> None: yield diff --git a/printer-linter/src/printerlinter/replacement.py b/printer-linter/src/printerlinter/replacement.py index d609071875..bc6b58a97b 100644 --- a/printer-linter/src/printerlinter/replacement.py +++ b/printer-linter/src/printerlinter/replacement.py @@ -5,7 +5,7 @@ class Replacement: self.length = length self.replacement_text = replacement_text - def toDict(self): + def toDict(self) -> dict: return {"FilePath": self.file.as_posix(), "Offset": self.offset, "Length": self.length, diff --git a/printer-linter/src/terminal.py b/printer-linter/src/terminal.py index 4a31340445..f388dda4c5 100644 --- a/printer-linter/src/terminal.py +++ b/printer-linter/src/terminal.py @@ -11,7 +11,7 @@ import yaml from printerlinter import factory -def examineFile(file, settings, full_body_check): +def examineFile(file, settings, full_body_check) -> None: patient = factory.create(file, settings) if patient is None: return @@ -21,7 +21,7 @@ def examineFile(file, settings, full_body_check): full_body_check["Diagnostics"].append(diagnostic.toDict()) -def fixFile(file, settings, full_body_check): +def fixFile(file, settings, full_body_check) -> None: if not file.exists(): return ext = ".".join(file.name.split(".")[-2:]) @@ -34,7 +34,7 @@ def fixFile(file, settings, full_body_check): pass -def formatFile(file: Path, settings): +def formatFile(file: Path, settings) -> None: if not file.exists(): return ext = ".".join(file.name.split(".")[-2:]) @@ -70,7 +70,7 @@ def formatFile(file: Path, settings): config.write(f, space_around_delimiters=settings["format"].get("format-profile-space-around-delimiters", True)) -def main(): +def main() -> None: parser = ArgumentParser( description="UltiMaker Cura printer linting, static analysis and formatting of Cura printer definitions and other resources") parser.add_argument("--setting", required=False, type=Path, help="Path to the `.printer-linter` setting file")