ci: skip: [pylint] repos: - repo: https://github.com/pre-commit/pre-commit-hooks rev: v4.4.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| doc/data/messages/m/missing-final-newline/bad.py| )$ - repo: https://github.com/charliermarsh/ruff-pre-commit rev: "v0.0.267" hooks: - id: ruff args: ["--fix"] exclude: &fixtures tests(/\w*)*/functional/|tests/input|doc/data/messages|tests(/\w*)*data/ - id: ruff name: ruff-doc files: doc/data/messages args: ["--config", "doc/data/ruff.toml"] - 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: v3.4.0 hooks: - id: pyupgrade args: [--py38-plus] exclude: *fixtures - repo: https://github.com/PyCQA/isort rev: 5.12.0 hooks: - id: isort exclude: doc/data/messages/ - repo: https://github.com/psf/black rev: 23.3.0 hooks: - id: black args: [--safe, --quiet] exclude: *fixtures - id: black name: black-doc args: [--safe, --quiet] files: doc/data/messages/ exclude: | (?x)^( doc/data/messages/b/bad-indentation/bad.py| doc/data/messages/i/inconsistent-quotes/bad.py| doc/data/messages/i/invalid-format-index/bad.py| doc/data/messages/l/line-too-long/bad.py| doc/data/messages/m/missing-final-newline/bad.py| doc/data/messages/m/multiple-statements/bad.py| doc/data/messages/r/redundant-u-string-prefix/bad.py| doc/data/messages/s/superfluous-parens/bad.py| doc/data/messages/s/syntax-error/bad.py| doc/data/messages/t/too-many-ancestors/bad.py| doc/data/messages/t/trailing-comma-tuple/bad.py| doc/data/messages/t/trailing-newlines/bad.py| doc/data/messages/t/trailing-whitespace/bad.py| doc/data/messages/u/unnecessary-semicolon/bad.py )$ - repo: https://github.com/Pierre-Sassoulas/black-disable-checker rev: v1.1.3 hooks: - id: black-disable-checker - 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: 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.2" 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: v1.3.0 hooks: - id: mypy name: mypy entry: mypy language: python types: [python] args: [] require_serial: true additional_dependencies: [ "isort>=5", "platformdirs==2.2.0", "py==1.11", "tomlkit>=0.10.1", "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.9-for-vscode hooks: - id: prettier args: [--prose-wrap=always, --print-width=88] exclude: tests(/\w*)*data/ - repo: https://github.com/DanielNoord/pydocstringformatter rev: v0.7.3 hooks: - id: pydocstringformatter exclude: *fixtures args: ["--max-summary-lines=2", "--linewrap-full-docstring"] files: "pylint" - repo: https://github.com/regebro/pyroma rev: "4.2" hooks: - id: pyroma # Must be specified because of the default value in pyroma always_run: false files: | (?x)^( README.rst| pyproject.toml| pylint/__init__.py| pylint/__pkginfo__.py| setup.cfg )$ - repo: https://github.com/PyCQA/bandit rev: 1.7.5 hooks: - id: bandit args: ["-r", "-lll"] exclude: *fixtures