Add new linter for long profile names

CURA-11153
This commit is contained in:
Saumya Jain 2024-04-24 10:32:29 +02:00
parent 549d107ab1
commit ceb5e7096e
2 changed files with 38 additions and 1 deletions

View File

@ -5,6 +5,7 @@ checks:
diagnostic-resources-macos-app-directory-name: true diagnostic-resources-macos-app-directory-name: true
diagnostic-resource-file-deleted: true diagnostic-resource-file-deleted: true
diagnostic-material-temperature-defined: true diagnostic-material-temperature-defined: true
diagnostic-long-profile-names: true
fixes: fixes:
diagnostic-definition-redundant-override: true diagnostic-definition-redundant-override: true
format: format:

View File

@ -1,9 +1,45 @@
import re
from typing import Iterator from typing import Iterator
from ..diagnostic import Diagnostic from ..diagnostic import Diagnostic
from .linter import Linter from .linter import Linter
from pathlib import Path
from configparser import ConfigParser
class Profile(Linter): class Profile(Linter):
MAX_SIZE_OF_NAME = 20
def __init__(self, file: Path, settings: dict) -> None:
""" Finds issues in the parent directory"""
super().__init__(file, settings)
self._content = self._file.read_text()
def check(self) -> Iterator[Diagnostic]: def check(self) -> Iterator[Diagnostic]:
if self._file.exists() and self._settings["checks"].get("diagnostic-long-profile-names", False):
for check in self.checklengthofProfileName():
yield check
yield yield
def checklengthofProfileName(self) -> Iterator[Diagnostic]:
data = self._isNameSizeBIggerThanThreshhold()
""" Check if there is a dot in the directory name, MacOS has trouble signing and notarizing otherwise """
name_of_profile, found = self._getprofileName()
if len(name_of_profile) > Profile.MAX_SIZE_OF_NAME:
yield Diagnostic(
file=self._file,
diagnostic_name="diagnostic-long-profile-names",
message=f"Profile name contained is too long, please make it a bit smaller",
level="Warning",
offset = found.span(0)[0]
)
yield
def _getprofileName(self) -> dict:
config = ConfigParser()
config.read([self._file])
name_of_profile = config.get("general", "name")
redefined = re.compile(name_of_profile)
found = redefined.search(self._content)
return name_of_profile, found