From d01f8bf8e446ffb3df8d19887fded95258ffeef2 Mon Sep 17 00:00:00 2001 From: Rotzbua Date: Fri, 3 Nov 2023 13:22:57 +0100 Subject: [PATCH] Add pre-commit config and test --- .github/workflows/typing.yml | 38 -------------------------- .pre-commit-config.yaml | 52 ++++++++++++++++++++++++++++++++++++ scripts/boxes_proxy.py | 11 +++++--- 3 files changed, 59 insertions(+), 42 deletions(-) delete mode 100644 .github/workflows/typing.yml diff --git a/.github/workflows/typing.yml b/.github/workflows/typing.yml deleted file mode 100644 index 6d5b0cbbf..000000000 --- a/.github/workflows/typing.yml +++ /dev/null @@ -1,38 +0,0 @@ -name: Static typing hint test - -on: - push: - pull_request: - workflow_dispatch: # Allows you to run this workflow manually from the Actions tab - -jobs: - # Build job - typing: - runs-on: ubuntu-latest - strategy: - matrix: - python-version: [ '3.8', '3.9', '3.10', '3.11', '3.12' ] - - steps: - - uses: actions/checkout@v4 - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v5 - with: - python-version: ${{ matrix.python-version }} - cache: "pip" # caching pip dependencies - - - name: Install dependencies - run: | - pip install -r requirements.txt - pip install mypy - pip install types-Markdown - - - name: Run typing test - run: | - mypy --ignore-missing-imports ./boxes/ - mypy --ignore-missing-imports ./scripts/boxes - mypy --ignore-missing-imports ./scripts/boxes2inkscape - mypy --ignore-missing-imports ./scripts/boxes2pot - mypy --ignore-missing-imports ./scripts/boxesserver - mypy --ignore-missing-imports ./documentation/src/boxes2rst.py - mypy --ignore-missing-imports ./setup.py diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 65164559e..905984aa5 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -7,8 +7,11 @@ repos: - repo: https://github.com/pre-commit/pre-commit-hooks rev: v4.5.0 hooks: + - id: trailing-whitespace + - id: end-of-file-fixer - id: check-yaml - id: check-toml + - id: check-added-large-files - id: requirements-txt-fixer - id: check-case-conflict - id: detect-private-key @@ -30,6 +33,55 @@ repos: - id: pyupgrade args: [ --py38-plus ] + - repo: https://github.com/PyCQA/autoflake + rev: v2.2.1 + hooks: + - id: autoflake + args: [ --remove-all-unused-imports, --in-place, --ignore-pass-statements, ] + + - repo: https://github.com/pycqa/isort + rev: 5.12.0 + hooks: + - id: isort + + # A lot todo to pass test. + #- repo: https://github.com/PyCQA/flake8 + # rev: 6.1.0 + # hooks: + # - id: flake8 + # additional_dependencies: [ flake8-bugbear ] + # args: [ '--extend-ignore=E402,E501,E201,E202,E203,E221,E225,E231,E261,E266,E302,E305' ] + # # additional_dependencies: [ flake8-bugbear, flake8-docstrings ] + + - repo: https://github.com/pre-commit/mirrors-mypy + rev: v1.6.1 + hooks: + - id: mypy + args: [ '--ignore-missing-imports' ] + files: '^boxes/.*\.py$' + - id: mypy + args: [ '--ignore-missing-imports' ] + files: '^documentation/src/boxes2rst.py$' + - id: mypy + args: [ '--ignore-missing-imports' ] + files: '^scripts/boxes$' + - id: mypy + args: [ '--ignore-missing-imports' ] + files: '^scripts/boxes2inkscape$' + - id: mypy + args: [ '--ignore-missing-imports' ] + files: '^scripts/boxes2pot$' + - id: mypy + args: [ '--ignore-missing-imports' ] + files: '^scripts/boxes_proxy.py$' + - id: mypy + args: [ '--ignore-missing-imports' ] + additional_dependencies: [ 'types-Markdown' ] + files: '^scripts/boxesserver$' + - id: mypy + args: [ '--ignore-missing-imports' ] + files: '^setup.py$' + - repo: https://github.com/rstcheck/rstcheck rev: v6.2.0 hooks: diff --git a/scripts/boxes_proxy.py b/scripts/boxes_proxy.py index 80628c4e8..9ebef73c1 100755 --- a/scripts/boxes_proxy.py +++ b/scripts/boxes_proxy.py @@ -12,16 +12,19 @@ License: GNU GPL v3 """ -import inkex -import sys import os import subprocess -from lxml import etree +import sys +import tempfile from shlex import quote +from inkex.extensions import GenerateExtension +from lxml import etree + +import inkex -class boxesPyWrapper(inkex.GenerateExtension): +class boxesPyWrapper(GenerateExtension): def add_arguments(self, pars): args = sys.argv[1:] for arg in args: