summaryrefslogtreecommitdiff
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
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
-rw-r--r--.github/workflows/unit_tests.yaml4
-rw-r--r--.mypy.ini35
-rw-r--r--pyproject.toml44
3 files changed, 46 insertions, 37 deletions
diff --git a/.github/workflows/unit_tests.yaml b/.github/workflows/unit_tests.yaml
index 365716c02a..b454c7d935 100644
--- a/.github/workflows/unit_tests.yaml
+++ b/.github/workflows/unit_tests.yaml
@@ -39,7 +39,7 @@ jobs:
python-version: 3.9
- name: Install Python packages
run: |
- pip install --upgrade pip six setuptools flake8 isort>=4.3.5 mypy>=0.800 black types-six
+ pip install --upgrade pip six setuptools flake8 isort>=4.3.5 mypy>=0.900 black types-six
- name: Setup git configuration
run: |
# Need this for the git tests to succeed.
@@ -370,7 +370,7 @@ jobs:
run: |
pip install --upgrade pip six setuptools
pip install --upgrade codecov coverage
- pip install --upgrade flake8 isort>=4.3.5 mypy>=0.800
+ pip install --upgrade flake8 isort>=4.3.5 mypy>=0.900
- name: Setup Homebrew packages
run: |
brew install dash fish gcc gnupg2 kcov
diff --git a/.mypy.ini b/.mypy.ini
deleted file mode 100644
index 4257b1bd3f..0000000000
--- a/.mypy.ini
+++ /dev/null
@@ -1,35 +0,0 @@
-[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
-
-[mypy-spack.*]
-ignore_errors=False
-ignore_missing_imports=False
-
-[mypy-packages.*]
-ignore_errors=False
-ignore_missing_imports=False
-
-[mypy-llnl.*]
-ignore_errors=False
-ignore_missing_imports=False
-
-[mypy-spack.test.packages]
-ignore_errors=True
-
-# ignore errors in fake import path for packages
-[mypy-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
-[mypy-jinja2]
-follow_imports=skip
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'