From afe1fc270e28e8893a9ee6b77a10c25a341311a6 Mon Sep 17 00:00:00 2001 From: makslevental Date: Mon, 8 Sep 2025 15:20:29 -0700 Subject: [PATCH] [MLIR][Python] add mypy tests --- .ci/all_requirements.txt | 86 ++++++++++++++++++- mlir/python/mlir/__init__.py | 1 + mlir/python/mlir/dialects/__init__.py | 1 + mlir/python/mlir/py.typed | 0 mlir/python/requirements.txt | 1 + mlir/test/lit.cfg.py | 7 ++ mlir/test/python/bindings_type_stubs.py | 1 + mlir/test/python/dialects/affine.py | 1 + mlir/test/python/dialects/amdgpu.py | 1 + mlir/test/python/dialects/arith_dialect.py | 1 + mlir/test/python/dialects/arith_llvm.py | 1 + mlir/test/python/dialects/async_dialect.py | 1 + mlir/test/python/dialects/builtin.py | 1 + mlir/test/python/dialects/cf.py | 1 + mlir/test/python/dialects/complex_dialect.py | 1 + mlir/test/python/dialects/emitc_dialect.py | 1 + mlir/test/python/dialects/func.py | 1 + mlir/test/python/dialects/gpu/dialect.py | 1 + .../dialects/gpu/module-to-binary-nvvm.py | 1 + .../dialects/gpu/module-to-binary-rocdl.py | 1 + mlir/test/python/dialects/index_dialect.py | 1 + .../python/dialects/linalg/opdsl/doctests.py | 1 + .../dialects/linalg/opdsl/emit_convolution.py | 1 + .../python/dialects/linalg/opdsl/emit_fill.py | 1 + .../dialects/linalg/opdsl/emit_matmul.py | 1 + .../python/dialects/linalg/opdsl/emit_misc.py | 1 + .../dialects/linalg/opdsl/emit_pooling.py | 1 + mlir/test/python/dialects/linalg/ops.py | 1 + mlir/test/python/dialects/linalg/utils.py | 1 + mlir/test/python/dialects/llvm.py | 1 + mlir/test/python/dialects/math_dialect.py | 1 + mlir/test/python/dialects/memref.py | 1 + mlir/test/python/dialects/ml_program.py | 1 + mlir/test/python/dialects/nvgpu.py | 1 + mlir/test/python/dialects/nvvm.py | 1 + mlir/test/python/dialects/ods_helpers.py | 1 + mlir/test/python/dialects/openmp_ops.py | 1 + mlir/test/python/dialects/pdl_ops.py | 1 + mlir/test/python/dialects/pdl_types.py | 1 + mlir/test/python/dialects/python_test.py | 1 + mlir/test/python/dialects/quant.py | 1 + mlir/test/python/dialects/rocdl.py | 1 + mlir/test/python/dialects/scf.py | 1 + mlir/test/python/dialects/shape.py | 1 + mlir/test/python/dialects/smt.py | 1 + .../python/dialects/sparse_tensor/dialect.py | 1 + .../python/dialects/sparse_tensor/passes.py | 1 + mlir/test/python/dialects/spirv_dialect.py | 1 + mlir/test/python/dialects/tensor.py | 1 + mlir/test/python/dialects/tosa.py | 1 + mlir/test/python/dialects/transform.py | 1 + .../dialects/transform_bufferization_ext.py | 1 + .../python/dialects/transform_debug_ext.py | 1 + mlir/test/python/dialects/transform_extras.py | 1 + .../test/python/dialects/transform_gpu_ext.py | 1 + .../python/dialects/transform_interpreter.py | 1 + .../python/dialects/transform_loop_ext.py | 1 + .../python/dialects/transform_memref_ext.py | 1 + .../python/dialects/transform_nvgpu_ext.py | 1 + .../dialects/transform_sparse_tensor_ext.py | 1 + .../dialects/transform_structured_ext.py | 1 + .../python/dialects/transform_tensor_ext.py | 1 + .../python/dialects/transform_tune_ext.py | 1 + .../python/dialects/transform_vector_ext.py | 1 + mlir/test/python/dialects/ub.py | 1 + mlir/test/python/dialects/vector.py | 1 + mlir/test/python/execution_engine.py | 1 + mlir/test/python/global_constructors.py | 1 + .../integration/dialects/linalg/opsrun.py | 1 + mlir/test/python/integration/dialects/pdl.py | 1 + .../python/integration/dialects/transform.py | 1 + mlir/test/python/ir/affine_expr.py | 1 + mlir/test/python/ir/affine_map.py | 1 + mlir/test/python/ir/array_attributes.py | 1 + mlir/test/python/ir/attributes.py | 1 + mlir/test/python/ir/auto_location.py | 1 + mlir/test/python/ir/blocks.py | 1 + mlir/test/python/ir/builtin_types.py | 1 + mlir/test/python/ir/context_lifecycle.py | 1 + mlir/test/python/ir/context_managers.py | 1 + mlir/test/python/ir/debug.py | 1 + mlir/test/python/ir/diagnostic_handler.py | 1 + mlir/test/python/ir/dialects.py | 1 + mlir/test/python/ir/exception.py | 1 + mlir/test/python/ir/insertion_point.py | 1 + mlir/test/python/ir/integer_set.py | 1 + mlir/test/python/ir/location.py | 1 + mlir/test/python/ir/module.py | 1 + mlir/test/python/ir/operation.py | 1 + mlir/test/python/ir/symbol_table.py | 1 + mlir/test/python/ir/value.py | 1 + mlir/test/python/live_operations.py | 1 + mlir/test/python/multithreaded_tests.py | 1 + mlir/test/python/mypy.ini | 3 + mlir/test/python/pass_manager.py | 1 + 95 files changed, 186 insertions(+), 1 deletion(-) create mode 100644 mlir/python/mlir/__init__.py create mode 100644 mlir/python/mlir/dialects/__init__.py create mode 100644 mlir/python/mlir/py.typed create mode 100644 mlir/test/python/bindings_type_stubs.py create mode 100644 mlir/test/python/mypy.ini diff --git a/.ci/all_requirements.txt b/.ci/all_requirements.txt index 313ab1076bb26..9e9a9869de000 100644 --- a/.ci/all_requirements.txt +++ b/.ci/all_requirements.txt @@ -194,6 +194,50 @@ ml-dtypes==0.5.1 ; python_version < "3.13" \ --hash=sha256:d13755f8e8445b3870114e5b6240facaa7cb0c3361e54beba3e07fa912a6e12b \ --hash=sha256:fd918d4e6a4e0c110e2e05be7a7814d10dc1b95872accbf6512b80a109b71ae1 # via -r mlir/python/requirements.txt +mypy==1.18.2 \ + --hash=sha256:01199871b6110a2ce984bde85acd481232d17413868c9807e95c1b0739a58914 \ + --hash=sha256:030c52d0ea8144e721e49b1f68391e39553d7451f0c3f8a7565b59e19fcb608b \ + --hash=sha256:06a398102a5f203d7477b2923dda3634c36727fa5c237d8f859ef90c42a9924b \ + --hash=sha256:07b8b0f580ca6d289e69209ec9d3911b4a26e5abfde32228a288eb79df129fcc \ + --hash=sha256:0e2785a84b34a72ba55fb5daf079a1003a34c05b22238da94fcae2bbe46f3544 \ + --hash=sha256:1331eb7fd110d60c24999893320967594ff84c38ac6d19e0a76c5fd809a84c86 \ + --hash=sha256:1379451880512ffce14505493bd9fe469e0697543717298242574882cf8cdb8d \ + --hash=sha256:20c02215a080e3a2be3aa50506c67242df1c151eaba0dcbc1e4e557922a26075 \ + --hash=sha256:22a1748707dd62b58d2ae53562ffc4d7f8bcc727e8ac7cbc69c053ddc874d47e \ + --hash=sha256:22f27105f1525ec024b5c630c0b9f36d5c1cc4d447d61fe51ff4bd60633f47ac \ + --hash=sha256:25a9c8fb67b00599f839cf472713f54249a62efd53a54b565eb61956a7e3296b \ + --hash=sha256:33eca32dd124b29400c31d7cf784e795b050ace0e1f91b8dc035672725617e34 \ + --hash=sha256:3ca30b50a51e7ba93b00422e486cbb124f1c56a535e20eff7b2d6ab72b3b2e37 \ + --hash=sha256:448acd386266989ef11662ce3c8011fd2a7b632e0ec7d61a98edd8e27472225b \ + --hash=sha256:592ec214750bc00741af1f80cbf96b5013d81486b7bb24cb052382c19e40b428 \ + --hash=sha256:5d6c838e831a062f5f29d11c9057c6009f60cb294fea33a98422688181fe2893 \ + --hash=sha256:62f0e1e988ad41c2a110edde6c398383a889d95b36b3e60bcf155f5164c4fdce \ + --hash=sha256:664dc726e67fa54e14536f6e1224bcfce1d9e5ac02426d2326e2bb4e081d1ce8 \ + --hash=sha256:6ca1e64b24a700ab5ce10133f7ccd956a04715463d30498e64ea8715236f9c9c \ + --hash=sha256:749b5f83198f1ca64345603118a6f01a4e99ad4bf9d103ddc5a3200cc4614adf \ + --hash=sha256:776bb00de1778caf4db739c6e83919c1d85a448f71979b6a0edd774ea8399341 \ + --hash=sha256:7a780ca61fc239e4865968ebc5240bb3bf610ef59ac398de9a7421b54e4a207e \ + --hash=sha256:7ab28cc197f1dd77a67e1c6f35cd1f8e8b73ed2217e4fc005f9e6a504e46e7ba \ + --hash=sha256:7fb95f97199ea11769ebe3638c29b550b5221e997c63b14ef93d2e971606ebed \ + --hash=sha256:807d9315ab9d464125aa9fcf6d84fde6e1dc67da0b6f80e7405506b8ac72bc7f \ + --hash=sha256:8795a039bab805ff0c1dfdb8cd3344642c2b99b8e439d057aba30850b8d3423d \ + --hash=sha256:a2afc0fa0b0e91b4599ddfe0f91e2c26c2b5a5ab263737e998d6817874c5f7c8 \ + --hash=sha256:a3c47adf30d65e89b2dcd2fa32f3aeb5e94ca970d2c15fcb25e297871c8e4764 \ + --hash=sha256:a431a6f1ef14cf8c144c6b14793a23ec4eae3db28277c358136e79d7d062f62d \ + --hash=sha256:aa5e07ac1a60a253445797e42b8b2963c9675563a94f11291ab40718b016a7a0 \ + --hash=sha256:c1eab0cf6294dafe397c261a75f96dc2c31bffe3b944faa24db5def4e2b0f77c \ + --hash=sha256:c2b9c7e284ee20e7598d6f42e13ca40b4928e6957ed6813d1ab6348aa3f47133 \ + --hash=sha256:c3ad2afadd1e9fea5cf99a45a822346971ede8685cc581ed9cd4d42eaf940986 \ + --hash=sha256:d6985ed057513e344e43a26cc1cd815c7a94602fb6a3130a34798625bc2f07b6 \ + --hash=sha256:d8068d0afe682c7c4897c0f7ce84ea77f6de953262b12d07038f4d296d547074 \ + --hash=sha256:d924eef3795cc89fecf6bedc6ed32b33ac13e8321344f6ddbf8ee89f706c05cb \ + --hash=sha256:ed4482847168439651d3feee5833ccedbf6657e964572706a2adb1f7fa4dfe2e \ + --hash=sha256:f9e171c465ad3901dc652643ee4bffa8e9fef4d7d0eece23b428908c77a76a66 + # via -r mlir/python/requirements.txt +mypy-extensions==1.1.0 \ + --hash=sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505 \ + --hash=sha256:52e68efc3284861e772bbcd66823fde5ae21fd2fdb51c62a211403730b916558 + # via mypy numpy==2.0.2 \ --hash=sha256:0123ffdaa88fa4ab64835dcbde75dcdf89c453c922f18dced6e27c90d1d0ec5a \ --hash=sha256:11a76c372d1d37437857280aa142086476136a8c0f373b2e648ab2c8f18fb195 \ @@ -247,6 +291,10 @@ packaging==25.0 \ --hash=sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484 \ --hash=sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f # via -r lldb/test/requirements.txt +pathspec==0.12.1 \ + --hash=sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08 \ + --hash=sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712 + # via mypy pexpect==4.9.0 ; sys_platform != "win32" \ --hash=sha256:7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523 \ --hash=sha256:ee7d41123f3c9911050ea2c2dac107568dc43b2d3b0c7557a33212c398ead30f @@ -375,10 +423,46 @@ swig==4.3.1 \ --hash=sha256:efec16327029f682f649a26da726bb0305be8800bd0f1fa3e81bf0769cf5b476 \ --hash=sha256:fc496c0d600cf1bb2d91e28d3d6eae9c4301e5ea7a0dec5a4281b5efed4245a8 # via -r lldb/test/requirements.txt +tomli==2.2.1 \ + --hash=sha256:023aa114dd824ade0100497eb2318602af309e5a55595f76b626d6d9f3b7b0a6 \ + --hash=sha256:02abe224de6ae62c19f090f68da4e27b10af2b93213d36cf44e6e1c5abd19fdd \ + --hash=sha256:286f0ca2ffeeb5b9bd4fcc8d6c330534323ec51b2f52da063b11c502da16f30c \ + --hash=sha256:2d0f2fdd22b02c6d81637a3c95f8cd77f995846af7414c5c4b8d0545afa1bc4b \ + --hash=sha256:33580bccab0338d00994d7f16f4c4ec25b776af3ffaac1ed74e0b3fc95e885a8 \ + --hash=sha256:400e720fe168c0f8521520190686ef8ef033fb19fc493da09779e592861b78c6 \ + --hash=sha256:40741994320b232529c802f8bc86da4e1aa9f413db394617b9a256ae0f9a7f77 \ + --hash=sha256:465af0e0875402f1d226519c9904f37254b3045fc5084697cefb9bdde1ff99ff \ + --hash=sha256:4a8f6e44de52d5e6c657c9fe83b562f5f4256d8ebbfe4ff922c495620a7f6cea \ + --hash=sha256:4e340144ad7ae1533cb897d406382b4b6fede8890a03738ff1683af800d54192 \ + --hash=sha256:678e4fa69e4575eb77d103de3df8a895e1591b48e740211bd1067378c69e8249 \ + --hash=sha256:6972ca9c9cc9f0acaa56a8ca1ff51e7af152a9f87fb64623e31d5c83700080ee \ + --hash=sha256:7fc04e92e1d624a4a63c76474610238576942d6b8950a2d7f908a340494e67e4 \ + --hash=sha256:889f80ef92701b9dbb224e49ec87c645ce5df3fa2cc548664eb8a25e03127a98 \ + --hash=sha256:8d57ca8095a641b8237d5b079147646153d22552f1c637fd3ba7f4b0b29167a8 \ + --hash=sha256:8dd28b3e155b80f4d54beb40a441d366adcfe740969820caf156c019fb5c7ec4 \ + --hash=sha256:9316dc65bed1684c9a98ee68759ceaed29d229e985297003e494aa825ebb0281 \ + --hash=sha256:a198f10c4d1b1375d7687bc25294306e551bf1abfa4eace6650070a5c1ae2744 \ + --hash=sha256:a38aa0308e754b0e3c67e344754dff64999ff9b513e691d0e786265c93583c69 \ + --hash=sha256:a92ef1a44547e894e2a17d24e7557a5e85a9e1d0048b0b5e7541f76c5032cb13 \ + --hash=sha256:ac065718db92ca818f8d6141b5f66369833d4a80a9d74435a268c52bdfa73140 \ + --hash=sha256:b82ebccc8c8a36f2094e969560a1b836758481f3dc360ce9a3277c65f374285e \ + --hash=sha256:c954d2250168d28797dd4e3ac5cf812a406cd5a92674ee4c8f123c889786aa8e \ + --hash=sha256:cb55c73c5f4408779d0cf3eef9f762b9c9f147a77de7b258bef0a5628adc85cc \ + --hash=sha256:cd45e1dc79c835ce60f7404ec8119f2eb06d38b1deba146f07ced3bbc44505ff \ + --hash=sha256:d3f5614314d758649ab2ab3a62d4f2004c825922f9e370b29416484086b264ec \ + --hash=sha256:d920f33822747519673ee656a4b6ac33e382eca9d331c87770faa3eef562aeb2 \ + --hash=sha256:db2b95f9de79181805df90bedc5a5ab4c165e6ec3fe99f970d0e302f384ad222 \ + --hash=sha256:e59e304978767a54663af13c07b3d1af22ddee3bb2fb0618ca1593e4f593a106 \ + --hash=sha256:e85e99945e688e32d5a35c1ff38ed0b3f41f43fad8df0bdf79f72b2ba7bc5272 \ + --hash=sha256:ece47d672db52ac607a3d9599a9d48dcb2f2f735c6c2d1f34130085bb12b112a \ + --hash=sha256:f4039b9cbc3048b2416cc57ab3bda989a6fcf9b36cf8937f01a6e731b64f80d7 + # via mypy typing-extensions==4.15.0 \ --hash=sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466 \ --hash=sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548 - # via -r mlir/python/requirements.txt + # via + # -r mlir/python/requirements.txt + # mypy urllib3==2.5.0 \ --hash=sha256:3fc47733c7e419d4bc3f6b3dc2b4f890bb743906a30d56ba4a5bfa4bbff92760 \ --hash=sha256:e6b01673c0fa6a13e374b50871808eb3bf7046c4b125b216f6bf1cc604cff0dc diff --git a/mlir/python/mlir/__init__.py b/mlir/python/mlir/__init__.py new file mode 100644 index 0000000000000..8db66d3d0f0f2 --- /dev/null +++ b/mlir/python/mlir/__init__.py @@ -0,0 +1 @@ +__path__ = __import__("pkgutil").extend_path(__path__, __name__) diff --git a/mlir/python/mlir/dialects/__init__.py b/mlir/python/mlir/dialects/__init__.py new file mode 100644 index 0000000000000..8db66d3d0f0f2 --- /dev/null +++ b/mlir/python/mlir/dialects/__init__.py @@ -0,0 +1 @@ +__path__ = __import__("pkgutil").extend_path(__path__, __name__) diff --git a/mlir/python/mlir/py.typed b/mlir/python/mlir/py.typed new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/mlir/python/requirements.txt b/mlir/python/requirements.txt index 5ff9500e50127..78da215457fa0 100644 --- a/mlir/python/requirements.txt +++ b/mlir/python/requirements.txt @@ -3,3 +3,4 @@ PyYAML>=5.4.0, <=6.0.1 ml_dtypes>=0.1.0, <=0.6.0; python_version<"3.13" # provides several NumPy dtype extensions, including the bf16 ml_dtypes>=0.5.0, <=0.6.0; python_version>="3.13" typing_extensions>=4.12.2 +mypy>=1.17.1 diff --git a/mlir/test/lit.cfg.py b/mlir/test/lit.cfg.py index f99c24d6e299a..c2dd1d3684607 100644 --- a/mlir/test/lit.cfg.py +++ b/mlir/test/lit.cfg.py @@ -57,6 +57,12 @@ config.substitutions.append(("%shlibext", config.llvm_shlib_ext)) config.substitutions.append(("%llvm_src_root", config.llvm_src_root)) config.substitutions.append(("%mlir_src_root", config.mlir_src_root)) +config.substitutions.append( + ( + "%mlir_python_packages_root", + os.path.join(config.mlir_obj_root, "python_packages", "mlir_core"), + ) +) config.substitutions.append(("%host_cxx", config.host_cxx.strip())) config.substitutions.append(("%host_cc", config.host_cc.strip())) @@ -348,6 +354,7 @@ def find_real_python_interpreter(): else: config.available_features.add("noasserts") + def have_host_jit_feature_support(feature_name): mlir_runner_exe = lit.util.which("mlir-runner", config.mlir_tools_dir) diff --git a/mlir/test/python/bindings_type_stubs.py b/mlir/test/python/bindings_type_stubs.py new file mode 100644 index 0000000000000..7c83e9f5dd989 --- /dev/null +++ b/mlir/test/python/bindings_type_stubs.py @@ -0,0 +1 @@ +# RUN: %PYTHON -m mypy %mlir_python_packages_root --config-file %mlir_src_root/test/python/mypy.ini diff --git a/mlir/test/python/dialects/affine.py b/mlir/test/python/dialects/affine.py index 7ef128c1724c4..dfaf69d064c89 100644 --- a/mlir/test/python/dialects/affine.py +++ b/mlir/test/python/dialects/affine.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s | FileCheck %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini from mlir.ir import * from mlir.dialects import func diff --git a/mlir/test/python/dialects/amdgpu.py b/mlir/test/python/dialects/amdgpu.py index b479576dac093..e63c0b3b83e8f 100644 --- a/mlir/test/python/dialects/amdgpu.py +++ b/mlir/test/python/dialects/amdgpu.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s | FileCheck %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini # This is just a smoke test that the dialect is functional. from mlir.ir import * diff --git a/mlir/test/python/dialects/arith_dialect.py b/mlir/test/python/dialects/arith_dialect.py index c9af5e7b46db8..e1298188c94a9 100644 --- a/mlir/test/python/dialects/arith_dialect.py +++ b/mlir/test/python/dialects/arith_dialect.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s | FileCheck %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini from functools import partialmethod from mlir.ir import * diff --git a/mlir/test/python/dialects/arith_llvm.py b/mlir/test/python/dialects/arith_llvm.py index 5645330f3174e..e2df3c2770cf2 100644 --- a/mlir/test/python/dialects/arith_llvm.py +++ b/mlir/test/python/dialects/arith_llvm.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s | FileCheck %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini from functools import partialmethod from mlir.ir import * diff --git a/mlir/test/python/dialects/async_dialect.py b/mlir/test/python/dialects/async_dialect.py index 13e3c42e57c21..f3296d7ac0752 100644 --- a/mlir/test/python/dialects/async_dialect.py +++ b/mlir/test/python/dialects/async_dialect.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s | FileCheck %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini from mlir.ir import * from mlir.dialects import arith diff --git a/mlir/test/python/dialects/builtin.py b/mlir/test/python/dialects/builtin.py index 973a0eaeca2cd..1cf948ac29f20 100644 --- a/mlir/test/python/dialects/builtin.py +++ b/mlir/test/python/dialects/builtin.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s | FileCheck %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini from mlir.ir import * import mlir.dialects.builtin as builtin diff --git a/mlir/test/python/dialects/cf.py b/mlir/test/python/dialects/cf.py index 469e74d44a7da..2292bd17b5750 100644 --- a/mlir/test/python/dialects/cf.py +++ b/mlir/test/python/dialects/cf.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s | FileCheck %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini from mlir.ir import * from mlir.dialects import cf diff --git a/mlir/test/python/dialects/complex_dialect.py b/mlir/test/python/dialects/complex_dialect.py index afad21757bc3c..3dd3cbc60c4d5 100644 --- a/mlir/test/python/dialects/complex_dialect.py +++ b/mlir/test/python/dialects/complex_dialect.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s | FileCheck %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini # Naming this file with a `_dialect` suffix to avoid a naming conflict with # python package's math module (coming in from random.py). diff --git a/mlir/test/python/dialects/emitc_dialect.py b/mlir/test/python/dialects/emitc_dialect.py index 0c42c2d4084f1..35ac7e445c490 100644 --- a/mlir/test/python/dialects/emitc_dialect.py +++ b/mlir/test/python/dialects/emitc_dialect.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s | FileCheck %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini from mlir.ir import * import mlir.dialects.emitc as emitc diff --git a/mlir/test/python/dialects/func.py b/mlir/test/python/dialects/func.py index 6b3932ce64f13..0bab9e0a0027c 100644 --- a/mlir/test/python/dialects/func.py +++ b/mlir/test/python/dialects/func.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s | FileCheck %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini from mlir.ir import * from mlir.dialects import arith diff --git a/mlir/test/python/dialects/gpu/dialect.py b/mlir/test/python/dialects/gpu/dialect.py index 26ee9f34cb332..98fc4ce404219 100644 --- a/mlir/test/python/dialects/gpu/dialect.py +++ b/mlir/test/python/dialects/gpu/dialect.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s | FileCheck %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini from mlir.ir import * import mlir.dialects.gpu as gpu diff --git a/mlir/test/python/dialects/gpu/module-to-binary-nvvm.py b/mlir/test/python/dialects/gpu/module-to-binary-nvvm.py index 96e3f6efcc5d3..17086a54f5fc1 100644 --- a/mlir/test/python/dialects/gpu/module-to-binary-nvvm.py +++ b/mlir/test/python/dialects/gpu/module-to-binary-nvvm.py @@ -1,5 +1,6 @@ # REQUIRES: host-supports-nvptx # RUN: %PYTHON %s | FileCheck %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini from mlir.ir import * import mlir.dialects.gpu as gpu diff --git a/mlir/test/python/dialects/gpu/module-to-binary-rocdl.py b/mlir/test/python/dialects/gpu/module-to-binary-rocdl.py index f5ee2856f3950..7047d41f39469 100644 --- a/mlir/test/python/dialects/gpu/module-to-binary-rocdl.py +++ b/mlir/test/python/dialects/gpu/module-to-binary-rocdl.py @@ -1,5 +1,6 @@ # REQUIRES: host-supports-amdgpu # RUN: %PYTHON %s | FileCheck %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini from mlir.ir import * import mlir.dialects.gpu as gpu diff --git a/mlir/test/python/dialects/index_dialect.py b/mlir/test/python/dialects/index_dialect.py index 9db883469792c..5c735c29c1dba 100644 --- a/mlir/test/python/dialects/index_dialect.py +++ b/mlir/test/python/dialects/index_dialect.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s | FileCheck %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini from mlir.ir import * from mlir.dialects import index, arith diff --git a/mlir/test/python/dialects/linalg/opdsl/doctests.py b/mlir/test/python/dialects/linalg/opdsl/doctests.py index d2f9cec19d570..5e4d1deeaee5b 100644 --- a/mlir/test/python/dialects/linalg/opdsl/doctests.py +++ b/mlir/test/python/dialects/linalg/opdsl/doctests.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini import doctest import importlib diff --git a/mlir/test/python/dialects/linalg/opdsl/emit_convolution.py b/mlir/test/python/dialects/linalg/opdsl/emit_convolution.py index d666d313767b9..571527b8d8c63 100644 --- a/mlir/test/python/dialects/linalg/opdsl/emit_convolution.py +++ b/mlir/test/python/dialects/linalg/opdsl/emit_convolution.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s | FileCheck %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini from mlir.ir import * from mlir.dialects import builtin diff --git a/mlir/test/python/dialects/linalg/opdsl/emit_fill.py b/mlir/test/python/dialects/linalg/opdsl/emit_fill.py index ffef737755e85..bc4f809edc60a 100644 --- a/mlir/test/python/dialects/linalg/opdsl/emit_fill.py +++ b/mlir/test/python/dialects/linalg/opdsl/emit_fill.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s | FileCheck %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini from mlir.ir import * from mlir.dialects import builtin diff --git a/mlir/test/python/dialects/linalg/opdsl/emit_matmul.py b/mlir/test/python/dialects/linalg/opdsl/emit_matmul.py index 64df4e1276222..4550707a5c6d0 100644 --- a/mlir/test/python/dialects/linalg/opdsl/emit_matmul.py +++ b/mlir/test/python/dialects/linalg/opdsl/emit_matmul.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s | FileCheck %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini from mlir.ir import * from mlir.dialects import builtin diff --git a/mlir/test/python/dialects/linalg/opdsl/emit_misc.py b/mlir/test/python/dialects/linalg/opdsl/emit_misc.py index f8e034fb0e48b..85d837cc21255 100644 --- a/mlir/test/python/dialects/linalg/opdsl/emit_misc.py +++ b/mlir/test/python/dialects/linalg/opdsl/emit_misc.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s | FileCheck %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini from mlir.ir import * from mlir.dialects import builtin diff --git a/mlir/test/python/dialects/linalg/opdsl/emit_pooling.py b/mlir/test/python/dialects/linalg/opdsl/emit_pooling.py index 4ce0fbc1dbe53..349d353fc4e7b 100644 --- a/mlir/test/python/dialects/linalg/opdsl/emit_pooling.py +++ b/mlir/test/python/dialects/linalg/opdsl/emit_pooling.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s | FileCheck %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini from mlir.ir import * from mlir.dialects import builtin diff --git a/mlir/test/python/dialects/linalg/ops.py b/mlir/test/python/dialects/linalg/ops.py index 709a1d2424f35..34a91adfbcd2d 100644 --- a/mlir/test/python/dialects/linalg/ops.py +++ b/mlir/test/python/dialects/linalg/ops.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s | FileCheck %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini from mlir.dialects import arith, func, linalg, tensor, memref from mlir.dialects.linalg.opdsl.lang import * diff --git a/mlir/test/python/dialects/linalg/utils.py b/mlir/test/python/dialects/linalg/utils.py index 5f7cb6a6c83cb..f19d77cfaac98 100644 --- a/mlir/test/python/dialects/linalg/utils.py +++ b/mlir/test/python/dialects/linalg/utils.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini from mlir.dialects import arith, func, linalg from mlir.dialects.linalg.opdsl.lang import * diff --git a/mlir/test/python/dialects/llvm.py b/mlir/test/python/dialects/llvm.py index d9ffdeb65bfd4..35333987269d5 100644 --- a/mlir/test/python/dialects/llvm.py +++ b/mlir/test/python/dialects/llvm.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s | FileCheck %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini # This is just a smoke test that the dialect is functional. from mlir.ir import * diff --git a/mlir/test/python/dialects/math_dialect.py b/mlir/test/python/dialects/math_dialect.py index 3d402c54a11e3..1ea8971310468 100644 --- a/mlir/test/python/dialects/math_dialect.py +++ b/mlir/test/python/dialects/math_dialect.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s | FileCheck %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini # Naming this file with a `_dialect` suffix to avoid a naming conflict with # python package's math module (coming in from random.py). diff --git a/mlir/test/python/dialects/memref.py b/mlir/test/python/dialects/memref.py index b91fdc367cf30..fd1c720ba0040 100644 --- a/mlir/test/python/dialects/memref.py +++ b/mlir/test/python/dialects/memref.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s | FileCheck %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini import mlir.dialects.arith as arith import mlir.dialects.memref as memref diff --git a/mlir/test/python/dialects/ml_program.py b/mlir/test/python/dialects/ml_program.py index edffcfbf0138d..9410634fd472e 100644 --- a/mlir/test/python/dialects/ml_program.py +++ b/mlir/test/python/dialects/ml_program.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s | FileCheck %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini # This is just a smoke test that the dialect is functional. from mlir.ir import * diff --git a/mlir/test/python/dialects/nvgpu.py b/mlir/test/python/dialects/nvgpu.py index 6df32bdd3c273..347e84abe7796 100644 --- a/mlir/test/python/dialects/nvgpu.py +++ b/mlir/test/python/dialects/nvgpu.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s | FileCheck %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini # This is just a smoke test that the dialect is functional. from mlir.ir import * diff --git a/mlir/test/python/dialects/nvvm.py b/mlir/test/python/dialects/nvvm.py index 3eb62bef50de9..2de61b279e058 100644 --- a/mlir/test/python/dialects/nvvm.py +++ b/mlir/test/python/dialects/nvvm.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s | FileCheck %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini # This is just a smoke test that the dialect is functional. from mlir.ir import * diff --git a/mlir/test/python/dialects/ods_helpers.py b/mlir/test/python/dialects/ods_helpers.py index 6f02153e08db5..3b6c0e3043c55 100644 --- a/mlir/test/python/dialects/ods_helpers.py +++ b/mlir/test/python/dialects/ods_helpers.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s | FileCheck %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini import gc diff --git a/mlir/test/python/dialects/openmp_ops.py b/mlir/test/python/dialects/openmp_ops.py index d136853523402..ce351149355c0 100644 --- a/mlir/test/python/dialects/openmp_ops.py +++ b/mlir/test/python/dialects/openmp_ops.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s | FileCheck %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini from mlir.ir import * from mlir.dialects.openmp import * diff --git a/mlir/test/python/dialects/pdl_ops.py b/mlir/test/python/dialects/pdl_ops.py index 95cb25c14873d..f0f1ae2841f0c 100644 --- a/mlir/test/python/dialects/pdl_ops.py +++ b/mlir/test/python/dialects/pdl_ops.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s | FileCheck %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini from mlir.ir import * from mlir.dialects.pdl import * diff --git a/mlir/test/python/dialects/pdl_types.py b/mlir/test/python/dialects/pdl_types.py index 16a41e2a4c1ce..0dfd5d7634796 100644 --- a/mlir/test/python/dialects/pdl_types.py +++ b/mlir/test/python/dialects/pdl_types.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s | FileCheck %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini from mlir.ir import * from mlir.dialects import pdl diff --git a/mlir/test/python/dialects/python_test.py b/mlir/test/python/dialects/python_test.py index 5a9acc7dcf6bb..f1d4eedb145df 100644 --- a/mlir/test/python/dialects/python_test.py +++ b/mlir/test/python/dialects/python_test.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s | FileCheck %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini import sys import typing from typing import Union, Optional diff --git a/mlir/test/python/dialects/quant.py b/mlir/test/python/dialects/quant.py index 57c528da7b9eb..e199501894669 100644 --- a/mlir/test/python/dialects/quant.py +++ b/mlir/test/python/dialects/quant.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s | FileCheck %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini import numpy as np from mlir.ir import * diff --git a/mlir/test/python/dialects/rocdl.py b/mlir/test/python/dialects/rocdl.py index a4a50afa966c7..c49224c1d7eb1 100644 --- a/mlir/test/python/dialects/rocdl.py +++ b/mlir/test/python/dialects/rocdl.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s | FileCheck %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini # This is just a smoke test that the dialect is functional. from array import array diff --git a/mlir/test/python/dialects/scf.py b/mlir/test/python/dialects/scf.py index 62d11d5e189c8..8b0a880c72428 100644 --- a/mlir/test/python/dialects/scf.py +++ b/mlir/test/python/dialects/scf.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s | FileCheck %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini from mlir.ir import * from mlir.dialects import arith diff --git a/mlir/test/python/dialects/shape.py b/mlir/test/python/dialects/shape.py index ad755852f5d37..793d2189ac69b 100644 --- a/mlir/test/python/dialects/shape.py +++ b/mlir/test/python/dialects/shape.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s | FileCheck %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini from mlir.ir import * import numpy as np diff --git a/mlir/test/python/dialects/smt.py b/mlir/test/python/dialects/smt.py index 6f0cd8835b65b..0136b0be0f03d 100644 --- a/mlir/test/python/dialects/smt.py +++ b/mlir/test/python/dialects/smt.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s | FileCheck %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini from mlir.dialects import smt, arith from mlir.ir import Context, Location, Module, InsertionPoint, F32Type diff --git a/mlir/test/python/dialects/sparse_tensor/dialect.py b/mlir/test/python/dialects/sparse_tensor/dialect.py index c72a69830a1e8..7da544ab31922 100644 --- a/mlir/test/python/dialects/sparse_tensor/dialect.py +++ b/mlir/test/python/dialects/sparse_tensor/dialect.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s | FileCheck %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini from mlir.ir import * from mlir.dialects import sparse_tensor as st, tensor diff --git a/mlir/test/python/dialects/sparse_tensor/passes.py b/mlir/test/python/dialects/sparse_tensor/passes.py index c37c5207ebd9f..baba81f538597 100644 --- a/mlir/test/python/dialects/sparse_tensor/passes.py +++ b/mlir/test/python/dialects/sparse_tensor/passes.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s | FileCheck %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini from mlir.ir import * from mlir.passmanager import * diff --git a/mlir/test/python/dialects/spirv_dialect.py b/mlir/test/python/dialects/spirv_dialect.py index d5b9e6cedb5d3..5394873627713 100644 --- a/mlir/test/python/dialects/spirv_dialect.py +++ b/mlir/test/python/dialects/spirv_dialect.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s | FileCheck %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini from mlir.ir import * import mlir.dialects.spirv as spirv diff --git a/mlir/test/python/dialects/tensor.py b/mlir/test/python/dialects/tensor.py index ca9066b239111..c09a4e23b8b67 100644 --- a/mlir/test/python/dialects/tensor.py +++ b/mlir/test/python/dialects/tensor.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s | FileCheck %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini from mlir.ir import * import mlir.dialects.arith as arith diff --git a/mlir/test/python/dialects/tosa.py b/mlir/test/python/dialects/tosa.py index 29f63e030ee23..2848c734429c8 100644 --- a/mlir/test/python/dialects/tosa.py +++ b/mlir/test/python/dialects/tosa.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini from mlir.ir import * import mlir.dialects.tosa as tosa diff --git a/mlir/test/python/dialects/transform.py b/mlir/test/python/dialects/transform.py index 6c5e4e5505b1c..8723abe82acdc 100644 --- a/mlir/test/python/dialects/transform.py +++ b/mlir/test/python/dialects/transform.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s | FileCheck %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini from mlir.ir import * from mlir.dialects import transform diff --git a/mlir/test/python/dialects/transform_bufferization_ext.py b/mlir/test/python/dialects/transform_bufferization_ext.py index 03b16c324a407..5cf4f13405fdc 100644 --- a/mlir/test/python/dialects/transform_bufferization_ext.py +++ b/mlir/test/python/dialects/transform_bufferization_ext.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s | FileCheck %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini from mlir.ir import * from mlir.dialects import transform diff --git a/mlir/test/python/dialects/transform_debug_ext.py b/mlir/test/python/dialects/transform_debug_ext.py index 2dfdaed343865..320011f104faf 100644 --- a/mlir/test/python/dialects/transform_debug_ext.py +++ b/mlir/test/python/dialects/transform_debug_ext.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s | FileCheck %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini from mlir.ir import * from mlir.dialects import transform diff --git a/mlir/test/python/dialects/transform_extras.py b/mlir/test/python/dialects/transform_extras.py index ea47f170cb632..1afa36e3a9064 100644 --- a/mlir/test/python/dialects/transform_extras.py +++ b/mlir/test/python/dialects/transform_extras.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s | FileCheck %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini from typing import Callable from mlir import ir diff --git a/mlir/test/python/dialects/transform_gpu_ext.py b/mlir/test/python/dialects/transform_gpu_ext.py index 17f5a6d38f8c1..fa7cd652adf34 100644 --- a/mlir/test/python/dialects/transform_gpu_ext.py +++ b/mlir/test/python/dialects/transform_gpu_ext.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s | FileCheck %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini from mlir.ir import * from mlir.dialects import transform diff --git a/mlir/test/python/dialects/transform_interpreter.py b/mlir/test/python/dialects/transform_interpreter.py index 819a3be1db9d5..a099ed499b7fa 100644 --- a/mlir/test/python/dialects/transform_interpreter.py +++ b/mlir/test/python/dialects/transform_interpreter.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s | FileCheck %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini from mlir import ir from mlir.dialects.transform import interpreter as interp diff --git a/mlir/test/python/dialects/transform_loop_ext.py b/mlir/test/python/dialects/transform_loop_ext.py index 430b33fba04c7..adf8939073743 100644 --- a/mlir/test/python/dialects/transform_loop_ext.py +++ b/mlir/test/python/dialects/transform_loop_ext.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s | FileCheck %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini from mlir.ir import * from mlir.dialects import transform diff --git a/mlir/test/python/dialects/transform_memref_ext.py b/mlir/test/python/dialects/transform_memref_ext.py index e7d871c9eac8c..8464598a35f92 100644 --- a/mlir/test/python/dialects/transform_memref_ext.py +++ b/mlir/test/python/dialects/transform_memref_ext.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s | FileCheck %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini from mlir.ir import * diff --git a/mlir/test/python/dialects/transform_nvgpu_ext.py b/mlir/test/python/dialects/transform_nvgpu_ext.py index 1de8b25bab7a5..735132d12d964 100644 --- a/mlir/test/python/dialects/transform_nvgpu_ext.py +++ b/mlir/test/python/dialects/transform_nvgpu_ext.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s | FileCheck %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini from mlir.ir import * from mlir.dialects import transform diff --git a/mlir/test/python/dialects/transform_sparse_tensor_ext.py b/mlir/test/python/dialects/transform_sparse_tensor_ext.py index e11cc6bf1e074..ae0fd9758a42d 100644 --- a/mlir/test/python/dialects/transform_sparse_tensor_ext.py +++ b/mlir/test/python/dialects/transform_sparse_tensor_ext.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s | FileCheck %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini from mlir.ir import * from mlir.dialects import transform diff --git a/mlir/test/python/dialects/transform_structured_ext.py b/mlir/test/python/dialects/transform_structured_ext.py index 8785d6d360074..999b18a8f794c 100644 --- a/mlir/test/python/dialects/transform_structured_ext.py +++ b/mlir/test/python/dialects/transform_structured_ext.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s | FileCheck %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini import functools from typing import Callable diff --git a/mlir/test/python/dialects/transform_tensor_ext.py b/mlir/test/python/dialects/transform_tensor_ext.py index a2e7aa242b9da..0b16c5ab39e9d 100644 --- a/mlir/test/python/dialects/transform_tensor_ext.py +++ b/mlir/test/python/dialects/transform_tensor_ext.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s | FileCheck %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini from mlir.ir import * from mlir.dialects import transform diff --git a/mlir/test/python/dialects/transform_tune_ext.py b/mlir/test/python/dialects/transform_tune_ext.py index eb2a083211ef7..2a9c7a49b4627 100644 --- a/mlir/test/python/dialects/transform_tune_ext.py +++ b/mlir/test/python/dialects/transform_tune_ext.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s | FileCheck %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini from mlir import ir from mlir.dialects import transform diff --git a/mlir/test/python/dialects/transform_vector_ext.py b/mlir/test/python/dialects/transform_vector_ext.py index 0cd9333dc1218..1095a54fa9d69 100644 --- a/mlir/test/python/dialects/transform_vector_ext.py +++ b/mlir/test/python/dialects/transform_vector_ext.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s | FileCheck %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini from mlir.ir import * from mlir.dialects import transform diff --git a/mlir/test/python/dialects/ub.py b/mlir/test/python/dialects/ub.py index 0d88da82c5e7b..80064643b2e0d 100644 --- a/mlir/test/python/dialects/ub.py +++ b/mlir/test/python/dialects/ub.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s | FileCheck %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini # This is just a smoke test that the dialect is functional. from array import array diff --git a/mlir/test/python/dialects/vector.py b/mlir/test/python/dialects/vector.py index 77eaf94a830d9..0e2d9da1cc506 100644 --- a/mlir/test/python/dialects/vector.py +++ b/mlir/test/python/dialects/vector.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s | FileCheck %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini from mlir.ir import * import mlir.dialects.builtin as builtin diff --git a/mlir/test/python/execution_engine.py b/mlir/test/python/execution_engine.py index d569fcef32bfd..d7b1952270f99 100644 --- a/mlir/test/python/execution_engine.py +++ b/mlir/test/python/execution_engine.py @@ -1,4 +1,5 @@ # RUN: env MLIR_RUNNER_UTILS=%mlir_runner_utils MLIR_C_RUNNER_UTILS=%mlir_c_runner_utils %PYTHON %s 2>&1 | FileCheck %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini # REQUIRES: host-supports-jit import gc, sys, os, tempfile from mlir.ir import * diff --git a/mlir/test/python/global_constructors.py b/mlir/test/python/global_constructors.py index 5020c00344a33..c06155f1cc075 100644 --- a/mlir/test/python/global_constructors.py +++ b/mlir/test/python/global_constructors.py @@ -1,5 +1,6 @@ # UNSUPPORTED: target=aarch64{{.*}}, target=arm64{{.*}} # RUN: %PYTHON %s 2>&1 | FileCheck %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini # REQUIRES: host-supports-jit import gc, sys, os, tempfile from mlir.ir import * diff --git a/mlir/test/python/integration/dialects/linalg/opsrun.py b/mlir/test/python/integration/dialects/linalg/opsrun.py index 8f202318146ee..3b2bdb9771eb6 100644 --- a/mlir/test/python/integration/dialects/linalg/opsrun.py +++ b/mlir/test/python/integration/dialects/linalg/opsrun.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s 2>&1 | FileCheck %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini import ctypes import sys diff --git a/mlir/test/python/integration/dialects/pdl.py b/mlir/test/python/integration/dialects/pdl.py index fe27dd4203a21..546ab1dc54ce9 100644 --- a/mlir/test/python/integration/dialects/pdl.py +++ b/mlir/test/python/integration/dialects/pdl.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s 2>&1 | FileCheck %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini from mlir.dialects import arith, func, pdl from mlir.dialects.builtin import module diff --git a/mlir/test/python/integration/dialects/transform.py b/mlir/test/python/integration/dialects/transform.py index 303274a8f8828..4d004e0d64549 100644 --- a/mlir/test/python/integration/dialects/transform.py +++ b/mlir/test/python/integration/dialects/transform.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s 2>&1 | FileCheck %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini from mlir.passmanager import PassManager from mlir.ir import Context, Location, Module, InsertionPoint, UnitAttr diff --git a/mlir/test/python/ir/affine_expr.py b/mlir/test/python/ir/affine_expr.py index c2a2ab3509ca6..f4bbb8a683820 100644 --- a/mlir/test/python/ir/affine_expr.py +++ b/mlir/test/python/ir/affine_expr.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s | FileCheck %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini import gc from mlir.ir import * diff --git a/mlir/test/python/ir/affine_map.py b/mlir/test/python/ir/affine_map.py index 672335e9bf8a7..3ec7856df7221 100644 --- a/mlir/test/python/ir/affine_map.py +++ b/mlir/test/python/ir/affine_map.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s | FileCheck %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini import gc from mlir.ir import * diff --git a/mlir/test/python/ir/array_attributes.py b/mlir/test/python/ir/array_attributes.py index 66f7ec8e7fff1..317413012b1dc 100644 --- a/mlir/test/python/ir/array_attributes.py +++ b/mlir/test/python/ir/array_attributes.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s | FileCheck %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini # Note that this is separate from ir_attributes.py since it depends on numpy, # and we may want to disable if not available. diff --git a/mlir/test/python/ir/attributes.py b/mlir/test/python/ir/attributes.py index 2f3c4460d3f59..9fc68b239cf27 100644 --- a/mlir/test/python/ir/attributes.py +++ b/mlir/test/python/ir/attributes.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s | FileCheck %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini import gc diff --git a/mlir/test/python/ir/auto_location.py b/mlir/test/python/ir/auto_location.py index 83168901341a8..e9844e5aa69c9 100644 --- a/mlir/test/python/ir/auto_location.py +++ b/mlir/test/python/ir/auto_location.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s | FileCheck %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini # REQUIRES: python-ge-311 import gc from contextlib import contextmanager diff --git a/mlir/test/python/ir/blocks.py b/mlir/test/python/ir/blocks.py index ced5fce434728..49c636c3549ba 100644 --- a/mlir/test/python/ir/blocks.py +++ b/mlir/test/python/ir/blocks.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s | FileCheck %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini import gc diff --git a/mlir/test/python/ir/builtin_types.py b/mlir/test/python/ir/builtin_types.py index 54863253fc770..3273ed2dabe40 100644 --- a/mlir/test/python/ir/builtin_types.py +++ b/mlir/test/python/ir/builtin_types.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s | FileCheck %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini import gc from mlir.ir import * diff --git a/mlir/test/python/ir/context_lifecycle.py b/mlir/test/python/ir/context_lifecycle.py index 230db8277c8e7..17839482a00b0 100644 --- a/mlir/test/python/ir/context_lifecycle.py +++ b/mlir/test/python/ir/context_lifecycle.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini # Standalone sanity check of context life-cycle. import gc import mlir.ir diff --git a/mlir/test/python/ir/context_managers.py b/mlir/test/python/ir/context_managers.py index 5d9f9ceee97f3..11b4f07d1ef46 100644 --- a/mlir/test/python/ir/context_managers.py +++ b/mlir/test/python/ir/context_managers.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s | FileCheck %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini import gc from mlir.ir import * diff --git a/mlir/test/python/ir/debug.py b/mlir/test/python/ir/debug.py index 629a710e68585..cd8d3726a8f36 100644 --- a/mlir/test/python/ir/debug.py +++ b/mlir/test/python/ir/debug.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s | FileCheck %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini from mlir.ir import * diff --git a/mlir/test/python/ir/diagnostic_handler.py b/mlir/test/python/ir/diagnostic_handler.py index 6d273e5092e42..d67bcbd4b1449 100644 --- a/mlir/test/python/ir/diagnostic_handler.py +++ b/mlir/test/python/ir/diagnostic_handler.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s | FileCheck %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini import gc from mlir.ir import * diff --git a/mlir/test/python/ir/dialects.py b/mlir/test/python/ir/dialects.py index 5a2ed684d298b..3cf2a072d7e33 100644 --- a/mlir/test/python/ir/dialects.py +++ b/mlir/test/python/ir/dialects.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s | FileCheck %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini import gc import sys diff --git a/mlir/test/python/ir/exception.py b/mlir/test/python/ir/exception.py index 74085cd349643..a876f52f37d34 100644 --- a/mlir/test/python/ir/exception.py +++ b/mlir/test/python/ir/exception.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s | FileCheck %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini import gc from mlir.ir import * diff --git a/mlir/test/python/ir/insertion_point.py b/mlir/test/python/ir/insertion_point.py index f48beb25f04b2..9d99ec1e2e144 100644 --- a/mlir/test/python/ir/insertion_point.py +++ b/mlir/test/python/ir/insertion_point.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s | FileCheck %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini import gc from mlir.ir import * diff --git a/mlir/test/python/ir/integer_set.py b/mlir/test/python/ir/integer_set.py index 9fe0480c33a2a..0f17c9c872b8d 100644 --- a/mlir/test/python/ir/integer_set.py +++ b/mlir/test/python/ir/integer_set.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s | FileCheck %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini import gc from mlir.ir import * diff --git a/mlir/test/python/ir/location.py b/mlir/test/python/ir/location.py index 3e54dc922cd67..408d3ac3221d9 100644 --- a/mlir/test/python/ir/location.py +++ b/mlir/test/python/ir/location.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s | FileCheck %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini import gc from mlir.ir import * diff --git a/mlir/test/python/ir/module.py b/mlir/test/python/ir/module.py index 33959bea9ffb6..b2973102c76d6 100644 --- a/mlir/test/python/ir/module.py +++ b/mlir/test/python/ir/module.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s | FileCheck %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini import gc from tempfile import NamedTemporaryFile diff --git a/mlir/test/python/ir/operation.py b/mlir/test/python/ir/operation.py index cb4cfc8c8a6ec..af777c3c8a4ed 100644 --- a/mlir/test/python/ir/operation.py +++ b/mlir/test/python/ir/operation.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s | FileCheck %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini import gc import io diff --git a/mlir/test/python/ir/symbol_table.py b/mlir/test/python/ir/symbol_table.py index 99d5fadfea10a..6abb88e48228a 100644 --- a/mlir/test/python/ir/symbol_table.py +++ b/mlir/test/python/ir/symbol_table.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s | FileCheck %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini import gc import io diff --git a/mlir/test/python/ir/value.py b/mlir/test/python/ir/value.py index 4a241afb8e89d..ff4142b6d6be7 100644 --- a/mlir/test/python/ir/value.py +++ b/mlir/test/python/ir/value.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s | FileCheck %s --enable-var-scope=false +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini import gc from mlir.ir import * diff --git a/mlir/test/python/live_operations.py b/mlir/test/python/live_operations.py index 892ed1715f6c7..bda727e25e796 100644 --- a/mlir/test/python/live_operations.py +++ b/mlir/test/python/live_operations.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini # It is sufficient that this doesn't assert. from mlir.ir import * diff --git a/mlir/test/python/multithreaded_tests.py b/mlir/test/python/multithreaded_tests.py index 6e1a668346872..420d32aa58c29 100644 --- a/mlir/test/python/multithreaded_tests.py +++ b/mlir/test/python/multithreaded_tests.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini """ This script generates multi-threaded tests to check free-threading mode using CPython compiled with TSAN. Tests can be run using pytest: diff --git a/mlir/test/python/mypy.ini b/mlir/test/python/mypy.ini new file mode 100644 index 0000000000000..3b6d904b687dd --- /dev/null +++ b/mlir/test/python/mypy.ini @@ -0,0 +1,3 @@ +[mypy] +strict = True +pretty = True diff --git a/mlir/test/python/pass_manager.py b/mlir/test/python/pass_manager.py index 5f92f5b52a09a..3526cec7fb6e0 100644 --- a/mlir/test/python/pass_manager.py +++ b/mlir/test/python/pass_manager.py @@ -1,4 +1,5 @@ # RUN: %PYTHON %s 2>&1 | FileCheck %s +# RUN: %PYTHON -m mypy %s --config-file %mlir_src_root/test/python/mypy.ini import gc, os, sys, tempfile from mlir.ir import *