| ci: |
| skip: [pylint] |
| |
| repos: |
| - repo: https://github.com/pre-commit/pre-commit-hooks |
| rev: v4.3.0 |
| hooks: |
| - id: trailing-whitespace |
| exclude: tests(/\w*)*/functional/t/trailing_whitespaces.py|tests/pyreverse/data/.*.html|doc/data/messages/t/trailing-whitespace/bad.py |
| - id: end-of-file-fixer |
| exclude: | |
| (?x)^( |
| tests(/\w*)*/functional/m/missing/missing_final_newline.py| |
| tests/functional/t/trailing_newlines.py| |
| doc/data/messages/t/trailing-newlines/bad.py| |
| )$ |
| - repo: https://github.com/myint/autoflake |
| rev: v1.4 |
| hooks: |
| - id: autoflake |
| exclude: &fixtures tests(/\w*)*/functional/|tests/input|doc/data/messages|tests(/\w*)*data/ |
| args: |
| - --in-place |
| - --remove-all-unused-imports |
| - --expand-star-imports |
| - --remove-duplicate-keys |
| - --remove-unused-variables |
| - repo: https://github.com/Pierre-Sassoulas/copyright_notice_precommit |
| rev: 0.1.2 |
| hooks: |
| - id: copyright-notice |
| args: ["--notice=script/copyright.txt", "--enforce-all"] |
| exclude: tests(/\w*)*/functional/|tests/input|doc/data/messages|examples/|setup.py|tests(/\w*)*data/ |
| types: [python] |
| - repo: https://github.com/asottile/pyupgrade |
| rev: v2.37.3 |
| hooks: |
| - id: pyupgrade |
| args: [--py37-plus] |
| exclude: *fixtures |
| - repo: https://github.com/PyCQA/isort |
| rev: 5.10.1 |
| hooks: |
| - id: isort |
| exclude: doc/data/messages/(r/reimported|w/wrong-import-order|u/ungrouped-imports|m/misplaced-future|m/multiple-imports)/bad.py |
| - repo: https://github.com/psf/black |
| rev: 22.6.0 |
| hooks: |
| - id: black |
| args: [--safe, --quiet] |
| exclude: *fixtures |
| - repo: https://github.com/Pierre-Sassoulas/black-disable-checker |
| rev: v1.1.1 |
| hooks: |
| - id: black-disable-checker |
| - repo: https://github.com/PyCQA/flake8 |
| rev: 5.0.4 |
| hooks: |
| - id: flake8 |
| additional_dependencies: [flake8-typing-imports==1.12.0] |
| exclude: *fixtures |
| - repo: local |
| hooks: |
| - id: pylint |
| name: pylint |
| entry: pylint |
| language: system |
| types: [python] |
| args: ["-rn", "-sn", "--rcfile=pylintrc", "--fail-on=I"] |
| exclude: tests(/\w*)*/functional/|tests/input|tests(/\w*)*data/|doc/ |
| # We define an additional manual step to allow running pylint with a spelling |
| # checker in CI. |
| - id: pylint |
| alias: pylint-with-spelling |
| name: pylint |
| entry: pylint |
| language: system |
| types: [python] |
| args: ["-rn", "-sn", "--rcfile=pylintrc", "--fail-on=I", "--spelling-dict=en"] |
| exclude: tests(/\w*)*/functional/|tests/input|tests(/\w*)*data/|doc/ |
| stages: [manual] |
| - id: fix-documentation |
| name: Fix documentation |
| entry: python3 -m script.fix_documentation |
| language: system |
| types: [text] |
| files: ^(doc/whatsnew/\d+\.\d+\.rst) |
| - id: check-newsfragments |
| name: Check newsfragments |
| entry: python3 -m script.check_newsfragments |
| language: system |
| types: [text] |
| files: ^(doc/whatsnew/fragments) |
| exclude: doc/whatsnew/fragments/_.*.rst |
| - repo: https://github.com/rstcheck/rstcheck |
| rev: "v6.1.0" |
| hooks: |
| - id: rstcheck |
| args: ["--report-level=warning"] |
| files: ^(doc/(.*/)*.*\.rst) |
| additional_dependencies: [Sphinx==5.0.1] |
| - repo: https://github.com/pre-commit/mirrors-mypy |
| rev: v0.971 |
| hooks: |
| - id: mypy |
| name: mypy |
| entry: mypy |
| language: python |
| types: [python] |
| args: [] |
| require_serial: true |
| additional_dependencies: ["platformdirs==2.2.0", "types-pkg_resources==0.1.3"] |
| exclude: tests(/\w*)*/functional/|tests/input|tests(/.*)+/conftest.py|doc/data/messages|tests(/\w*)*data/ |
| - repo: https://github.com/pre-commit/mirrors-prettier |
| rev: v3.0.0-alpha.0 |
| hooks: |
| - id: prettier |
| args: [--prose-wrap=always, --print-width=88] |
| exclude: tests(/\w*)*data/ |
| - repo: https://github.com/DanielNoord/pydocstringformatter |
| rev: v0.7.0 |
| hooks: |
| - id: pydocstringformatter |
| exclude: *fixtures |
| args: ["--max-summary-lines=2", "--linewrap-full-docstring"] |
| files: "pylint" |