# This is the PyTorch mypy-strict.ini file (note: don't change this line! - # test_run_mypy in test/test_type_hints.py uses this string) # Unlike mypy.ini, it enforces very strict typing rules. The intention is for # this config file to be used to ENFORCE that people are using mypy on codegen # files. # For now, only code_template.py and benchmark utils Timer are covered this way [mypy] python_version = 3.6 plugins = mypy_plugins/check_mypy_version.py cache_dir = .mypy_cache/strict strict_optional = True show_column_numbers = True warn_no_return = True disallow_any_unimported = True # Across versions of mypy, the flags toggled by --strict vary. To ensure # we have reproducible type check, we instead manually specify the flags warn_unused_configs = True disallow_any_generics = True disallow_subclassing_any = True disallow_untyped_calls = True disallow_untyped_defs = True disallow_incomplete_defs = True check_untyped_defs = True disallow_untyped_decorators = True no_implicit_optional = True warn_redundant_casts = True warn_unused_ignores = True warn_return_any = True implicit_reexport = False strict_equality = True files = .github/scripts/generate_binary_build_matrix.py, benchmarks/instruction_counts/*.py, benchmarks/instruction_counts/*/*.py, tools/autograd/*.py, tools/codegen/gen.py, tools/mypy_wrapper.py, tools/print_test_stats.py, tools/pyi/*.py, tools/stats_utils/*.py, tools/test_history.py, tools/test/test_test_history.py, tools/test/test_trailing_newlines.py, tools/trailing_newlines.py, torch/testing/_internal/framework_utils.py, torch/utils/benchmark/utils/common.py, torch/utils/benchmark/utils/timer.py, torch/utils/benchmark/utils/valgrind_wrapper/*.py, torch/utils/_pytree.py # Specifically enable imports of benchmark utils. As more of `torch` becomes # strict compliant, those modules can be enabled as well. [mypy-torch.utils.benchmark.utils.*] follow_imports = normal # Don't follow imports as much of `torch` is not strict compliant. [mypy-torch] follow_imports = skip [mypy-torch.*] follow_imports = skip # Missing stubs. [mypy-numpy] ignore_missing_imports = True [mypy-mypy.*] ignore_missing_imports = True