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-resource-file-deleted: true
diagnostic-material-temperature-defined: true
diagnostic-long-profile-names: true
fixes:
diagnostic-definition-redundant-override: true
format:

View File

@ -1,9 +1,45 @@
import re
from typing import Iterator
from ..diagnostic import Diagnostic
from .linter import Linter
from pathlib import Path
from configparser import ConfigParser
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]:
if self._file.exists() and self._settings["checks"].get("diagnostic-long-profile-names", False):
for check in self.checklengthofProfileName():
yield check
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