microsoft / vscode-mypy

Linting support for Python using the mypy linter.
https://marketplace.visualstudio.com/items?itemName=ms-python.mypy-type-checker
MIT License
119 stars 26 forks source link

`vscode-mypy` wrongly linters missing imports when `mypy` is used with `pre-commit` #324

Open tapyu opened 1 month ago

tapyu commented 1 month ago

I am using pre-commit, which runs mypy with --ignore-missing-imports by default with the following configuration:

-   repo: https://github.com/pre-commit/mirrors-mypy
    rev: ''  # Use the sha / tag you want to point at
    hooks:
    -   id: mypy

However, this extension wrongly linters my code as if the import are not being ignored.

image

Nevertheless, the pre-commit is passing in all hooks, including mypy

(scintpy-py3.12) PS C:\Users\rubem\scintpy> git commit -m 'test mypy arguments'
[WARNING] The 'rev' field of repo 'https://github.com/pre-commit/mirrors-mypy' appears to be a mutable reference (moving tag / branch).  Mutable references are never updated after first install and are not supported.  See https://pre-commit.com/#using-the-latest-version-for-a-repository for more details.  Hint: `pre-commit autoupdate` often fixes this.
ruff.....................................................................Passed
ruff-format..............................................................Passed
mypy.....................................................................Passed
pyupgrade................................................................Passed
[main 8ed6934] test mypy arguments
 1 file changed, 1 insertion(+), 1 deletion(-)

I suggest that this extension should be .pre-commit-config.yaml-aware and run dmypy with --ignore-missing-imports so that the lintering matches the actual hook.

karthiknadig commented 1 month ago

@tapyu are you passing --ignore-missing-imports via mypy-type-checker.args ? This extension is a thin wrapper around mypy. All it does is run mypy, and processes the results. If mypy itself does not read certain settings then we avoid doing it.