summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHarmen Stoppels <me@harmenstoppels.nl>2023-11-30 08:37:11 +0100
committerGitHub <noreply@github.com>2023-11-30 08:37:11 +0100
commit4b93c57d440b244532597d0c5b840a9f8b3412ec (patch)
treee9c4bdb51e018a9e5215a5b26755ad1ec3829f88
parent377e7de0d283be78dea97c971f30a0bc7e8b7a8e (diff)
downloadspack-4b93c57d440b244532597d0c5b840a9f8b3412ec.tar.gz
spack-4b93c57d440b244532597d0c5b840a9f8b3412ec.tar.bz2
spack-4b93c57d440b244532597d0c5b840a9f8b3412ec.tar.xz
spack-4b93c57d440b244532597d0c5b840a9f8b3412ec.zip
argparse: make scope choices lazy s.t. validation in tests works (#41344)
-rw-r--r--lib/spack/spack/cmd/add.py2
-rw-r--r--lib/spack/spack/cmd/bootstrap.py7
-rw-r--r--lib/spack/spack/cmd/buildcache.py6
-rw-r--r--lib/spack/spack/cmd/change.py2
-rw-r--r--lib/spack/spack/cmd/clean.py2
-rw-r--r--lib/spack/spack/cmd/common/arguments.py10
-rw-r--r--lib/spack/spack/cmd/common/env_utility.py2
-rw-r--r--lib/spack/spack/cmd/compiler.py11
-rw-r--r--lib/spack/spack/cmd/compilers.py5
-rw-r--r--lib/spack/spack/cmd/config.py10
-rw-r--r--lib/spack/spack/cmd/deconcretize.py2
-rw-r--r--lib/spack/spack/cmd/dependencies.py2
-rw-r--r--lib/spack/spack/cmd/dependents.py2
-rw-r--r--lib/spack/spack/cmd/deprecate.py2
-rw-r--r--lib/spack/spack/cmd/dev_build.py2
-rw-r--r--lib/spack/spack/cmd/develop.py2
-rw-r--r--lib/spack/spack/cmd/diff.py2
-rw-r--r--lib/spack/spack/cmd/env.py2
-rw-r--r--lib/spack/spack/cmd/extensions.py2
-rw-r--r--lib/spack/spack/cmd/external.py8
-rw-r--r--lib/spack/spack/cmd/fetch.py2
-rw-r--r--lib/spack/spack/cmd/find.py2
-rw-r--r--lib/spack/spack/cmd/gpg.py2
-rw-r--r--lib/spack/spack/cmd/graph.py2
-rw-r--r--lib/spack/spack/cmd/info.py2
-rw-r--r--lib/spack/spack/cmd/install.py2
-rw-r--r--lib/spack/spack/cmd/list.py2
-rw-r--r--lib/spack/spack/cmd/load.py2
-rw-r--r--lib/spack/spack/cmd/location.py2
-rw-r--r--lib/spack/spack/cmd/mark.py2
-rw-r--r--lib/spack/spack/cmd/mirror.py15
-rw-r--r--lib/spack/spack/cmd/modules/__init__.py2
-rw-r--r--lib/spack/spack/cmd/patch.py2
-rw-r--r--lib/spack/spack/cmd/pkg.py2
-rw-r--r--lib/spack/spack/cmd/remove.py2
-rw-r--r--lib/spack/spack/cmd/repo.py8
-rw-r--r--lib/spack/spack/cmd/restage.py2
-rw-r--r--lib/spack/spack/cmd/solve.py2
-rw-r--r--lib/spack/spack/cmd/spec.py2
-rw-r--r--lib/spack/spack/cmd/stage.py2
-rw-r--r--lib/spack/spack/cmd/test.py2
-rw-r--r--lib/spack/spack/cmd/tutorial.py2
-rw-r--r--lib/spack/spack/cmd/undevelop.py2
-rw-r--r--lib/spack/spack/cmd/uninstall.py2
-rw-r--r--lib/spack/spack/cmd/unload.py2
-rw-r--r--lib/spack/spack/cmd/versions.py2
46 files changed, 76 insertions, 78 deletions
diff --git a/lib/spack/spack/cmd/add.py b/lib/spack/spack/cmd/add.py
index 53544ad40a..dd5338e3ca 100644
--- a/lib/spack/spack/cmd/add.py
+++ b/lib/spack/spack/cmd/add.py
@@ -6,7 +6,7 @@
import llnl.util.tty as tty
import spack.cmd
-import spack.cmd.common.arguments as arguments
+from spack.cmd.common import arguments
description = "add a spec to an environment"
section = "environments"
diff --git a/lib/spack/spack/cmd/bootstrap.py b/lib/spack/spack/cmd/bootstrap.py
index 71c3d3a045..7c07625895 100644
--- a/lib/spack/spack/cmd/bootstrap.py
+++ b/lib/spack/spack/cmd/bootstrap.py
@@ -15,13 +15,13 @@ import spack
import spack.bootstrap
import spack.bootstrap.config
import spack.bootstrap.core
-import spack.cmd.common.arguments
import spack.config
import spack.main
import spack.mirror
import spack.spec
import spack.stage
import spack.util.path
+from spack.cmd.common import arguments
description = "manage bootstrap configuration"
section = "system"
@@ -68,10 +68,9 @@ SOURCE_METADATA = {
def _add_scope_option(parser):
- scopes = spack.config.scopes()
parser.add_argument(
"--scope",
- choices=scopes,
+ choices=arguments.ConfigScopeChoices(),
metavar=spack.config.SCOPES_METAVAR,
help="configuration scope to read/modify",
)
@@ -106,7 +105,7 @@ def setup_parser(subparser):
disable.add_argument("name", help="name of the source to be disabled", nargs="?", default=None)
reset = sp.add_parser("reset", help="reset bootstrapping configuration to Spack defaults")
- spack.cmd.common.arguments.add_common_arguments(reset, ["yes_to_all"])
+ arguments.add_common_arguments(reset, ["yes_to_all"])
root = sp.add_parser("root", help="get/set the root bootstrap directory")
_add_scope_option(root)
diff --git a/lib/spack/spack/cmd/buildcache.py b/lib/spack/spack/cmd/buildcache.py
index 94cce16030..7896b54373 100644
--- a/lib/spack/spack/cmd/buildcache.py
+++ b/lib/spack/spack/cmd/buildcache.py
@@ -21,7 +21,6 @@ from llnl.util.lang import elide_list
import spack.binary_distribution as bindist
import spack.cmd
-import spack.cmd.common.arguments as arguments
import spack.config
import spack.environment as ev
import spack.error
@@ -40,6 +39,7 @@ import spack.util.url as url_util
import spack.util.web as web_util
from spack.build_environment import determine_number_of_jobs
from spack.cmd import display_specs
+from spack.cmd.common import arguments
from spack.oci.image import (
Digest,
ImageReference,
@@ -182,11 +182,9 @@ def setup_parser(subparser: argparse.ArgumentParser):
)
# used to construct scope arguments below
- scopes = spack.config.scopes()
-
check.add_argument(
"--scope",
- choices=scopes,
+ choices=arguments.ConfigScopeChoices(),
metavar=spack.config.SCOPES_METAVAR,
default=spack.config.default_modify_scope(),
help="configuration scope containing mirrors to check",
diff --git a/lib/spack/spack/cmd/change.py b/lib/spack/spack/cmd/change.py
index 0a57cb6da5..3662dc22e6 100644
--- a/lib/spack/spack/cmd/change.py
+++ b/lib/spack/spack/cmd/change.py
@@ -4,7 +4,7 @@
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
import spack.cmd
-import spack.cmd.common.arguments as arguments
+from spack.cmd.common import arguments
description = "change an existing spec in an environment"
section = "environments"
diff --git a/lib/spack/spack/cmd/clean.py b/lib/spack/spack/cmd/clean.py
index 5a1831cda5..59b0529fd2 100644
--- a/lib/spack/spack/cmd/clean.py
+++ b/lib/spack/spack/cmd/clean.py
@@ -12,13 +12,13 @@ import llnl.util.tty as tty
import spack.bootstrap
import spack.caches
-import spack.cmd.common.arguments as arguments
import spack.cmd.test
import spack.config
import spack.repo
import spack.stage
import spack.store
import spack.util.path
+from spack.cmd.common import arguments
from spack.paths import lib_path, var_path
description = "remove temporary build files and/or downloaded archives"
diff --git a/lib/spack/spack/cmd/common/arguments.py b/lib/spack/spack/cmd/common/arguments.py
index 9aa3edac47..79f844d0e2 100644
--- a/lib/spack/spack/cmd/common/arguments.py
+++ b/lib/spack/spack/cmd/common/arguments.py
@@ -124,6 +124,16 @@ class DeptypeAction(argparse.Action):
setattr(namespace, self.dest, deptype)
+class ConfigScopeChoices:
+ """A lazy list of config scope values (values may change at runtime in tests)."""
+
+ def __contains__(self, item):
+ return item in spack.config.scopes()
+
+ def __iter__(self):
+ return iter(spack.config.scopes().keys())
+
+
def _cdash_reporter(namespace):
"""Helper function to create a CDash reporter. This function gets an early reference to the
argparse namespace under construction, so it can later use it to create the object.
diff --git a/lib/spack/spack/cmd/common/env_utility.py b/lib/spack/spack/cmd/common/env_utility.py
index b8a6338d92..175105d906 100644
--- a/lib/spack/spack/cmd/common/env_utility.py
+++ b/lib/spack/spack/cmd/common/env_utility.py
@@ -8,13 +8,13 @@ import os
import llnl.util.tty as tty
import spack.cmd
-import spack.cmd.common.arguments as arguments
import spack.deptypes as dt
import spack.error
import spack.paths
import spack.spec
import spack.store
from spack import build_environment, traverse
+from spack.cmd.common import arguments
from spack.context import Context
from spack.util.environment import dump_environment, pickle_environment
diff --git a/lib/spack/spack/cmd/compiler.py b/lib/spack/spack/cmd/compiler.py
index 76eb8d3150..6ba6371087 100644
--- a/lib/spack/spack/cmd/compiler.py
+++ b/lib/spack/spack/cmd/compiler.py
@@ -14,6 +14,7 @@ from llnl.util.tty.color import colorize
import spack.compilers
import spack.config
import spack.spec
+from spack.cmd.common import arguments
description = "manage compilers"
section = "system"
@@ -23,8 +24,6 @@ level = "long"
def setup_parser(subparser):
sp = subparser.add_subparsers(metavar="SUBCOMMAND", dest="compiler_command")
- scopes = spack.config.scopes()
-
# Find
find_parser = sp.add_parser(
"find",
@@ -47,7 +46,7 @@ def setup_parser(subparser):
find_parser.add_argument("add_paths", nargs=argparse.REMAINDER)
find_parser.add_argument(
"--scope",
- choices=scopes,
+ choices=arguments.ConfigScopeChoices(),
metavar=spack.config.SCOPES_METAVAR,
default=spack.config.default_modify_scope("compilers"),
help="configuration scope to modify",
@@ -61,7 +60,7 @@ def setup_parser(subparser):
remove_parser.add_argument("compiler_spec")
remove_parser.add_argument(
"--scope",
- choices=scopes,
+ choices=arguments.ConfigScopeChoices(),
metavar=spack.config.SCOPES_METAVAR,
default=None,
help="configuration scope to modify",
@@ -71,7 +70,7 @@ def setup_parser(subparser):
list_parser = sp.add_parser("list", help="list available compilers")
list_parser.add_argument(
"--scope",
- choices=scopes,
+ choices=arguments.ConfigScopeChoices(),
metavar=spack.config.SCOPES_METAVAR,
default=spack.config.default_list_scope(),
help="configuration scope to read from",
@@ -82,7 +81,7 @@ def setup_parser(subparser):
info_parser.add_argument("compiler_spec")
info_parser.add_argument(
"--scope",
- choices=scopes,
+ choices=arguments.ConfigScopeChoices(),
metavar=spack.config.SCOPES_METAVAR,
default=spack.config.default_list_scope(),
help="configuration scope to read from",
diff --git a/lib/spack/spack/cmd/compilers.py b/lib/spack/spack/cmd/compilers.py
index 6d0ff43ea2..25831da7fb 100644
--- a/lib/spack/spack/cmd/compilers.py
+++ b/lib/spack/spack/cmd/compilers.py
@@ -4,6 +4,7 @@
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
import spack.config
+from spack.cmd.common import arguments
from spack.cmd.compiler import compiler_list
description = "list available compilers"
@@ -12,11 +13,9 @@ level = "short"
def setup_parser(subparser):
- scopes = spack.config.scopes()
-
subparser.add_argument(
"--scope",
- choices=scopes,
+ choices=arguments.ConfigScopeChoices(),
metavar=spack.config.SCOPES_METAVAR,
help="configuration scope to read/modify",
)
diff --git a/lib/spack/spack/cmd/config.py b/lib/spack/spack/cmd/config.py
index 14514400a8..c99f045876 100644
--- a/lib/spack/spack/cmd/config.py
+++ b/lib/spack/spack/cmd/config.py
@@ -10,7 +10,6 @@ from typing import List
import llnl.util.filesystem as fs
import llnl.util.tty as tty
-import spack.cmd.common.arguments
import spack.config
import spack.environment as ev
import spack.repo
@@ -18,6 +17,7 @@ import spack.schema.env
import spack.schema.packages
import spack.store
import spack.util.spack_yaml as syaml
+from spack.cmd.common import arguments
from spack.util.editor import editor
description = "get and set configuration options"
@@ -26,12 +26,10 @@ level = "long"
def setup_parser(subparser):
- scopes = spack.config.scopes()
-
# User can only choose one
subparser.add_argument(
"--scope",
- choices=scopes,
+ choices=arguments.ConfigScopeChoices(),
metavar=spack.config.SCOPES_METAVAR,
help="configuration scope to read/modify",
)
@@ -101,13 +99,13 @@ def setup_parser(subparser):
setup_parser.add_parser = add_parser
update = sp.add_parser("update", help="update configuration files to the latest format")
- spack.cmd.common.arguments.add_common_arguments(update, ["yes_to_all"])
+ arguments.add_common_arguments(update, ["yes_to_all"])
update.add_argument("section", help="section to update")
revert = sp.add_parser(
"revert", help="revert configuration files to their state before update"
)
- spack.cmd.common.arguments.add_common_arguments(revert, ["yes_to_all"])
+ arguments.add_common_arguments(revert, ["yes_to_all"])
revert.add_argument("section", help="section to update")
diff --git a/lib/spack/spack/cmd/deconcretize.py b/lib/spack/spack/cmd/deconcretize.py
index dbcf72ea8b..706986e2b3 100644
--- a/lib/spack/spack/cmd/deconcretize.py
+++ b/lib/spack/spack/cmd/deconcretize.py
@@ -10,10 +10,10 @@ from typing import List
import llnl.util.tty as tty
import spack.cmd
-import spack.cmd.common.arguments as arguments
import spack.cmd.common.confirmation as confirmation
import spack.environment as ev
import spack.spec
+from spack.cmd.common import arguments
description = "remove specs from the concretized lockfile of an environment"
section = "environments"
diff --git a/lib/spack/spack/cmd/dependencies.py b/lib/spack/spack/cmd/dependencies.py
index ed85d47d22..abc79f8904 100644
--- a/lib/spack/spack/cmd/dependencies.py
+++ b/lib/spack/spack/cmd/dependencies.py
@@ -9,11 +9,11 @@ import llnl.util.tty as tty
from llnl.util.tty.colify import colify
import spack.cmd
-import spack.cmd.common.arguments as arguments
import spack.environment as ev
import spack.package_base
import spack.repo
import spack.store
+from spack.cmd.common import arguments
description = "show dependencies of a package"
section = "basic"
diff --git a/lib/spack/spack/cmd/dependents.py b/lib/spack/spack/cmd/dependents.py
index 733feaf715..302fde6c75 100644
--- a/lib/spack/spack/cmd/dependents.py
+++ b/lib/spack/spack/cmd/dependents.py
@@ -9,10 +9,10 @@ import llnl.util.tty as tty
from llnl.util.tty.colify import colify
import spack.cmd
-import spack.cmd.common.arguments as arguments
import spack.environment as ev
import spack.repo
import spack.store
+from spack.cmd.common import arguments
description = "show packages that depend on another"
section = "basic"
diff --git a/lib/spack/spack/cmd/deprecate.py b/lib/spack/spack/cmd/deprecate.py
index dca9b49756..4e9ebd1468 100644
--- a/lib/spack/spack/cmd/deprecate.py
+++ b/lib/spack/spack/cmd/deprecate.py
@@ -20,9 +20,9 @@ import llnl.util.tty as tty
from llnl.util.symlink import symlink
import spack.cmd
-import spack.cmd.common.arguments as arguments
import spack.environment as ev
import spack.store
+from spack.cmd.common import arguments
from spack.database import InstallStatuses
from spack.error import SpackError
diff --git a/lib/spack/spack/cmd/dev_build.py b/lib/spack/spack/cmd/dev_build.py
index 90008c8b3e..59f68a26c6 100644
--- a/lib/spack/spack/cmd/dev_build.py
+++ b/lib/spack/spack/cmd/dev_build.py
@@ -9,9 +9,9 @@ import sys
import llnl.util.tty as tty
import spack.cmd
-import spack.cmd.common.arguments as arguments
import spack.config
import spack.repo
+from spack.cmd.common import arguments
description = "developer build: build from code in current working directory"
section = "build"
diff --git a/lib/spack/spack/cmd/develop.py b/lib/spack/spack/cmd/develop.py
index ac7e89596f..f515352175 100644
--- a/lib/spack/spack/cmd/develop.py
+++ b/lib/spack/spack/cmd/develop.py
@@ -8,10 +8,10 @@ import shutil
import llnl.util.tty as tty
import spack.cmd
-import spack.cmd.common.arguments as arguments
import spack.spec
import spack.util.path
import spack.version
+from spack.cmd.common import arguments
from spack.error import SpackError
description = "add a spec to an environment's dev-build information"
diff --git a/lib/spack/spack/cmd/diff.py b/lib/spack/spack/cmd/diff.py
index e321c28afb..f6a5c5ce7a 100644
--- a/lib/spack/spack/cmd/diff.py
+++ b/lib/spack/spack/cmd/diff.py
@@ -10,11 +10,11 @@ import llnl.util.tty as tty
from llnl.util.tty.color import cprint, get_color_when
import spack.cmd
-import spack.cmd.common.arguments as arguments
import spack.environment as ev
import spack.solver.asp as asp
import spack.util.environment
import spack.util.spack_json as sjson
+from spack.cmd.common import arguments
description = "compare two specs"
section = "basic"
diff --git a/lib/spack/spack/cmd/env.py b/lib/spack/spack/cmd/env.py
index bb1ad13ec2..41a7b08bfa 100644
--- a/lib/spack/spack/cmd/env.py
+++ b/lib/spack/spack/cmd/env.py
@@ -20,7 +20,6 @@ from llnl.util.tty.color import colorize
import spack.cmd
import spack.cmd.common
import spack.cmd.common.arguments
-import spack.cmd.common.arguments as arguments
import spack.cmd.install
import spack.cmd.modules
import spack.cmd.uninstall
@@ -31,6 +30,7 @@ import spack.environment.shell
import spack.schema.env
import spack.spec
import spack.tengine
+from spack.cmd.common import arguments
from spack.util.environment import EnvironmentModifications
description = "manage virtual environments"
diff --git a/lib/spack/spack/cmd/extensions.py b/lib/spack/spack/cmd/extensions.py
index 1bf5c9ecff..e021623d52 100644
--- a/lib/spack/spack/cmd/extensions.py
+++ b/lib/spack/spack/cmd/extensions.py
@@ -10,10 +10,10 @@ import llnl.util.tty as tty
from llnl.util.tty.colify import colify
import spack.cmd as cmd
-import spack.cmd.common.arguments as arguments
import spack.environment as ev
import spack.repo
import spack.store
+from spack.cmd.common import arguments
description = "list extensions for package"
section = "extensions"
diff --git a/lib/spack/spack/cmd/external.py b/lib/spack/spack/cmd/external.py
index 081ec80394..c3e791fd6a 100644
--- a/lib/spack/spack/cmd/external.py
+++ b/lib/spack/spack/cmd/external.py
@@ -14,12 +14,12 @@ import llnl.util.tty.colify as colify
import spack
import spack.cmd
-import spack.cmd.common.arguments
import spack.config
import spack.cray_manifest as cray_manifest
import spack.detection
import spack.error
import spack.util.environment
+from spack.cmd.common import arguments
description = "manage external packages in Spack configuration"
section = "config"
@@ -29,8 +29,6 @@ level = "short"
def setup_parser(subparser):
sp = subparser.add_subparsers(metavar="SUBCOMMAND", dest="external_command")
- scopes = spack.config.scopes()
-
find_parser = sp.add_parser("find", help="add external packages to packages.yaml")
find_parser.add_argument(
"--not-buildable",
@@ -48,7 +46,7 @@ def setup_parser(subparser):
)
find_parser.add_argument(
"--scope",
- choices=scopes,
+ choices=arguments.ConfigScopeChoices(),
metavar=spack.config.SCOPES_METAVAR,
default=spack.config.default_modify_scope("packages"),
help="configuration scope to modify",
@@ -56,7 +54,7 @@ def setup_parser(subparser):
find_parser.add_argument(
"--all", action="store_true", help="search for all packages that Spack knows about"
)
- spack.cmd.common.arguments.add_common_arguments(find_parser, ["tags", "jobs"])
+ arguments.add_common_arguments(find_parser, ["tags", "jobs"])
find_parser.add_argument("packages", nargs=argparse.REMAINDER)
find_parser.epilog = (
'The search is by default on packages tagged with the "build-tools" or '
diff --git a/lib/spack/spack/cmd/fetch.py b/lib/spack/spack/cmd/fetch.py
index 227f7e8973..a11ba35c67 100644
--- a/lib/spack/spack/cmd/fetch.py
+++ b/lib/spack/spack/cmd/fetch.py
@@ -6,11 +6,11 @@
import llnl.util.tty as tty
import spack.cmd
-import spack.cmd.common.arguments as arguments
import spack.config
import spack.environment as ev
import spack.repo
import spack.traverse
+from spack.cmd.common import arguments
description = "fetch archives for packages"
section = "build"
diff --git a/lib/spack/spack/cmd/find.py b/lib/spack/spack/cmd/find.py
index a057003845..0dbd751c41 100644
--- a/lib/spack/spack/cmd/find.py
+++ b/lib/spack/spack/cmd/find.py
@@ -12,9 +12,9 @@ import llnl.util.tty.color as color
import spack.bootstrap
import spack.cmd as cmd
-import spack.cmd.common.arguments as arguments
import spack.environment as ev
import spack.repo
+from spack.cmd.common import arguments
from spack.database import InstallStatuses
description = "list and search installed packages"
diff --git a/lib/spack/spack/cmd/gpg.py b/lib/spack/spack/cmd/gpg.py
index 0bce5f4736..b22c21178b 100644
--- a/lib/spack/spack/cmd/gpg.py
+++ b/lib/spack/spack/cmd/gpg.py
@@ -7,11 +7,11 @@ import argparse
import os
import spack.binary_distribution
-import spack.cmd.common.arguments as arguments
import spack.mirror
import spack.paths
import spack.util.gpg
import spack.util.url
+from spack.cmd.common import arguments
description = "handle GPG actions for spack"
section = "packaging"
diff --git a/lib/spack/spack/cmd/graph.py b/lib/spack/spack/cmd/graph.py
index 4122d8d588..212aac3953 100644
--- a/lib/spack/spack/cmd/graph.py
+++ b/lib/spack/spack/cmd/graph.py
@@ -5,10 +5,10 @@
from llnl.util import tty
import spack.cmd
-import spack.cmd.common.arguments as arguments
import spack.config
import spack.environment as ev
import spack.store
+from spack.cmd.common import arguments
from spack.graph import DAGWithDependencyTypes, SimpleDAG, graph_ascii, graph_dot, static_graph_dot
description = "generate graphs of package dependency relationships"
diff --git a/lib/spack/spack/cmd/info.py b/lib/spack/spack/cmd/info.py
index 1f90831f65..0ce04ef23b 100644
--- a/lib/spack/spack/cmd/info.py
+++ b/lib/spack/spack/cmd/info.py
@@ -11,13 +11,13 @@ import llnl.util.tty as tty
import llnl.util.tty.color as color
from llnl.util.tty.colify import colify
-import spack.cmd.common.arguments as arguments
import spack.deptypes as dt
import spack.fetch_strategy as fs
import spack.install_test
import spack.repo
import spack.spec
import spack.version
+from spack.cmd.common import arguments
from spack.package_base import preferred_version
description = "get detailed information on a particular package"
diff --git a/lib/spack/spack/cmd/install.py b/lib/spack/spack/cmd/install.py
index b74f982755..5db30ba7b5 100644
--- a/lib/spack/spack/cmd/install.py
+++ b/lib/spack/spack/cmd/install.py
@@ -14,7 +14,6 @@ from llnl.util import lang, tty
import spack.build_environment
import spack.cmd
-import spack.cmd.common.arguments as arguments
import spack.config
import spack.environment as ev
import spack.fetch_strategy
@@ -23,6 +22,7 @@ import spack.paths
import spack.report
import spack.spec
import spack.store
+from spack.cmd.common import arguments
from spack.error import SpackError
from spack.installer import PackageInstaller
diff --git a/lib/spack/spack/cmd/list.py b/lib/spack/spack/cmd/list.py
index a46d7fa5e0..0bfe8041f5 100644
--- a/lib/spack/spack/cmd/list.py
+++ b/lib/spack/spack/cmd/list.py
@@ -15,9 +15,9 @@ from html import escape
import llnl.util.tty as tty
from llnl.util.tty.colify import colify
-import spack.cmd.common.arguments as arguments
import spack.deptypes as dt
import spack.repo
+from spack.cmd.common import arguments
from spack.version import VersionList
description = "list and search available packages"
diff --git a/lib/spack/spack/cmd/load.py b/lib/spack/spack/cmd/load.py
index 5cdd2909c7..3945651341 100644
--- a/lib/spack/spack/cmd/load.py
+++ b/lib/spack/spack/cmd/load.py
@@ -8,12 +8,12 @@ import sys
import llnl.util.tty as tty
import spack.cmd
-import spack.cmd.common.arguments as arguments
import spack.cmd.find
import spack.environment as ev
import spack.store
import spack.user_environment as uenv
import spack.util.environment
+from spack.cmd.common import arguments
description = "add package to the user environment"
section = "user environment"
diff --git a/lib/spack/spack/cmd/location.py b/lib/spack/spack/cmd/location.py
index b4bbaf54b8..d2aa0bc981 100644
--- a/lib/spack/spack/cmd/location.py
+++ b/lib/spack/spack/cmd/location.py
@@ -9,11 +9,11 @@ import llnl.util.tty as tty
import spack.builder
import spack.cmd
-import spack.cmd.common.arguments as arguments
import spack.environment as ev
import spack.paths
import spack.repo
import spack.stage
+from spack.cmd.common import arguments
description = "print out locations of packages and spack directories"
section = "basic"
diff --git a/lib/spack/spack/cmd/mark.py b/lib/spack/spack/cmd/mark.py
index 61939c9458..a31beacd1c 100644
--- a/lib/spack/spack/cmd/mark.py
+++ b/lib/spack/spack/cmd/mark.py
@@ -8,11 +8,11 @@ import sys
from llnl.util import tty
import spack.cmd
-import spack.cmd.common.arguments as arguments
import spack.error
import spack.package_base
import spack.repo
import spack.store
+from spack.cmd.common import arguments
from spack.database import InstallStatuses
description = "mark packages as explicitly or implicitly installed"
diff --git a/lib/spack/spack/cmd/mirror.py b/lib/spack/spack/cmd/mirror.py
index 1036dcbe91..a9c93618c7 100644
--- a/lib/spack/spack/cmd/mirror.py
+++ b/lib/spack/spack/cmd/mirror.py
@@ -11,7 +11,6 @@ import llnl.util.tty.colify as colify
import spack.caches
import spack.cmd
-import spack.cmd.common.arguments as arguments
import spack.concretize
import spack.config
import spack.environment as ev
@@ -20,6 +19,7 @@ import spack.repo
import spack.spec
import spack.util.path
import spack.util.web as web_util
+from spack.cmd.common import arguments
from spack.error import SpackError
description = "manage mirrors (source and binary)"
@@ -88,16 +88,13 @@ def setup_parser(subparser):
"--mirror-url", metavar="mirror_url", type=str, help="find mirror to destroy by url"
)
- # used to construct scope arguments below
- scopes = spack.config.scopes()
-
# Add
add_parser = sp.add_parser("add", help=mirror_add.__doc__)
add_parser.add_argument("name", help="mnemonic name for mirror", metavar="mirror")
add_parser.add_argument("url", help="url of mirror directory from 'spack mirror create'")
add_parser.add_argument(
"--scope",
- choices=scopes,
+ choices=arguments.ConfigScopeChoices(),
metavar=spack.config.SCOPES_METAVAR,
default=spack.config.default_modify_scope(),
help="configuration scope to modify",
@@ -117,7 +114,7 @@ def setup_parser(subparser):
remove_parser.add_argument("name", help="mnemonic name for mirror", metavar="mirror")
remove_parser.add_argument(
"--scope",
- choices=scopes,
+ choices=arguments.ConfigScopeChoices(),
metavar=spack.config.SCOPES_METAVAR,
default=spack.config.default_modify_scope(),
help="configuration scope to modify",
@@ -136,7 +133,7 @@ def setup_parser(subparser):
)
set_url_parser.add_argument(
"--scope",
- choices=scopes,
+ choices=arguments.ConfigScopeChoices(),
metavar=spack.config.SCOPES_METAVAR,
default=spack.config.default_modify_scope(),
help="configuration scope to modify",
@@ -165,7 +162,7 @@ def setup_parser(subparser):
set_parser.add_argument("--url", help="url of mirror directory from 'spack mirror create'")
set_parser.add_argument(
"--scope",
- choices=scopes,
+ choices=arguments.ConfigScopeChoices(),
metavar=spack.config.SCOPES_METAVAR,
default=spack.config.default_modify_scope(),
help="configuration scope to modify",
@@ -176,7 +173,7 @@ def setup_parser(subparser):
list_parser = sp.add_parser("list", help=mirror_list.__doc__)
list_parser.add_argument(
"--scope",
- choices=scopes,
+ choices=arguments.ConfigScopeChoices(),
metavar=spack.config.SCOPES_METAVAR,
default=spack.config.default_list_scope(),
help="configuration scope to read from",
diff --git a/lib/spack/spack/cmd/modules/__init__.py b/lib/spack/spack/cmd/modules/__init__.py
index 65b174a06f..c63e14aba5 100644
--- a/lib/spack/spack/cmd/modules/__init__.py
+++ b/lib/spack/spack/cmd/modules/__init__.py
@@ -14,11 +14,11 @@ from llnl.util import filesystem, tty
from llnl.util.tty import color
import spack.cmd
-import spack.cmd.common.arguments as arguments
import spack.config
import spack.modules
import spack.modules.common
import spack.repo
+from spack.cmd.common import arguments
description = "manipulate module files"
section = "environment"
diff --git a/lib/spack/spack/cmd/patch.py b/lib/spack/spack/cmd/patch.py
index 2d2596c9c5..c8277b26ee 100644
--- a/lib/spack/spack/cmd/patch.py
+++ b/lib/spack/spack/cmd/patch.py
@@ -6,12 +6,12 @@
import llnl.util.tty as tty
import spack.cmd
-import spack.cmd.common.arguments as arguments
import spack.config
import spack.environment as ev
import spack.package_base
import spack.repo
import spack.traverse
+from spack.cmd.common import arguments
description = "patch expanded archive sources in preparation for install"
section = "build"
diff --git a/lib/spack/spack/cmd/pkg.py b/lib/spack/spack/cmd/pkg.py
index 9bbd34ca81..0f025ace25 100644
--- a/lib/spack/spack/cmd/pkg.py
+++ b/lib/spack/spack/cmd/pkg.py
@@ -12,11 +12,11 @@ import llnl.util.tty as tty
from llnl.util.tty.colify import colify
import spack.cmd
-import spack.cmd.common.arguments as arguments
import spack.paths
import spack.repo
import spack.util.executable as exe
import spack.util.package_hash as ph
+from spack.cmd.common import arguments
description = "query packages associated with particular git revisions"
section = "developer"
diff --git a/lib/spack/spack/cmd/remove.py b/lib/spack/spack/cmd/remove.py
index 4fdb36a5e5..ca6d641727 100644
--- a/lib/spack/spack/cmd/remove.py
+++ b/lib/spack/spack/cmd/remove.py
@@ -6,7 +6,7 @@
import llnl.util.tty as tty
import spack.cmd
-import spack.cmd.common.arguments as arguments
+from spack.cmd.common import arguments
description = "remove specs from an environment"
section = "environments"
diff --git a/lib/spack/spack/cmd/repo.py b/lib/spack/spack/cmd/repo.py
index 7953f227e5..a8bba6c2dc 100644
--- a/lib/spack/spack/cmd/repo.py
+++ b/lib/spack/spack/cmd/repo.py
@@ -11,6 +11,7 @@ import llnl.util.tty as tty
import spack.config
import spack.repo
import spack.util.path
+from spack.cmd.common import arguments
description = "manage package source repositories"
section = "config"
@@ -19,7 +20,6 @@ level = "long"
def setup_parser(subparser):
sp = subparser.add_subparsers(metavar="SUBCOMMAND", dest="repo_command")
- scopes = spack.config.scopes()
# Create
create_parser = sp.add_parser("create", help=repo_create.__doc__)
@@ -43,7 +43,7 @@ def setup_parser(subparser):
list_parser = sp.add_parser("list", help=repo_list.__doc__)
list_parser.add_argument(
"--scope",
- choices=scopes,
+ choices=arguments.ConfigScopeChoices(),
metavar=spack.config.SCOPES_METAVAR,
default=spack.config.default_list_scope(),
help="configuration scope to read from",
@@ -54,7 +54,7 @@ def setup_parser(subparser):
add_parser.add_argument("path", help="path to a Spack package repository directory")
add_parser.add_argument(
"--scope",
- choices=scopes,
+ choices=arguments.ConfigScopeChoices(),
metavar=spack.config.SCOPES_METAVAR,
default=spack.config.default_modify_scope(),
help="configuration scope to modify",
@@ -67,7 +67,7 @@ def setup_parser(subparser):
)
remove_parser.add_argument(
"--scope",
- choices=scopes,
+ choices=arguments.ConfigScopeChoices(),
metavar=spack.config.SCOPES_METAVAR,
default=spack.config.default_modify_scope(),
help="configuration scope to modify",
diff --git a/lib/spack/spack/cmd/restage.py b/lib/spack/spack/cmd/restage.py
index ab4d68dcc9..3078f59cdd 100644
--- a/lib/spack/spack/cmd/restage.py
+++ b/lib/spack/spack/cmd/restage.py
@@ -6,8 +6,8 @@
import llnl.util.tty as tty
import spack.cmd
-import spack.cmd.common.arguments as arguments
import spack.repo
+from spack.cmd.common import arguments
description = "revert checked out package source code"
section = "build"
diff --git a/lib/spack/spack/cmd/solve.py b/lib/spack/spack/cmd/solve.py
index 4a30b1694b..c97428b8e3 100644
--- a/lib/spack/spack/cmd/solve.py
+++ b/lib/spack/spack/cmd/solve.py
@@ -12,12 +12,12 @@ import llnl.util.tty.color as color
import spack
import spack.cmd
-import spack.cmd.common.arguments as arguments
import spack.config
import spack.environment
import spack.hash_types as ht
import spack.package_base
import spack.solver.asp as asp
+from spack.cmd.common import arguments
description = "concretize a specs using an ASP solver"
section = "developer"
diff --git a/lib/spack/spack/cmd/spec.py b/lib/spack/spack/cmd/spec.py
index 0abd63ff6a..d55fa3d3b8 100644
--- a/lib/spack/spack/cmd/spec.py
+++ b/lib/spack/spack/cmd/spec.py
@@ -10,11 +10,11 @@ import llnl.util.tty as tty
import spack
import spack.cmd
-import spack.cmd.common.arguments as arguments
import spack.environment as ev
import spack.hash_types as ht
import spack.spec
import spack.store
+from spack.cmd.common import arguments
description = "show what would be installed, given a spec"
section = "build"
diff --git a/lib/spack/spack/cmd/stage.py b/lib/spack/spack/cmd/stage.py
index 4405ddedca..acb0b53dea 100644
--- a/lib/spack/spack/cmd/stage.py
+++ b/lib/spack/spack/cmd/stage.py
@@ -8,13 +8,13 @@ import os
import llnl.util.tty as tty
import spack.cmd
-import spack.cmd.common.arguments as arguments
import spack.config
import spack.environment as ev
import spack.package_base
import spack.repo
import spack.stage
import spack.traverse
+from spack.cmd.common import arguments
description = "expand downloaded archive in preparation for install"
section = "build"
diff --git a/lib/spack/spack/cmd/test.py b/lib/spack/spack/cmd/test.py
index 99c2e90604..2f13e8cb5b 100644
--- a/lib/spack/spack/cmd/test.py
+++ b/lib/spack/spack/cmd/test.py
@@ -15,12 +15,12 @@ from llnl.util import lang, tty
from llnl.util.tty import colify
import spack.cmd
-import spack.cmd.common.arguments as arguments
import spack.environment as ev
import spack.install_test
import spack.package_base
import spack.repo
import spack.report
+from spack.cmd.common import arguments
description = "run spack's tests for an install"
section = "admin"
diff --git a/lib/spack/spack/cmd/tutorial.py b/lib/spack/spack/cmd/tutorial.py
index 5759912b66..fcfab00513 100644
--- a/lib/spack/spack/cmd/tutorial.py
+++ b/lib/spack/spack/cmd/tutorial.py
@@ -10,11 +10,11 @@ import llnl.util.tty as tty
from llnl.util.filesystem import working_dir
import spack
-import spack.cmd.common.arguments as arguments
import spack.config
import spack.paths
import spack.util.git
import spack.util.gpg
+from spack.cmd.common import arguments
from spack.util.spack_yaml import syaml_dict
description = "set up spack for our tutorial (WARNING: modifies config!)"
diff --git a/lib/spack/spack/cmd/undevelop.py b/lib/spack/spack/cmd/undevelop.py
index f633a6d0d6..8f3c19cd1a 100644
--- a/lib/spack/spack/cmd/undevelop.py
+++ b/lib/spack/spack/cmd/undevelop.py
@@ -6,7 +6,7 @@
import llnl.util.tty as tty
import spack.cmd
-import spack.cmd.common.arguments as arguments
+from spack.cmd.common import arguments
description = "remove specs from an environment"
section = "environments"
diff --git a/lib/spack/spack/cmd/uninstall.py b/lib/spack/spack/cmd/uninstall.py
index 3288404151..59ea18edc8 100644
--- a/lib/spack/spack/cmd/uninstall.py
+++ b/lib/spack/spack/cmd/uninstall.py
@@ -10,13 +10,13 @@ from llnl.util import tty
from llnl.util.tty.colify import colify
import spack.cmd
-import spack.cmd.common.arguments as arguments
import spack.cmd.common.confirmation as confirmation
import spack.environment as ev
import spack.package_base
import spack.spec
import spack.store
import spack.traverse as traverse
+from spack.cmd.common import arguments
from spack.database import InstallStatuses
description = "remove installed packages"
diff --git a/lib/spack/spack/cmd/unload.py b/lib/spack/spack/cmd/unload.py
index 7fe634c56d..cd161f61c5 100644
--- a/lib/spack/spack/cmd/unload.py
+++ b/lib/spack/spack/cmd/unload.py
@@ -7,10 +7,10 @@ import os
import sys
import spack.cmd
-import spack.cmd.common.arguments as arguments
import spack.error
import spack.user_environment as uenv
import spack.util.environment
+from spack.cmd.common import arguments
description = "remove package from the user environment"
section = "user environment"
diff --git a/lib/spack/spack/cmd/versions.py b/lib/spack/spack/cmd/versions.py
index 9ac6c9e4da..3ca23dcbe6 100644
--- a/lib/spack/spack/cmd/versions.py
+++ b/lib/spack/spack/cmd/versions.py
@@ -8,9 +8,9 @@ import sys
import llnl.util.tty as tty
from llnl.util.tty.colify import colify
-import spack.cmd.common.arguments as arguments
import spack.repo
import spack.spec
+from spack.cmd.common import arguments
from spack.version import infinity_versions, ver
description = "list available versions of a package"