Default MyPy type hint checks with .mypy.ini
MyPy is a Python type annotation checker. MyPy recursively checks all files in a Python project by typing:
mypy ~/myproject
We typically use the PyPi MyPy instead of conda to have the most recent MyPy version:
pip install mypy
It’s often useful to have a per-project MyPy configuration file to avoid excessive command line options. Put a file .mypy.ini in each Python project containing:
[mypy]
files = src/, scripts/
ignore_missing_imports = True
strict_optional = False
allow_redefinition = True
show_error_context = False
show_column_numbers = True
Where “files” is set appropriately for your project. Making a per-project files is strongly recommended to ensure files aren’t missed in the type check. One can make a system-wide ~/.mypy.ini, that is overridden by the per-project .mypy.ini.
Sometimes an external package adds type hinting that is incompatible with the current MyPy release. This is relatively rare, but was the case with Xarray. To ignore a package’s type hinting, add the following to .mypy.ini, where we assume we want to ignore xarray type checking.
[mypy-xarray]
follow_imports = skip
Enhanced mypy usage is described at: http://calpaterson.com/mypy-hints.html