mirror of
https://github.com/python-kasa/python-kasa.git
synced 2024-12-22 19:23:34 +00:00
416d3118bf
For some time I've noticed that my IDE is reporting mypy errors that the pre-commit hook is not picking up. This is because [mypy mirror](https://github.com/pre-commit/mirrors-mypy) runs in an isolated pre-commit environment which does not have dependencies installed and it enables `--ignore-missing-imports` to avoid errors. This is [advised against by mypy](https://mypy.readthedocs.io/en/stable/running_mypy.html#missing-library-stubs-or-py-typed-marker) for obvious reasons: > We recommend avoiding --ignore-missing-imports if possible: it’s equivalent to adding a # type: ignore to all unresolved imports in your codebase. This PR configures the mypy pre-commit hook to run in the virtual environment and addresses the additional errors identified as a result. It also introduces a minimal mypy config into the `pyproject.toml` [mypy errors identified without the fixes in this PR](https://github.com/user-attachments/files/15896693/mypyerrors.txt)
47 lines
1.3 KiB
YAML
47 lines
1.3 KiB
YAML
repos:
|
|
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
rev: v4.6.0
|
|
hooks:
|
|
- id: trailing-whitespace
|
|
- id: end-of-file-fixer
|
|
- id: check-docstring-first
|
|
- id: check-yaml
|
|
- id: debug-statements
|
|
- id: check-ast
|
|
|
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
rev: v0.3.7
|
|
hooks:
|
|
- id: ruff
|
|
args: [--fix, --exit-non-zero-on-fix]
|
|
- id: ruff-format
|
|
|
|
- repo: https://github.com/PyCQA/doc8
|
|
rev: 'v1.1.1'
|
|
hooks:
|
|
- id: doc8
|
|
additional_dependencies: [tomli]
|
|
|
|
- repo: local
|
|
hooks:
|
|
# Run mypy in the virtual environment so it uses the installed dependencies
|
|
# for more accurate checking than using the pre-commit mypy mirror
|
|
- id: mypy
|
|
name: mypy
|
|
entry: devtools/run-in-env.sh mypy
|
|
language: script
|
|
types_or: [python, pyi]
|
|
require_serial: true
|
|
exclude: | # exclude required because --all-files passes py and pyi
|
|
(?x)^(
|
|
kasa/modulemapping\.py|
|
|
)$
|
|
- id: generate-supported
|
|
name: Generate supported devices
|
|
description: This hook generates the supported device sections of README.md and SUPPORTED.md
|
|
entry: devtools/generate_supported.py
|
|
language: system # Required or pre-commit creates a new venv
|
|
verbose: true # Show output on success
|
|
types: [json]
|
|
pass_filenames: false # passing filenames causes the hook to run in batches against all-files
|