2021-07-06 04:43:52 +00:00
|
|
|
[tool.black]
|
|
|
|
line-length = 99
|
|
|
|
target-version = ['py27', 'py35', 'py36', 'py37', 'py38', 'py39', 'py310']
|
|
|
|
include = '''
|
|
|
|
\.pyi?$
|
|
|
|
'''
|
|
|
|
extend-exclude = '''
|
|
|
|
/(
|
|
|
|
\.git
|
|
|
|
| \.mypy_cache
|
|
|
|
| ^lib/spack/external/
|
|
|
|
| ^opt/
|
|
|
|
)/
|
|
|
|
'''
|
|
|
|
|
2021-07-04 08:51:46 +00:00
|
|
|
[tool.isort]
|
|
|
|
profile = "black"
|
|
|
|
sections = [
|
|
|
|
"FUTURE",
|
|
|
|
"STDLIB",
|
|
|
|
"THIRDPARTY",
|
|
|
|
"ARCHSPEC", "LLNL", "FIRSTPARTY",
|
|
|
|
"LOCALFOLDER",
|
|
|
|
]
|
|
|
|
known_first_party = "spack"
|
|
|
|
known_archspec = "archspec"
|
|
|
|
known_llnl = "llnl"
|
2022-01-21 20:32:52 +00:00
|
|
|
known_third_party = ["ruamel", "six"]
|
2021-07-04 08:51:46 +00:00
|
|
|
src_paths = "lib"
|
|
|
|
honor_noqa = true
|
2021-07-09 09:52:23 +00:00
|
|
|
|
|
|
|
[tool.mypy]
|
|
|
|
python_version = 3.7
|
2022-05-28 16:55:44 +00:00
|
|
|
files = ['lib/spack/llnl/**/*.py', 'lib/spack/spack/**/*.py', './var/spack/repos/builtin/packages/*/package.py']
|
2021-07-09 09:52:23 +00:00
|
|
|
mypy_path = ['bin', 'lib/spack', 'lib/spack/external', 'var/spack/repos/builtin']
|
2022-05-28 16:55:44 +00:00
|
|
|
allow_redefinition = true
|
2021-07-09 09:52:23 +00:00
|
|
|
|
|
|
|
# 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
|
|
|
|
|
2021-07-10 05:49:47 +00:00
|
|
|
[[tool.mypy.overrides]]
|
|
|
|
module = 'spack.*'
|
|
|
|
ignore_errors = false
|
|
|
|
ignore_missing_imports = false
|
|
|
|
|
|
|
|
[[tool.mypy.overrides]]
|
|
|
|
module = 'packages.*'
|
|
|
|
ignore_errors = false
|
|
|
|
ignore_missing_imports = false
|
2022-05-28 16:55:44 +00:00
|
|
|
# we can't do this here, not a module scope option, in spack style instead
|
|
|
|
# disable_error_code = 'no-redef'
|
2021-07-10 05:49:47 +00:00
|
|
|
|
|
|
|
[[tool.mypy.overrides]]
|
|
|
|
module = 'llnl.*'
|
|
|
|
ignore_errors = false
|
|
|
|
ignore_missing_imports = false
|
|
|
|
|
|
|
|
[[tool.mypy.overrides]]
|
|
|
|
module = 'spack.test.packages'
|
|
|
|
ignore_errors = true
|
2021-07-09 09:52:23 +00:00
|
|
|
|
2021-07-10 05:49:47 +00:00
|
|
|
# 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'
|
|
|
|
|
2022-05-28 16:55:44 +00:00
|
|
|
[tool.pyright]
|
|
|
|
useLibraryCodeForTypes = true
|
|
|
|
reportMissingImports = true
|
|
|
|
reportWildcardImportFromLibrary = false
|
|
|
|
include = ['lib/spack']
|
|
|
|
ignore = ['lib/spack/external']
|
|
|
|
extraPaths = ['lib/spack', 'lib/spack/external']
|
|
|
|
|
|
|
|
|
2021-07-10 05:49:47 +00:00
|
|
|
[tool.coverage.run]
|
|
|
|
parallel = true
|
|
|
|
concurrency = ["multiprocessing"]
|
|
|
|
branch = true
|
|
|
|
source = ["bin", "lib"]
|
2022-09-10 13:25:44 +00:00
|
|
|
data_file = "./tests-coverage/.coverage"
|
2021-07-10 05:49:47 +00:00
|
|
|
omit = [
|
|
|
|
'lib/spack/spack/test/*',
|
|
|
|
'lib/spack/docs/*',
|
|
|
|
'lib/spack/external/*',
|
|
|
|
'share/spack/qa/*',
|
|
|
|
]
|
|
|
|
|
|
|
|
[tool.coverage.report]
|
|
|
|
# Regexes for lines to exclude from consideration
|
|
|
|
exclude_lines = [
|
|
|
|
# Have to re-enable the standard pragma
|
|
|
|
'pragma: no cover',
|
|
|
|
|
|
|
|
# Don't complain about missing debug-only code:
|
|
|
|
'def __repr__',
|
|
|
|
'if self\.debug',
|
|
|
|
|
|
|
|
# Don't complain if tests don't hit defensive assertion code:
|
|
|
|
'raise AssertionError',
|
|
|
|
'raise NotImplementedError',
|
|
|
|
|
|
|
|
# Don't complain if non-runnable code isn't run:
|
|
|
|
'if 0:',
|
|
|
|
'if False:',
|
|
|
|
'if __name__ == .__main__.:',
|
|
|
|
]
|
2021-07-09 09:52:23 +00:00
|
|
|
ignore_errors = true
|
|
|
|
|
2021-07-10 05:49:47 +00:00
|
|
|
[tool.coverage.html]
|
|
|
|
directory = "htmlcov"
|