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'