summaryrefslogtreecommitdiff
path: root/pyproject.toml
diff options
context:
space:
mode:
authorTodd Gamblin <gamblin2@llnl.gov>2021-07-09 02:52:23 -0700
committerGitHub <noreply@github.com>2021-07-09 11:52:23 +0200
commiteff7f20118a3334fede8d8aff506afa98f7ec5de (patch)
treee5382b597956b4a6d2417b884b2eea5d6873bc80 /pyproject.toml
parent3fb5c139836d3602fa07091b62ae94ec4b4feb21 (diff)
downloadspack-eff7f20118a3334fede8d8aff506afa98f7ec5de.tar.gz
spack-eff7f20118a3334fede8d8aff506afa98f7ec5de.tar.bz2
spack-eff7f20118a3334fede8d8aff506afa98f7ec5de.tar.xz
spack-eff7f20118a3334fede8d8aff506afa98f7ec5de.zip
mypy: move configuration to pyproject.toml (#24802)
This moves our `mypy` configuration from `.mypy.ini` to `.pyproject.toml` and increases the minimum `mypy` version in the tests. - [x] move `mypy` configuration to `pyproject.toml` - [x] remove `.mypy.ini` - [x] ensure that `mypy` version .900 or higher is used in tests
Diffstat (limited to 'pyproject.toml')
-rw-r--r--pyproject.toml44
1 files changed, 44 insertions, 0 deletions
diff --git a/pyproject.toml b/pyproject.toml
index fc8dd4e428..74b7ec8e1e 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -12,3 +12,47 @@ known_archspec = "archspec"
known_llnl = "llnl"
src_paths = "lib"
honor_noqa = true
+
+[tool.mypy]
+python_version = 3.7
+files = ['lib/spack/llnl/**/*.py', 'lib/spack/spack/**/*.py']
+mypy_path = ['bin', 'lib/spack', 'lib/spack/external', 'var/spack/repos/builtin']
+
+# This and a generated import file allows supporting packages
+namespace_packages = true
+
+# To avoid re-factoring all the externals, ignore errors and missing imports
+# globally, then turn back on in spack and spack submodules
+ignore_errors = true
+ignore_missing_imports = true
+
+[[tool.mypy.overrides]]
+module = 'spack.*'
+ignore_errors = false
+ignore_missing_imports = false
+
+[[tool.mypy.overrides]]
+module = 'packages.*'
+ignore_errors = false
+ignore_missing_imports = false
+
+[[tool.mypy.overrides]]
+module = 'llnl.*'
+ignore_errors = false
+ignore_missing_imports = false
+
+[[tool.mypy.overrides]]
+module = 'spack.test.packages'
+ignore_errors = true
+
+# ignore errors in fake import path for packages
+[[tool.mypy.overrides]]
+module = 'spack.pkg.*'
+ignore_errors = true
+ignore_missing_imports = true
+
+# jinja has syntax in it that requires python3 and causes a parse error
+# skip importing it
+[[tool.mypy.overrides]]
+module = 'jinja2'
+follow_imports = 'skip'