Skip to content

Commit

Permalink
Add pre-commit config and test
Browse files Browse the repository at this point in the history
  • Loading branch information
Rotzbua committed Nov 3, 2023
1 parent 2ab7fc9 commit 12c52b8
Show file tree
Hide file tree
Showing 7 changed files with 141 additions and 42 deletions.
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
*.py text eol=lf
*.sh text eol=lf
16 changes: 16 additions & 0 deletions .github/workflows/precommit.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
on:
pull_request:

jobs:
main:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: [ "3.8", "3.12" ] # Lowest and highest.
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
cache: "pip" # caching pip dependencies
- uses: pre-commit/[email protected]
38 changes: 0 additions & 38 deletions .github/workflows/typing.yml

This file was deleted.

101 changes: 101 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
# See https://pre-commit.com for more information
# See https://pre-commit.com/hooks.html for more hooks
ci:
autofix_prs: true
autoupdate_schedule: quarterly
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
- id: check-executables-have-shebangs
- id: check-shebang-scripts-are-executable

- repo: https://github.com/pre-commit/pygrep-hooks
rev: v1.10.0 # Use the ref you want to point at
hooks:
- id: python-use-type-annotations
- id: python-no-eval
- id: rst-backticks
- id: rst-directive-colons
- id: rst-inline-touching-normal

- repo: https://github.com/asottile/pyupgrade
rev: v3.15.0
hooks:
- 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:
- id: rstcheck
args: [ "--report-level=warning", "--ignore-directives=autoclass,automethod,automodule" ]
additional_dependencies: [ sphinx ]

- repo: https://github.com/shellcheck-py/shellcheck-py
rev: v0.9.0.6
hooks:
- id: shellcheck

- repo: https://github.com/codespell-project/codespell
rev: v2.2.6
hooks:
- id: codespell
exclude: ^(boxes|locale|po|static)/ # todo folder boxes
13 changes: 13 additions & 0 deletions CONTRIBUTING.rst
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,19 @@ If you want feed back on you code feel free to open a PR. State that
this is work in progress in the PR message. It's OK if it does not
follow the guidelines (yet).

Check Code
..........

The `pre-commit <https://pre-commit.com/>`_ tool is used to verify the code style.
When installed, it automatically checks and corrects the code before each commit.

* Install *pre-commit*, e.g. :code:`pip install pre-commit`
* Install githook :code:`pre-commit install`

For manual check use :code:`pre-commit run --all-files`.

To remove githook use :code:`pre-commit uninstall`.

Writing new Generators
......................

Expand Down
4 changes: 4 additions & 0 deletions requirements_dev.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
inkex
mypy
pre-commit
types-Markdown
10 changes: 6 additions & 4 deletions scripts/boxes_proxy.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,16 +12,18 @@
License: GNU GPL v3
"""
import inkex
import sys
import os
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:
Expand Down

0 comments on commit 12c52b8

Please sign in to comment.