repos: - repo: https://github.com/astral-sh/uv-pre-commit # uv version. rev: 0.4.16 hooks: # Update the uv lockfile - id: uv-lock - 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.7.4 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: uv run mypy language: system 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: uv run ./devtools/generate_supported.py language: system # Required or pre-commit creates a new venv types: [json] pass_filenames: false # passing filenames causes the hook to run in batches against all-files