diff options
author | Todd Gamblin <gamblin2@llnl.gov> | 2021-07-09 02:52:23 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-07-09 11:52:23 +0200 |
commit | eff7f20118a3334fede8d8aff506afa98f7ec5de (patch) | |
tree | e5382b597956b4a6d2417b884b2eea5d6873bc80 | |
parent | 3fb5c139836d3602fa07091b62ae94ec4b4feb21 (diff) | |
download | spack-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.yaml | 4 | ||||
-rw-r--r-- | .mypy.ini | 35 | ||||
-rw-r--r-- | pyproject.toml | 44 |
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' |