From eff7f20118a3334fede8d8aff506afa98f7ec5de Mon Sep 17 00:00:00 2001 From: Todd Gamblin Date: Fri, 9 Jul 2021 02:52:23 -0700 Subject: 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 --- .github/workflows/unit_tests.yaml | 4 ++-- .mypy.ini | 35 ------------------------------- pyproject.toml | 44 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 46 insertions(+), 37 deletions(-) delete mode 100644 .mypy.ini 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' -- cgit v1.2.3-60-g2f50