diff --git a/.pre-commit-config-ci.yml b/.pre-commit-config-ci.yml new file mode 100644 index 0000000..1401d0d --- /dev/null +++ b/.pre-commit-config-ci.yml @@ -0,0 +1,101 @@ +repos: + - repo: https://github.com/pre-commit/pre-commit-hooks + rev: v4.4.0 + hooks: + - id: check-toml + - id: check-yaml + files: \.yaml$ + - id: trailing-whitespace + exclude: (migrations/|tests/|docs/|static/|media/).* + - id: end-of-file-fixer + exclude: (migrations/|tests/|docs/|static/|media/).* + - id: check-added-large-files + exclude: (migrations/|tests/|docs/|static/|media/).* + - id: check-case-conflict + exclude: (migrations/|tests/|docs/|static/|media/).* + - id: check-merge-conflict + exclude: (migrations/|tests/|docs/|static/|media/).* + - id: check-docstring-first + exclude: (migrations/|tests/|docs/|static/|media/).* + + - repo: https://github.com/tox-dev/pyproject-fmt + rev: 2.2.1 + hooks: + - id: pyproject-fmt + + - repo: https://github.com/tox-dev/tox-ini-fmt + rev: 1.3.1 + hooks: + - id: tox-ini-fmt + + - repo: https://github.com/asottile/pyupgrade + rev: v3.15.2 + hooks: + - id: pyupgrade + + - repo: https://github.com/charliermarsh/ruff-pre-commit + rev: v0.5.5 + hooks: + - id: ruff + args: ["--config=pyproject.toml"] + exclude: (migrations/|tests/|docs/|static/|media/|apps.py).* + + - repo: https://github.com/pre-commit/mirrors-isort + rev: v5.10.1 + hooks: + - id: isort + exclude: (migrations/|tests/|docs/|static/|media/).* + + - repo: https://github.com/psf/black + rev: 23.3.0 + hooks: + - id: black + args: [ "--config=pyproject.toml" ] + exclude: (migrations/|tests/|docs/|static/|media/).* + + - repo: https://github.com/commitizen-tools/commitizen + rev: v3.28.0 + hooks: + - id: commitizen + + - repo: https://github.com/PyCQA/bandit + rev: 1.7.4 + hooks: + - id: bandit + args: [ "-c", "pyproject.toml", "-r", "." ] + additional_dependencies: [ "bandit[toml]" ] + exclude: (migrations/|tests/|docs/|static/|media/).* + + - repo: https://github.com/PyCQA/docformatter + rev: v1.7.5 + hooks: + - id: docformatter + args: [ "--in-place", "--recursive", "--blank" ] + exclude: (migrations/|tests/|docs/|static/|media/).* + + - repo: https://github.com/adamchainz/blacken-docs + rev: 1.18.0 + hooks: + - id: blacken-docs + additional_dependencies: + - black==24.4.2 + files: '\.rst$' + + - repo: https://github.com/rstcheck/rstcheck + rev: "v6.2.4" + hooks: + - id: rstcheck + args: [ "--report-level=warning" ] + files: ^(docs/(.*/)*.*\.rst) + additional_dependencies: [ Sphinx==6.2.1 ] + + - repo: local + hooks: + - id: pytest + name: Pytest + entry: poetry run pytest -v + language: system + types: [ python ] + stages: [ commit ] + pass_filenames: false + always_run: true \ No newline at end of file diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index bb4606f..a18d090 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -2,6 +2,9 @@ repos: - repo: https://github.com/pre-commit/pre-commit-hooks rev: v4.3.0 hooks: + - id: check-toml + - id: check-yaml + files: \.yaml$ - id: trailing-whitespace exclude: (migrations/|tests/|docs/|static/|media/).* - id: end-of-file-fixer @@ -15,6 +18,27 @@ repos: - id: check-docstring-first exclude: (migrations/|tests/|docs/|static/|media/).* + - repo: https://github.com/tox-dev/pyproject-fmt + rev: 2.2.1 + hooks: + - id: pyproject-fmt + + - repo: https://github.com/tox-dev/tox-ini-fmt + rev: 1.3.1 + hooks: + - id: tox-ini-fmt + + - repo: https://github.com/asottile/pyupgrade + rev: v3.17.0 + hooks: + - id: pyupgrade + + - repo: https://github.com/charliermarsh/ruff-pre-commit + rev: v0.5.5 + hooks: + - id: ruff + args: ["--config=pyproject.toml"] + exclude: (migrations/|tests/|docs/|static/|media/|apps.py).* - repo: https://github.com/pre-commit/mirrors-isort rev: v5.10.1 @@ -26,4 +50,67 @@ repos: rev: 23.3.0 hooks: - id: black - exclude: (migrations/|tests/|docs/|static/|media/).* \ No newline at end of file + args: ["--config=pyproject.toml"] + exclude: (migrations/|tests/|docs/|static/|media/).* + + - repo: https://github.com/commitizen-tools/commitizen + rev: v3.28.0 + hooks: + - id: commitizen + + - repo: https://github.com/PyCQA/bandit + rev: 1.7.4 + hooks: + - id: bandit + args: ["-c", "pyproject.toml", "-r", "."] + additional_dependencies: [ "bandit[toml]" ] + exclude: (migrations/|tests/|docs/|static/|media/).* + + - repo: https://github.com/PyCQA/docformatter + rev: v1.7.5 + hooks: + - id: docformatter + args: ["--in-place", "--recursive", "--blank"] + exclude: (migrations/|tests/|docs/|static/|media/).* + + - repo: https://github.com/adamchainz/blacken-docs + rev: 1.18.0 + hooks: + - id: blacken-docs + additional_dependencies: + - black==24.4.2 + files: '\.rst$' + + - repo: https://github.com/rstcheck/rstcheck + rev: "v6.2.4" + hooks: + - id: rstcheck + args: ["--report-level=warning"] + files: ^(docs/(.*/)*.*\.rst) + additional_dependencies: [Sphinx==6.2.1] + + - repo: local + hooks: + - id: pytest + name: Pytest + entry: poetry run pytest -v + language: system + types: [python] + stages: [commit] + pass_filenames: false + always_run: true + + - id: pylint + name: pylint + entry: pylint + language: system + types: [python] + require_serial: true + args: + - "-rn" + - "-sn" + - "--rcfile=pyproject.toml" + files: ^sage_tools/ + +ci: + skip: [pylint]