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
This commit is contained in:
parent
3fb5c13983
commit
eff7f20118
3 changed files with 46 additions and 37 deletions
4
.github/workflows/unit_tests.yaml
vendored
4
.github/workflows/unit_tests.yaml
vendored
|
@ -39,7 +39,7 @@ jobs:
|
||||||
python-version: 3.9
|
python-version: 3.9
|
||||||
- name: Install Python packages
|
- name: Install Python packages
|
||||||
run: |
|
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
|
- name: Setup git configuration
|
||||||
run: |
|
run: |
|
||||||
# Need this for the git tests to succeed.
|
# Need this for the git tests to succeed.
|
||||||
|
@ -370,7 +370,7 @@ jobs:
|
||||||
run: |
|
run: |
|
||||||
pip install --upgrade pip six setuptools
|
pip install --upgrade pip six setuptools
|
||||||
pip install --upgrade codecov coverage
|
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
|
- name: Setup Homebrew packages
|
||||||
run: |
|
run: |
|
||||||
brew install dash fish gcc gnupg2 kcov
|
brew install dash fish gcc gnupg2 kcov
|
||||||
|
|
35
.mypy.ini
35
.mypy.ini
|
@ -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
|
|
|
@ -12,3 +12,47 @@ known_archspec = "archspec"
|
||||||
known_llnl = "llnl"
|
known_llnl = "llnl"
|
||||||
src_paths = "lib"
|
src_paths = "lib"
|
||||||
honor_noqa = true
|
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'
|
||||||
|
|
Loading…
Reference in a new issue