mirror of
https://github.com/zebrajr/pytorch.git
synced 2025-12-06 00:20:18 +01:00
Not requiring all functions to have types allows a lot of 'Any' types to slip in - which poison types and make mypy unable to properly typecheck the code. I want to flip the default so that new files are required to have fully typed defs and we can have a burndown list of files that fail to require full types. The preceding stack of PRs (cut up simply to limit the number of file changes per PR "reasonable") adds `# mypy: allow-untyped-defs` to any file which didn't immediately pass mypy with the flag flipped. Due to changing files and merge conflicts it will probably be necessary to have several passes through before landing this final PR which turns the option on. Pull Request resolved: https://github.com/pytorch/pytorch/pull/127836 Approved by: https://github.com/oulgen, https://github.com/Skylion007
304 lines
6.0 KiB
INI
304 lines
6.0 KiB
INI
# This is the PyTorch mypy.ini file (note: don't change this line! -
|
|
# test_run_mypy in test/test_type_hints.py uses this string)
|
|
|
|
[mypy]
|
|
plugins = mypy_plugins/check_mypy_version.py, mypy_plugins/sympy_mypy_plugin.py, numpy.typing.mypy_plugin
|
|
|
|
cache_dir = .mypy_cache/normal
|
|
allow_redefinition = True
|
|
warn_unused_configs = True
|
|
warn_redundant_casts = True
|
|
show_error_codes = True
|
|
show_column_numbers = True
|
|
check_untyped_defs = True
|
|
disallow_untyped_defs = True
|
|
follow_imports = normal
|
|
local_partial_types = True
|
|
enable_error_code = possibly-undefined
|
|
|
|
# do not reenable this:
|
|
# https://github.com/pytorch/pytorch/pull/60006#issuecomment-866130657
|
|
warn_unused_ignores = False
|
|
|
|
#
|
|
# Note: test/ still has syntax errors so can't be added
|
|
#
|
|
# Typing tests is low priority, but enabling type checking on the
|
|
# untyped test functions (using `--check-untyped-defs`) is still
|
|
# high-value because it helps test the typing.
|
|
#
|
|
|
|
files =
|
|
torch,
|
|
caffe2,
|
|
test/test_bundled_images.py,
|
|
test/test_bundled_inputs.py,
|
|
test/test_complex.py,
|
|
test/test_datapipe.py,
|
|
test/test_futures.py,
|
|
test/test_numpy_interop.py,
|
|
test/test_torch.py,
|
|
test/test_type_hints.py,
|
|
test/test_type_info.py
|
|
test/test_utils.py
|
|
|
|
#
|
|
# `exclude` is a regex, not a list of paths like `files` (sigh)
|
|
#
|
|
exclude = torch/include/|torch/csrc/|torch/distributed/elastic/agent/server/api.py|torch/testing/_internal|torch/distributed/fsdp/fully_sharded_data_parallel.py
|
|
|
|
python_version = 3.11
|
|
|
|
|
|
#
|
|
# Extension modules without stubs.
|
|
#
|
|
|
|
[mypy-torch._C._jit_tree_views]
|
|
ignore_missing_imports = True
|
|
|
|
[mypy-torch.for_onnx.onnx]
|
|
ignore_missing_imports = True
|
|
|
|
[mypy-torch.ao.quantization.experimental.apot_utils]
|
|
ignore_missing_imports = True
|
|
|
|
[mypy-torch.ao.quantization.experimental.quantizer]
|
|
ignore_missing_imports = True
|
|
|
|
[mypy-torch.ao.quantization.experimental.observer]
|
|
ignore_missing_imports = True
|
|
|
|
[mypy-torch.ao.quantization.experimental.APoT_tensor]
|
|
ignore_missing_imports = True
|
|
|
|
[mypy-torch.ao.quantization.experimental.fake_quantize_function]
|
|
ignore_missing_imports = True
|
|
|
|
[mypy-torch.ao.quantization.experimental.fake_quantize]
|
|
ignore_missing_imports = True
|
|
|
|
#
|
|
# Files with various errors. Mostly real errors, possibly some false
|
|
# positives as well.
|
|
#
|
|
|
|
[mypy-test_torch]
|
|
check_untyped_defs = False
|
|
|
|
# Excluded from mypy due to OpInfos being annoying to type
|
|
[mypy-torch.testing._internal.common_methods_invocations.*]
|
|
ignore_errors = True
|
|
|
|
[mypy-torch.testing._internal.hypothesis_utils.*]
|
|
ignore_errors = True
|
|
|
|
[mypy-torch.testing._internal.common_quantization.*]
|
|
ignore_errors = True
|
|
|
|
[mypy-torch.testing._internal.generated.*]
|
|
ignore_errors = True
|
|
|
|
[mypy-torch.testing._internal.distributed.*]
|
|
ignore_errors = True
|
|
|
|
[mypy-torch.nn.modules.pooling]
|
|
ignore_errors = True
|
|
|
|
[mypy-torch.nn.parallel._functions]
|
|
ignore_errors = True
|
|
|
|
[mypy-torch._appdirs]
|
|
ignore_errors = True
|
|
|
|
[mypy-torch.multiprocessing.pool]
|
|
ignore_errors = True
|
|
|
|
[mypy-torch.overrides]
|
|
ignore_errors = True
|
|
|
|
#
|
|
# Files with 'type: ignore' comments that are needed if checked with mypy-strict.ini
|
|
#
|
|
|
|
[mypy-tools.render_junit]
|
|
warn_unused_ignores = False
|
|
|
|
[mypy-tools.generate_torch_version]
|
|
warn_unused_ignores = False
|
|
|
|
#
|
|
# Adding type annotations to caffe2 is probably not worth the effort
|
|
# only work on this if you have a specific reason for it, otherwise
|
|
# leave these ignores as they are.
|
|
#
|
|
|
|
[mypy-caffe2.python.*]
|
|
ignore_errors = True
|
|
|
|
[mypy-caffe2.proto.*]
|
|
ignore_errors = True
|
|
|
|
[mypy-caffe2.distributed.store_ops_test_util]
|
|
ignore_errors = True
|
|
|
|
[mypy-caffe2.experiments.*]
|
|
ignore_errors = True
|
|
|
|
[mypy-caffe2.contrib.*]
|
|
ignore_errors = True
|
|
|
|
[mypy-caffe2.quantization.server.*]
|
|
ignore_errors = True
|
|
|
|
#
|
|
# Third party dependencies that don't have types.
|
|
#
|
|
|
|
[mypy-triton.*]
|
|
ignore_missing_imports = True
|
|
|
|
[mypy-tensorflow.*]
|
|
ignore_missing_imports = True
|
|
|
|
[mypy-tensorboard.*]
|
|
ignore_missing_imports = True
|
|
|
|
[mypy-onnx.*]
|
|
ignore_missing_imports = True
|
|
|
|
[mypy-matplotlib.*]
|
|
ignore_missing_imports = True
|
|
|
|
[mypy-numpy.*]
|
|
ignore_missing_imports = True
|
|
|
|
[mypy-sympy]
|
|
ignore_missing_imports = True
|
|
|
|
[mypy-sympy.*]
|
|
ignore_missing_imports = True
|
|
|
|
[mypy-hypothesis.*]
|
|
ignore_missing_imports = True
|
|
|
|
[mypy-tqdm.*]
|
|
ignore_missing_imports = True
|
|
|
|
[mypy-multiprocessing.*]
|
|
ignore_missing_imports = True
|
|
|
|
[mypy-setuptools.*]
|
|
ignore_missing_imports = True
|
|
|
|
[mypy-distutils.*]
|
|
ignore_missing_imports = True
|
|
|
|
[mypy-nvd3.*]
|
|
ignore_missing_imports = True
|
|
|
|
[mypy-future.utils]
|
|
ignore_missing_imports = True
|
|
|
|
[mypy-past.builtins]
|
|
ignore_missing_imports = True
|
|
|
|
[mypy-numba.*]
|
|
ignore_missing_imports = True
|
|
|
|
[mypy-PIL.*]
|
|
ignore_missing_imports = True
|
|
|
|
[mypy-moviepy.*]
|
|
ignore_missing_imports = True
|
|
|
|
[mypy-cv2.*]
|
|
ignore_missing_imports = True
|
|
|
|
[mypy-torchvision.*]
|
|
ignore_missing_imports = True
|
|
|
|
[mypy-pycuda.*]
|
|
ignore_missing_imports = True
|
|
|
|
[mypy-tensorrt.*]
|
|
ignore_missing_imports = True
|
|
|
|
[mypy-tornado.*]
|
|
ignore_missing_imports = True
|
|
|
|
[mypy-pydot.*]
|
|
ignore_missing_imports = True
|
|
|
|
[mypy-networkx.*]
|
|
ignore_missing_imports = True
|
|
|
|
[mypy-scipy.*]
|
|
ignore_missing_imports = True
|
|
|
|
[mypy-IPython.*]
|
|
ignore_missing_imports = True
|
|
|
|
[mypy-google.protobuf.textformat]
|
|
ignore_missing_imports = True
|
|
|
|
[mypy-lmdb.*]
|
|
ignore_missing_imports = True
|
|
|
|
[mypy-mpi4py.*]
|
|
ignore_missing_imports = True
|
|
|
|
[mypy-skimage.*]
|
|
ignore_missing_imports = True
|
|
|
|
[mypy-librosa.*]
|
|
ignore_missing_imports = True
|
|
|
|
[mypy-mypy.*]
|
|
ignore_missing_imports = True
|
|
|
|
[mypy-xml.*]
|
|
ignore_missing_imports = True
|
|
|
|
[mypy-boto3.*]
|
|
ignore_missing_imports = True
|
|
|
|
[mypy-dill.*]
|
|
ignore_missing_imports = True
|
|
|
|
[mypy-usort.*]
|
|
ignore_missing_imports = True
|
|
|
|
[mypy-torch._inductor.*]
|
|
disallow_any_generics = True
|
|
|
|
[mypy-torch._dynamo.*]
|
|
disallow_any_generics = True
|
|
|
|
[mypy-cutlass_library.*]
|
|
ignore_missing_imports = True
|
|
|
|
[mypy-deeplearning.*]
|
|
ignore_missing_imports = True
|
|
|
|
[mypy-einops.*]
|
|
ignore_missing_imports = True
|
|
|
|
[mypy-libfb.*]
|
|
ignore_missing_imports = True
|
|
|
|
[mypy-torch.*.fb.*]
|
|
ignore_missing_imports = True
|
|
|
|
[mypy-torch.fb.*]
|
|
ignore_missing_imports = True
|
|
|
|
[mypy-torch_xla.*]
|
|
ignore_missing_imports = True
|
|
|
|
#
|
|
# Third party dependencies that are optional.
|
|
#
|
|
|
|
[mypy-redis]
|
|
ignore_missing_imports = True |