diff --git a/printer-linter/pyproject.toml b/printer-linter/pyproject.toml new file mode 100644 index 0000000000..bf04261c7d --- /dev/null +++ b/printer-linter/pyproject.toml @@ -0,0 +1,17 @@ +[project] +name = "printerlinter" +description = "Cura UltiMaker printer linting tool" +version = "0.1.0" +authors = [ + { name = "UltiMaker", email = "cura@ultimaker.com" } +] +dependencies = [ + "pyyaml" +] + +[project.scripts] +printer-linter = "printerlinter.terminal:main" + +[build-system] +requires = ["setuptools"] +build-backend = "setuptools.build_meta" \ No newline at end of file diff --git a/printer-linter/setup.cfg b/printer-linter/setup.cfg new file mode 100644 index 0000000000..68b0484162 --- /dev/null +++ b/printer-linter/setup.cfg @@ -0,0 +1,10 @@ +[metadata] +name = printerlinter + +[options] +package_dir= + =src +packages=find: + +[options.packages.find] +where=src \ No newline at end of file diff --git a/printer-linter/setup.py b/printer-linter/setup.py new file mode 100644 index 0000000000..25536050b2 --- /dev/null +++ b/printer-linter/setup.py @@ -0,0 +1,6 @@ +#!/usr/bin/env python + +from setuptools import setup + +if __name__ == "__main__": + setup() diff --git a/printer-linter/tidy/__init__.py b/printer-linter/src/printerlinter/__init__.py similarity index 100% rename from printer-linter/tidy/__init__.py rename to printer-linter/src/printerlinter/__init__.py diff --git a/printer-linter/tidy/defintion.py b/printer-linter/src/printerlinter/defintion.py similarity index 100% rename from printer-linter/tidy/defintion.py rename to printer-linter/src/printerlinter/defintion.py diff --git a/printer-linter/tidy/diagnostic.py b/printer-linter/src/printerlinter/diagnostic.py similarity index 100% rename from printer-linter/tidy/diagnostic.py rename to printer-linter/src/printerlinter/diagnostic.py diff --git a/printer-linter/tidy/meshes.py b/printer-linter/src/printerlinter/meshes.py similarity index 100% rename from printer-linter/tidy/meshes.py rename to printer-linter/src/printerlinter/meshes.py diff --git a/printer-linter/tidy/profile.py b/printer-linter/src/printerlinter/profile.py similarity index 100% rename from printer-linter/tidy/profile.py rename to printer-linter/src/printerlinter/profile.py diff --git a/printer-linter/printer-linter.py b/printer-linter/src/printerlinter/terminal.py similarity index 95% rename from printer-linter/printer-linter.py rename to printer-linter/src/printerlinter/terminal.py index ba1387c5de..565818ca4e 100644 --- a/printer-linter/printer-linter.py +++ b/printer-linter/src/printerlinter/terminal.py @@ -8,7 +8,7 @@ from pathlib import Path import yaml -from tidy import create +from . import create def examineFile(file, settings): @@ -72,7 +72,24 @@ def formatFile(file: Path, settings): config.write(f, space_around_delimiters=settings["format"].get("format-profile-space-around-delimiters", True)) -def main(files, setting_path, to_format, to_fix, to_diagnose, report): +def main(): + 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") + parser.add_argument("--report", required=False, type=Path, help="Path where the diagnostic report should be stored") + parser.add_argument("--format", action="store_true", help="Format the files") + parser.add_argument("--diagnose", action="store_true", help="Diagnose the files") + parser.add_argument("--fix", action="store_true", help="Attempt to apply the suggested fixes on the files") + parser.add_argument("Files", metavar="F", type=Path, nargs="+", help="Files or directories to format") + + args = parser.parse_args() + files = args.Files + setting_path = args.setting + to_format = args.format + to_fix = args.fix + to_diagnose = args.diagnose + report = args.report + if not setting_path: setting_path = Path(getcwd(), ".printer-linter") @@ -118,14 +135,4 @@ def main(files, setting_path, to_format, to_fix, to_diagnose, report): if __name__ == "__main__": - 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") - parser.add_argument("--report", required=False, type=Path, help="Path where the diagnostic report should be stored") - parser.add_argument("--format", action="store_true", help="Format the files") - parser.add_argument("--diagnose", action="store_true", help="Diagnose the files") - parser.add_argument("--fix", action="store_true", help="Attempt to apply the suggested fixes on the files") - parser.add_argument("Files", metavar="F", type=Path, nargs="+", help="Files or directories to format") - - args = parser.parse_args() - main(args.Files, args.setting, args.format, args.fix, args.diagnose, args.report) + main()