Add type annotations to all previously untyped functions and remove 9 suppressed error codes (call-arg, assignment, return-value, operator, has-type, dict-item, misc, list-item, annotation-unchecked) by fixing the underlying type issues. Add [[tool.mypy.overrides]] with ignore_missing_imports for KiCAD-specific modules (pcbnew, sexpdata, skip, cairosvg, kipy, PIL) so the pre-commit mypy hook passes in its isolated venv. Add types-requests and pytest to additional_dependencies in .pre-commit-config.yaml. Also fixes several real bugs uncovered by stricter checks: incorrect static calls to instance methods in swig_backend, wrong return type on get_size, missing value param in BoardAPI.place_component, variable shadowing in kicad_process.py, unqualified LibraryManager reference in kicad_interface, and missing top-level Path import. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
61 lines
1.4 KiB
YAML
61 lines
1.4 KiB
YAML
repos:
|
|
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
rev: v5.0.0
|
|
hooks:
|
|
- id: trailing-whitespace
|
|
- id: end-of-file-fixer
|
|
- id: check-yaml
|
|
- id: check-json
|
|
- id: check-added-large-files
|
|
args: ["--maxkb=500"]
|
|
- id: check-merge-conflict
|
|
|
|
- repo: https://github.com/psf/black
|
|
rev: 26.3.1
|
|
hooks:
|
|
- id: black
|
|
language_version: python3
|
|
args: [--config=pyproject.toml]
|
|
|
|
- repo: https://github.com/pycqa/isort
|
|
rev: 8.0.1
|
|
hooks:
|
|
- id: isort
|
|
args: [--settings-path=pyproject.toml]
|
|
|
|
- repo: local
|
|
hooks:
|
|
- id: prettier
|
|
name: prettier
|
|
entry: npx prettier --write --ignore-unknown
|
|
language: node
|
|
types_or: [javascript, ts, json, yaml, markdown]
|
|
exclude: ^(dist/|package-lock\.json|\.venv/|python/)
|
|
|
|
- repo: https://github.com/pycqa/flake8
|
|
rev: "7.3.0"
|
|
hooks:
|
|
- id: flake8
|
|
files: ^python/
|
|
args: [--config=.flake8]
|
|
|
|
- repo: https://github.com/pre-commit/mirrors-mypy
|
|
rev: "v1.19.1"
|
|
hooks:
|
|
- id: mypy
|
|
files: ^python/
|
|
exclude: ^python/commands/board\.py$
|
|
args: [--config-file=pyproject.toml]
|
|
additional_dependencies:
|
|
- types-requests
|
|
- pytest
|
|
|
|
- repo: local
|
|
hooks:
|
|
- id: eslint
|
|
name: eslint
|
|
entry: npx eslint --fix
|
|
language: node
|
|
types: [ts]
|
|
files: ^src/
|