| 
									
										
										
										
											2022-11-07 15:00:22 -08:00
										 |  |  | [project] | 
					
						
							|  |  |  | name="spack" | 
					
						
							|  |  |  | description="The spack package manager" | 
					
						
							|  |  |  | dependencies=[ | 
					
						
							|  |  |  |   "clingo", | 
					
						
							|  |  |  |   "setuptools", | 
					
						
							|  |  |  | ] | 
					
						
							|  |  |  | dynamic = ["version"] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [project.scripts] | 
					
						
							|  |  |  | spack = "lib.spack.spack_installable.main:main" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [tool.hatch.version] | 
					
						
							|  |  |  | path = "lib/spack/spack/__init__.py" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [project.optional-dependencies] | 
					
						
							|  |  |  | dev = [ | 
					
						
							|  |  |  |   "pip>=21.3", | 
					
						
							|  |  |  |   "pytest", | 
					
						
							|  |  |  |   "pytest-xdist", | 
					
						
							|  |  |  |   "setuptools", | 
					
						
							| 
									
										
										
										
											2022-11-16 15:39:33 +01:00
										 |  |  |   "click", | 
					
						
							|  |  |  |   'black', | 
					
						
							| 
									
										
										
										
											2022-11-07 15:00:22 -08:00
										 |  |  |   "mypy", | 
					
						
							|  |  |  |   "isort", | 
					
						
							|  |  |  |   "flake8", | 
					
						
							|  |  |  |   "vermin", | 
					
						
							|  |  |  | ] | 
					
						
							|  |  |  | ci = [ | 
					
						
							|  |  |  |   "pytest-cov", | 
					
						
							|  |  |  |   "codecov[toml]", | 
					
						
							|  |  |  | ] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [build-system] | 
					
						
							|  |  |  | requires = ["hatchling"] | 
					
						
							|  |  |  | build-backend = "hatchling.build" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [tool.hatch.build.targets.wheel] | 
					
						
							|  |  |  | include = [ | 
					
						
							|  |  |  |   "/bin", | 
					
						
							|  |  |  |   "/etc", | 
					
						
							|  |  |  |   "/lib", | 
					
						
							|  |  |  |   "/share", | 
					
						
							|  |  |  |   "/var", | 
					
						
							|  |  |  |   "CITATION.cff", | 
					
						
							|  |  |  |   "COPYRIGHT", | 
					
						
							|  |  |  |   "LICENSE-APACHE", | 
					
						
							|  |  |  |   "LICENSE-MIT", | 
					
						
							|  |  |  |   "NOTICE", | 
					
						
							|  |  |  |   "README.md", | 
					
						
							|  |  |  |   "SECURITY.md", | 
					
						
							|  |  |  | ] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [tool.hatch.envs.default] | 
					
						
							|  |  |  | features = [ | 
					
						
							|  |  |  |   "dev", | 
					
						
							|  |  |  | ] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [tool.hatch.envs.default.scripts] | 
					
						
							|  |  |  | spack = "./bin/spack" | 
					
						
							|  |  |  | style = "./bin/spack style" | 
					
						
							|  |  |  | test = "./bin/spack unit-test" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [tool.hatch.envs.ci] | 
					
						
							|  |  |  | features = [ | 
					
						
							|  |  |  |   "dev", | 
					
						
							|  |  |  |   "ci", | 
					
						
							|  |  |  | ] | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-07-05 21:43:52 -07:00
										 |  |  | [tool.black] | 
					
						
							|  |  |  | line-length = 99 | 
					
						
							| 
									
										
										
										
											2022-11-14 13:11:28 +01:00
										 |  |  | target-version = ['py36', 'py37', 'py38', 'py39', 'py310'] | 
					
						
							| 
									
										
										
										
											2021-07-05 21:43:52 -07:00
										 |  |  | include = ''' | 
					
						
							|  |  |  |     \.pyi?$ | 
					
						
							|  |  |  | ''' | 
					
						
							|  |  |  | extend-exclude = ''' | 
					
						
							|  |  |  | /( | 
					
						
							|  |  |  |     \.git | 
					
						
							|  |  |  |   | \.mypy_cache | 
					
						
							|  |  |  |   | ^lib/spack/external/ | 
					
						
							|  |  |  |   | ^opt/ | 
					
						
							|  |  |  | )/ | 
					
						
							|  |  |  | ''' | 
					
						
							| 
									
										
										
										
											2023-02-16 22:06:12 -07:00
										 |  |  | skip_magic_trailing_comma = true | 
					
						
							| 
									
										
										
										
											2021-07-05 21:43:52 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-07-04 01:51:46 -07:00
										 |  |  | [tool.isort] | 
					
						
							| 
									
										
										
										
											2023-02-16 22:06:12 -07:00
										 |  |  | line_length = 99 | 
					
						
							| 
									
										
										
										
											2021-07-04 01:51:46 -07:00
										 |  |  | profile = "black" | 
					
						
							|  |  |  | sections = [ | 
					
						
							|  |  |  |   "FUTURE", | 
					
						
							|  |  |  |   "STDLIB", | 
					
						
							|  |  |  |   "THIRDPARTY", | 
					
						
							|  |  |  |   "ARCHSPEC", "LLNL", "FIRSTPARTY", | 
					
						
							|  |  |  |   "LOCALFOLDER", | 
					
						
							|  |  |  | ] | 
					
						
							|  |  |  | known_first_party = "spack" | 
					
						
							|  |  |  | known_archspec = "archspec" | 
					
						
							|  |  |  | known_llnl = "llnl" | 
					
						
							| 
									
										
										
										
											2022-01-21 15:32:52 -05:00
										 |  |  | known_third_party = ["ruamel", "six"] | 
					
						
							| 
									
										
										
										
											2021-07-04 01:51:46 -07:00
										 |  |  | src_paths = "lib" | 
					
						
							|  |  |  | honor_noqa = true | 
					
						
							| 
									
										
										
										
											2021-07-09 02:52:23 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | [tool.mypy] | 
					
						
							|  |  |  | python_version = 3.7 | 
					
						
							| 
									
										
										
										
											2022-05-28 09:55:44 -07:00
										 |  |  | files = ['lib/spack/llnl/**/*.py', 'lib/spack/spack/**/*.py', './var/spack/repos/builtin/packages/*/package.py'] | 
					
						
							| 
									
										
										
										
											2021-07-09 02:52:23 -07:00
										 |  |  | mypy_path = ['bin', 'lib/spack', 'lib/spack/external', 'var/spack/repos/builtin'] | 
					
						
							| 
									
										
										
										
											2022-05-28 09:55:44 -07:00
										 |  |  | allow_redefinition = true | 
					
						
							| 
									
										
										
										
											2021-07-09 02:52:23 -07: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-09 22:49:47 -07: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 09:55:44 -07:00
										 |  |  |   # we can't do this here, not a module scope option, in spack style instead | 
					
						
							|  |  |  |   # disable_error_code = 'no-redef' | 
					
						
							| 
									
										
										
										
											2021-07-09 22:49:47 -07: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 02:52:23 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-07-09 22:49:47 -07:00
										 |  |  |   # ignore errors in fake import path for packages | 
					
						
							|  |  |  |   [[tool.mypy.overrides]] | 
					
						
							|  |  |  |   module = 'spack.pkg.*' | 
					
						
							|  |  |  |   ignore_errors = true | 
					
						
							|  |  |  |   ignore_missing_imports = true | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-12-31 17:05:17 -08:00
										 |  |  |   # pytest (which we depend on) optionally imports numpy, which requires Python 3.8 in | 
					
						
							|  |  |  |   # recent versions. mypy still imports its .pyi file, which has positional-only | 
					
						
							|  |  |  |   # arguments, which don't work in 3.7, which causes mypy to bail out early if you have | 
					
						
							|  |  |  |   # numpy installed. | 
					
						
							| 
									
										
										
										
											2021-07-09 22:49:47 -07:00
										 |  |  |   [[tool.mypy.overrides]] | 
					
						
							| 
									
										
										
										
											2022-12-31 17:05:17 -08:00
										 |  |  |   module = 'numpy' | 
					
						
							| 
									
										
										
										
											2021-07-09 22:49:47 -07:00
										 |  |  |   follow_imports = 'skip' | 
					
						
							| 
									
										
										
										
											2022-12-31 17:05:17 -08:00
										 |  |  |   follow_imports_for_stubs = true | 
					
						
							| 
									
										
										
										
											2021-07-09 22:49:47 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-05-28 09:55:44 -07:00
										 |  |  | [tool.pyright] | 
					
						
							|  |  |  | useLibraryCodeForTypes = true | 
					
						
							|  |  |  | reportMissingImports = true | 
					
						
							|  |  |  | reportWildcardImportFromLibrary = false | 
					
						
							|  |  |  | include = ['lib/spack'] | 
					
						
							|  |  |  | ignore = ['lib/spack/external'] | 
					
						
							|  |  |  | extraPaths = ['lib/spack', 'lib/spack/external'] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-07-09 22:49:47 -07:00
										 |  |  | [tool.coverage.run] | 
					
						
							|  |  |  | parallel = true | 
					
						
							|  |  |  | concurrency = ["multiprocessing"] | 
					
						
							|  |  |  | branch = true | 
					
						
							|  |  |  | source = ["bin", "lib"] | 
					
						
							| 
									
										
										
										
											2022-09-10 15:25:44 +02:00
										 |  |  | data_file = "./tests-coverage/.coverage" | 
					
						
							| 
									
										
										
										
											2021-07-09 22:49:47 -07: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 02:52:23 -07:00
										 |  |  | ignore_errors = true | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-07-09 22:49:47 -07:00
										 |  |  | [tool.coverage.html] | 
					
						
							|  |  |  | directory = "htmlcov" | 
					
						
							| 
									
										
										
										
											2022-11-16 15:39:33 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | [tool.vendoring] | 
					
						
							|  |  |  | destination = "lib/spack/external/_vendoring" | 
					
						
							|  |  |  | requirements = "lib/spack/external/vendor.txt" | 
					
						
							|  |  |  | namespace = "" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | protected-files = ["__init__.py", "README.rst", "vendor.txt"] | 
					
						
							|  |  |  | patches-dir = "lib/spack/external/patches" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [tool.vendoring.transformations] | 
					
						
							|  |  |  | substitute = [ | 
					
						
							|  |  |  | ] | 
					
						
							|  |  |  | drop = [ | 
					
						
							|  |  |  |   # contains unnecessary scripts | 
					
						
							|  |  |  |   "bin/", | 
					
						
							|  |  |  |   # interpreter and OS specific msgpack libs | 
					
						
							|  |  |  |   "msgpack/*.so", | 
					
						
							|  |  |  |   # unneeded parts of setuptools | 
					
						
							|  |  |  |   "easy_install.py", | 
					
						
							|  |  |  |   "setuptools", | 
					
						
							|  |  |  |   "pkg_resources/_vendor/", | 
					
						
							|  |  |  |   "pkg_resources/extern/", | 
					
						
							|  |  |  |   # trim vendored pygments styles and lexers | 
					
						
							|  |  |  |   "pygments/styles/[!_]*.py", | 
					
						
							|  |  |  |   '^pygments/lexers/(?!python|__init__|_mapping).*\.py$', | 
					
						
							|  |  |  |   # trim rich's markdown support | 
					
						
							|  |  |  |   "rich/markdown.py", | 
					
						
							|  |  |  | ] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [tool.vendoring.typing-stubs] | 
					
						
							|  |  |  | six = ["six.__init__", "six.moves.__init__", "six.moves.configparser"] | 
					
						
							|  |  |  | distro = [] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [tool.vendoring.license.directories] | 
					
						
							|  |  |  | setuptools = "pkg_resources" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [tool.vendoring.license.fallback-urls] | 
					
						
							|  |  |  | CacheControl = "https://raw.githubusercontent.com/ionrock/cachecontrol/v0.12.6/LICENSE.txt" | 
					
						
							|  |  |  | distlib = "https://bitbucket.org/pypa/distlib/raw/master/LICENSE.txt" | 
					
						
							| 
									
										
										
										
											2023-02-16 22:06:12 -07:00
										 |  |  | webencodings = "https://github.com/SimonSapin/python-webencodings/raw/master/LICENSE" |