default_language_version: python: "3.10" repos: - repo: https://github.com/psf/black rev: 23.1.0 hooks: - id: black args: [--safe, --quiet] - repo: https://github.com/asottile/blacken-docs rev: 1.13.0 hooks: - id: blacken-docs additional_dependencies: [black==23.1.0] - repo: https://github.com/pre-commit/pre-commit-hooks rev: v4.4.0 hooks: - id: trailing-whitespace - id: end-of-file-fixer - id: fix-encoding-pragma args: [--remove] - id: check-yaml - id: debug-statements exclude: _pytest/(debugging|hookspec).py language_version: python3 - repo: https://github.com/PyCQA/autoflake rev: v2.0.1 hooks: - id: autoflake name: autoflake args: ["--in-place", "--remove-unused-variables", "--remove-all-unused-imports"] language: python files: \.py$ - repo: https://github.com/PyCQA/flake8 rev: 6.0.0 hooks: - id: flake8 language_version: python3 additional_dependencies: - flake8-typing-imports==1.12.0 - flake8-docstrings==1.5.0 - repo: https://github.com/asottile/reorder_python_imports rev: v3.9.0 hooks: - id: reorder-python-imports args: ['--application-directories=.:src', --py37-plus] - repo: https://github.com/asottile/pyupgrade rev: v3.3.1 hooks: - id: pyupgrade args: [--py37-plus] - repo: https://github.com/asottile/setup-cfg-fmt rev: v2.2.0 hooks: - id: setup-cfg-fmt args: ["--max-py-version=3.11", "--include-version-classifiers"] - repo: https://github.com/pre-commit/pygrep-hooks rev: v1.10.0 hooks: - id: python-use-type-annotations - repo: https://github.com/pre-commit/mirrors-mypy rev: v1.0.1 hooks: - id: mypy files: ^(src/|testing/) args: [] additional_dependencies: - iniconfig>=1.1.0 - attrs>=19.2.0 - packaging - tomli - types-pkg_resources # for mypy running on python>=3.11 since exceptiongroup is only a dependency # on <3.11 - exceptiongroup>=1.0.0rc8 - repo: local hooks: - id: rst name: rst entry: rst-lint --encoding utf-8 files: ^(RELEASING.rst|README.rst|TIDELIFT.rst)$ language: python additional_dependencies: [pygments, restructuredtext_lint] - id: changelogs-rst name: changelog filenames language: fail entry: 'changelog files must be named ####.(breaking|bugfix|deprecation|doc|feature|improvement|trivial|vendor).rst' exclude: changelog/(\d+\.(breaking|bugfix|deprecation|doc|feature|improvement|trivial|vendor).rst|README.rst|_template.rst) files: ^changelog/ - id: py-deprecated name: py library is deprecated language: pygrep entry: > (?x)\bpy\.( _code\.| builtin\.| code\.| io\.| path\.local\.sysfind| process\.| std\.| error\.| xml\. ) types: [python] - id: py-path-deprecated name: py.path usage is deprecated exclude: docs|src/_pytest/deprecated.py|testing/deprecated_test.py|src/_pytest/legacypath.py language: pygrep entry: \bpy\.path\.local types: [python]