Move linters into seperate module.

Give linters an abstract type to inherit, since they share an interface.
Add empty README
This commit is contained in:
Joey de l'Arago 2022-11-22 19:26:50 +01:00
parent 91daf89c2d
commit a470f02373
9 changed files with 49 additions and 25 deletions

0
printer-linter/README.md Normal file
View File

View File

@ -1,7 +1,4 @@
from .defintion import Definition
from .diagnostic import Diagnostic from .diagnostic import Diagnostic
from .factory import create from .factory import create
from .meshes import Meshes
from .profile import Profile
__all__ = ["Profile", "Definition", "Meshes", "Diagnostic", "create"] __all__ = ["Diagnostic", "create"]

View File

@ -1,9 +1,12 @@
from .profile import Profile from typing import Optional
from .defintion import Definition
from .meshes import Meshes from .linters.profile import Profile
from .linters.defintion import Definition
from .linters.diagnostic_generator import DiagnosticGenerator
from .linters.meshes import Meshes
def create(file, settings): def create(file, settings) -> Optional[DiagnosticGenerator]:
if not file.exists(): if not file.exists():
return None return None
if ".inst" in file.suffixes and ".cfg" in file.suffixes: if ".inst" in file.suffixes and ".cfg" in file.suffixes:

View File

@ -0,0 +1,6 @@
from .profile import Profile
from .meshes import Meshes
from .diagnostic_generator import DiagnosticGenerator
from .defintion import Definition
__all__ = ["Profile", "Meshes", "DiagnosticGenerator", "Definition"]

View File

@ -1,15 +1,16 @@
import json import json
import re import re
from pathlib import Path from pathlib import Path
from typing import Iterator
from .diagnostic import Diagnostic from ..diagnostic import Diagnostic
from .replacement import Replacement from .diagnostic_generator import DiagnosticGenerator
from ..replacement import Replacement
class Definition: class Definition(DiagnosticGenerator):
def __init__(self, file, settings) -> None: def __init__(self, file, settings) -> None:
self._settings = settings super().__init__(file, settings)
self._file = file
self._defs = {} self._defs = {}
self._getDefs(file) self._getDefs(file)
@ -20,7 +21,7 @@ class Definition:
self._getSetting(k, v, settings) self._getSetting(k, v, settings)
self._defs["fdmprinter"] = {"overrides": settings} self._defs["fdmprinter"] = {"overrides": settings}
def check(self) -> None: def check(self) -> Iterator[Diagnostic]:
if self._settings["checks"].get("diagnostic-definition-redundant-override", False): if self._settings["checks"].get("diagnostic-definition-redundant-override", False):
for check in self.checkRedefineOverride(): for check in self.checkRedefineOverride():
yield check yield check

View File

@ -0,0 +1,14 @@
from abc import ABC, abstractmethod
from typing import Iterator
from ..diagnostic import Diagnostic
class DiagnosticGenerator(ABC):
def __init__(self, file, settings) -> None:
self._settings = settings
self._file = file
@abstractmethod
def check(self) -> Iterator[Diagnostic]:
pass

View File

@ -1,13 +1,14 @@
from .diagnostic import Diagnostic from typing import Iterator
from ..diagnostic import Diagnostic
class Meshes: class Meshes:
def __init__(self, file, settings) -> None: def __init__(self, file, settings) -> None:
self._settings = settings super().__init__(file, settings)
self._file = file
self._max_file_size = self._settings.get("diagnostic-mesh-file-size", 1e6) self._max_file_size = self._settings.get("diagnostic-mesh-file-size", 1e6)
def check(self) -> None: def check(self) -> Iterator[Diagnostic]:
if self._settings["checks"].get("diagnostic-mesh-file-extension", False): if self._settings["checks"].get("diagnostic-mesh-file-extension", False):
for check in self.checkFileFormat(): for check in self.checkFileFormat():
yield check yield check

View File

@ -0,0 +1,9 @@
from typing import Iterator
from ..diagnostic import Diagnostic
from .diagnostic_generator import DiagnosticGenerator
class Profile(DiagnosticGenerator):
def check(self) -> Iterator[Diagnostic]:
yield

View File

@ -1,7 +0,0 @@
class Profile:
def __init__(self, file, settings) -> None:
self._settings = settings
self._file = file
def check(self) -> None:
yield