argparse: make scope choices lazy s.t. validation in tests works (#41344)

This commit is contained in:
Harmen Stoppels 2023-11-30 08:37:11 +01:00 committed by GitHub
parent 377e7de0d2
commit 4b93c57d44
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
46 changed files with 76 additions and 78 deletions

View File

@ -6,7 +6,7 @@
import llnl.util.tty as tty import llnl.util.tty as tty
import spack.cmd import spack.cmd
import spack.cmd.common.arguments as arguments from spack.cmd.common import arguments
description = "add a spec to an environment" description = "add a spec to an environment"
section = "environments" section = "environments"

View File

@ -15,13 +15,13 @@
import spack.bootstrap import spack.bootstrap
import spack.bootstrap.config import spack.bootstrap.config
import spack.bootstrap.core import spack.bootstrap.core
import spack.cmd.common.arguments
import spack.config import spack.config
import spack.main import spack.main
import spack.mirror import spack.mirror
import spack.spec import spack.spec
import spack.stage import spack.stage
import spack.util.path import spack.util.path
from spack.cmd.common import arguments
description = "manage bootstrap configuration" description = "manage bootstrap configuration"
section = "system" section = "system"
@ -68,10 +68,9 @@
def _add_scope_option(parser): def _add_scope_option(parser):
scopes = spack.config.scopes()
parser.add_argument( parser.add_argument(
"--scope", "--scope",
choices=scopes, choices=arguments.ConfigScopeChoices(),
metavar=spack.config.SCOPES_METAVAR, metavar=spack.config.SCOPES_METAVAR,
help="configuration scope to read/modify", 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) 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") 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") root = sp.add_parser("root", help="get/set the root bootstrap directory")
_add_scope_option(root) _add_scope_option(root)

View File

@ -21,7 +21,6 @@
import spack.binary_distribution as bindist import spack.binary_distribution as bindist
import spack.cmd import spack.cmd
import spack.cmd.common.arguments as arguments
import spack.config import spack.config
import spack.environment as ev import spack.environment as ev
import spack.error import spack.error
@ -40,6 +39,7 @@
import spack.util.web as web_util import spack.util.web as web_util
from spack.build_environment import determine_number_of_jobs from spack.build_environment import determine_number_of_jobs
from spack.cmd import display_specs from spack.cmd import display_specs
from spack.cmd.common import arguments
from spack.oci.image import ( from spack.oci.image import (
Digest, Digest,
ImageReference, ImageReference,
@ -182,11 +182,9 @@ def setup_parser(subparser: argparse.ArgumentParser):
) )
# used to construct scope arguments below # used to construct scope arguments below
scopes = spack.config.scopes()
check.add_argument( check.add_argument(
"--scope", "--scope",
choices=scopes, choices=arguments.ConfigScopeChoices(),
metavar=spack.config.SCOPES_METAVAR, metavar=spack.config.SCOPES_METAVAR,
default=spack.config.default_modify_scope(), default=spack.config.default_modify_scope(),
help="configuration scope containing mirrors to check", help="configuration scope containing mirrors to check",

View File

@ -4,7 +4,7 @@
# SPDX-License-Identifier: (Apache-2.0 OR MIT) # SPDX-License-Identifier: (Apache-2.0 OR MIT)
import spack.cmd import spack.cmd
import spack.cmd.common.arguments as arguments from spack.cmd.common import arguments
description = "change an existing spec in an environment" description = "change an existing spec in an environment"
section = "environments" section = "environments"

View File

@ -12,13 +12,13 @@
import spack.bootstrap import spack.bootstrap
import spack.caches import spack.caches
import spack.cmd.common.arguments as arguments
import spack.cmd.test import spack.cmd.test
import spack.config import spack.config
import spack.repo import spack.repo
import spack.stage import spack.stage
import spack.store import spack.store
import spack.util.path import spack.util.path
from spack.cmd.common import arguments
from spack.paths import lib_path, var_path from spack.paths import lib_path, var_path
description = "remove temporary build files and/or downloaded archives" description = "remove temporary build files and/or downloaded archives"

View File

@ -124,6 +124,16 @@ def __call__(self, parser, namespace, values, option_string=None):
setattr(namespace, self.dest, deptype) 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): def _cdash_reporter(namespace):
"""Helper function to create a CDash reporter. This function gets an early reference to the """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. argparse namespace under construction, so it can later use it to create the object.

View File

@ -8,13 +8,13 @@
import llnl.util.tty as tty import llnl.util.tty as tty
import spack.cmd import spack.cmd
import spack.cmd.common.arguments as arguments
import spack.deptypes as dt import spack.deptypes as dt
import spack.error import spack.error
import spack.paths import spack.paths
import spack.spec import spack.spec
import spack.store import spack.store
from spack import build_environment, traverse from spack import build_environment, traverse
from spack.cmd.common import arguments
from spack.context import Context from spack.context import Context
from spack.util.environment import dump_environment, pickle_environment from spack.util.environment import dump_environment, pickle_environment

View File

@ -14,6 +14,7 @@
import spack.compilers import spack.compilers
import spack.config import spack.config
import spack.spec import spack.spec
from spack.cmd.common import arguments
description = "manage compilers" description = "manage compilers"
section = "system" section = "system"
@ -23,8 +24,6 @@
def setup_parser(subparser): def setup_parser(subparser):
sp = subparser.add_subparsers(metavar="SUBCOMMAND", dest="compiler_command") sp = subparser.add_subparsers(metavar="SUBCOMMAND", dest="compiler_command")
scopes = spack.config.scopes()
# Find # Find
find_parser = sp.add_parser( find_parser = sp.add_parser(
"find", "find",
@ -47,7 +46,7 @@ def setup_parser(subparser):
find_parser.add_argument("add_paths", nargs=argparse.REMAINDER) find_parser.add_argument("add_paths", nargs=argparse.REMAINDER)
find_parser.add_argument( find_parser.add_argument(
"--scope", "--scope",
choices=scopes, choices=arguments.ConfigScopeChoices(),
metavar=spack.config.SCOPES_METAVAR, metavar=spack.config.SCOPES_METAVAR,
default=spack.config.default_modify_scope("compilers"), default=spack.config.default_modify_scope("compilers"),
help="configuration scope to modify", help="configuration scope to modify",
@ -61,7 +60,7 @@ def setup_parser(subparser):
remove_parser.add_argument("compiler_spec") remove_parser.add_argument("compiler_spec")
remove_parser.add_argument( remove_parser.add_argument(
"--scope", "--scope",
choices=scopes, choices=arguments.ConfigScopeChoices(),
metavar=spack.config.SCOPES_METAVAR, metavar=spack.config.SCOPES_METAVAR,
default=None, default=None,
help="configuration scope to modify", 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 = sp.add_parser("list", help="list available compilers")
list_parser.add_argument( list_parser.add_argument(
"--scope", "--scope",
choices=scopes, choices=arguments.ConfigScopeChoices(),
metavar=spack.config.SCOPES_METAVAR, metavar=spack.config.SCOPES_METAVAR,
default=spack.config.default_list_scope(), default=spack.config.default_list_scope(),
help="configuration scope to read from", help="configuration scope to read from",
@ -82,7 +81,7 @@ def setup_parser(subparser):
info_parser.add_argument("compiler_spec") info_parser.add_argument("compiler_spec")
info_parser.add_argument( info_parser.add_argument(
"--scope", "--scope",
choices=scopes, choices=arguments.ConfigScopeChoices(),
metavar=spack.config.SCOPES_METAVAR, metavar=spack.config.SCOPES_METAVAR,
default=spack.config.default_list_scope(), default=spack.config.default_list_scope(),
help="configuration scope to read from", help="configuration scope to read from",

View File

@ -4,6 +4,7 @@
# SPDX-License-Identifier: (Apache-2.0 OR MIT) # SPDX-License-Identifier: (Apache-2.0 OR MIT)
import spack.config import spack.config
from spack.cmd.common import arguments
from spack.cmd.compiler import compiler_list from spack.cmd.compiler import compiler_list
description = "list available compilers" description = "list available compilers"
@ -12,11 +13,9 @@
def setup_parser(subparser): def setup_parser(subparser):
scopes = spack.config.scopes()
subparser.add_argument( subparser.add_argument(
"--scope", "--scope",
choices=scopes, choices=arguments.ConfigScopeChoices(),
metavar=spack.config.SCOPES_METAVAR, metavar=spack.config.SCOPES_METAVAR,
help="configuration scope to read/modify", help="configuration scope to read/modify",
) )

View File

@ -10,7 +10,6 @@
import llnl.util.filesystem as fs import llnl.util.filesystem as fs
import llnl.util.tty as tty import llnl.util.tty as tty
import spack.cmd.common.arguments
import spack.config import spack.config
import spack.environment as ev import spack.environment as ev
import spack.repo import spack.repo
@ -18,6 +17,7 @@
import spack.schema.packages import spack.schema.packages
import spack.store import spack.store
import spack.util.spack_yaml as syaml import spack.util.spack_yaml as syaml
from spack.cmd.common import arguments
from spack.util.editor import editor from spack.util.editor import editor
description = "get and set configuration options" description = "get and set configuration options"
@ -26,12 +26,10 @@
def setup_parser(subparser): def setup_parser(subparser):
scopes = spack.config.scopes()
# User can only choose one # User can only choose one
subparser.add_argument( subparser.add_argument(
"--scope", "--scope",
choices=scopes, choices=arguments.ConfigScopeChoices(),
metavar=spack.config.SCOPES_METAVAR, metavar=spack.config.SCOPES_METAVAR,
help="configuration scope to read/modify", help="configuration scope to read/modify",
) )
@ -101,13 +99,13 @@ def setup_parser(subparser):
setup_parser.add_parser = add_parser setup_parser.add_parser = add_parser
update = sp.add_parser("update", help="update configuration files to the latest format") 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") update.add_argument("section", help="section to update")
revert = sp.add_parser( revert = sp.add_parser(
"revert", help="revert configuration files to their state before update" "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") revert.add_argument("section", help="section to update")

View File

@ -10,10 +10,10 @@
import llnl.util.tty as tty import llnl.util.tty as tty
import spack.cmd import spack.cmd
import spack.cmd.common.arguments as arguments
import spack.cmd.common.confirmation as confirmation import spack.cmd.common.confirmation as confirmation
import spack.environment as ev import spack.environment as ev
import spack.spec import spack.spec
from spack.cmd.common import arguments
description = "remove specs from the concretized lockfile of an environment" description = "remove specs from the concretized lockfile of an environment"
section = "environments" section = "environments"

View File

@ -9,11 +9,11 @@
from llnl.util.tty.colify import colify from llnl.util.tty.colify import colify
import spack.cmd import spack.cmd
import spack.cmd.common.arguments as arguments
import spack.environment as ev import spack.environment as ev
import spack.package_base import spack.package_base
import spack.repo import spack.repo
import spack.store import spack.store
from spack.cmd.common import arguments
description = "show dependencies of a package" description = "show dependencies of a package"
section = "basic" section = "basic"

View File

@ -9,10 +9,10 @@
from llnl.util.tty.colify import colify from llnl.util.tty.colify import colify
import spack.cmd import spack.cmd
import spack.cmd.common.arguments as arguments
import spack.environment as ev import spack.environment as ev
import spack.repo import spack.repo
import spack.store import spack.store
from spack.cmd.common import arguments
description = "show packages that depend on another" description = "show packages that depend on another"
section = "basic" section = "basic"

View File

@ -20,9 +20,9 @@
from llnl.util.symlink import symlink from llnl.util.symlink import symlink
import spack.cmd import spack.cmd
import spack.cmd.common.arguments as arguments
import spack.environment as ev import spack.environment as ev
import spack.store import spack.store
from spack.cmd.common import arguments
from spack.database import InstallStatuses from spack.database import InstallStatuses
from spack.error import SpackError from spack.error import SpackError

View File

@ -9,9 +9,9 @@
import llnl.util.tty as tty import llnl.util.tty as tty
import spack.cmd import spack.cmd
import spack.cmd.common.arguments as arguments
import spack.config import spack.config
import spack.repo import spack.repo
from spack.cmd.common import arguments
description = "developer build: build from code in current working directory" description = "developer build: build from code in current working directory"
section = "build" section = "build"

View File

@ -8,10 +8,10 @@
import llnl.util.tty as tty import llnl.util.tty as tty
import spack.cmd import spack.cmd
import spack.cmd.common.arguments as arguments
import spack.spec import spack.spec
import spack.util.path import spack.util.path
import spack.version import spack.version
from spack.cmd.common import arguments
from spack.error import SpackError from spack.error import SpackError
description = "add a spec to an environment's dev-build information" description = "add a spec to an environment's dev-build information"

View File

@ -10,11 +10,11 @@
from llnl.util.tty.color import cprint, get_color_when from llnl.util.tty.color import cprint, get_color_when
import spack.cmd import spack.cmd
import spack.cmd.common.arguments as arguments
import spack.environment as ev import spack.environment as ev
import spack.solver.asp as asp import spack.solver.asp as asp
import spack.util.environment import spack.util.environment
import spack.util.spack_json as sjson import spack.util.spack_json as sjson
from spack.cmd.common import arguments
description = "compare two specs" description = "compare two specs"
section = "basic" section = "basic"

View File

@ -20,7 +20,6 @@
import spack.cmd import spack.cmd
import spack.cmd.common import spack.cmd.common
import spack.cmd.common.arguments import spack.cmd.common.arguments
import spack.cmd.common.arguments as arguments
import spack.cmd.install import spack.cmd.install
import spack.cmd.modules import spack.cmd.modules
import spack.cmd.uninstall import spack.cmd.uninstall
@ -31,6 +30,7 @@
import spack.schema.env import spack.schema.env
import spack.spec import spack.spec
import spack.tengine import spack.tengine
from spack.cmd.common import arguments
from spack.util.environment import EnvironmentModifications from spack.util.environment import EnvironmentModifications
description = "manage virtual environments" description = "manage virtual environments"

View File

@ -10,10 +10,10 @@
from llnl.util.tty.colify import colify from llnl.util.tty.colify import colify
import spack.cmd as cmd import spack.cmd as cmd
import spack.cmd.common.arguments as arguments
import spack.environment as ev import spack.environment as ev
import spack.repo import spack.repo
import spack.store import spack.store
from spack.cmd.common import arguments
description = "list extensions for package" description = "list extensions for package"
section = "extensions" section = "extensions"

View File

@ -14,12 +14,12 @@
import spack import spack
import spack.cmd import spack.cmd
import spack.cmd.common.arguments
import spack.config import spack.config
import spack.cray_manifest as cray_manifest import spack.cray_manifest as cray_manifest
import spack.detection import spack.detection
import spack.error import spack.error
import spack.util.environment import spack.util.environment
from spack.cmd.common import arguments
description = "manage external packages in Spack configuration" description = "manage external packages in Spack configuration"
section = "config" section = "config"
@ -29,8 +29,6 @@
def setup_parser(subparser): def setup_parser(subparser):
sp = subparser.add_subparsers(metavar="SUBCOMMAND", dest="external_command") 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 = sp.add_parser("find", help="add external packages to packages.yaml")
find_parser.add_argument( find_parser.add_argument(
"--not-buildable", "--not-buildable",
@ -48,7 +46,7 @@ def setup_parser(subparser):
) )
find_parser.add_argument( find_parser.add_argument(
"--scope", "--scope",
choices=scopes, choices=arguments.ConfigScopeChoices(),
metavar=spack.config.SCOPES_METAVAR, metavar=spack.config.SCOPES_METAVAR,
default=spack.config.default_modify_scope("packages"), default=spack.config.default_modify_scope("packages"),
help="configuration scope to modify", help="configuration scope to modify",
@ -56,7 +54,7 @@ def setup_parser(subparser):
find_parser.add_argument( find_parser.add_argument(
"--all", action="store_true", help="search for all packages that Spack knows about" "--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.add_argument("packages", nargs=argparse.REMAINDER)
find_parser.epilog = ( find_parser.epilog = (
'The search is by default on packages tagged with the "build-tools" or ' 'The search is by default on packages tagged with the "build-tools" or '

View File

@ -6,11 +6,11 @@
import llnl.util.tty as tty import llnl.util.tty as tty
import spack.cmd import spack.cmd
import spack.cmd.common.arguments as arguments
import spack.config import spack.config
import spack.environment as ev import spack.environment as ev
import spack.repo import spack.repo
import spack.traverse import spack.traverse
from spack.cmd.common import arguments
description = "fetch archives for packages" description = "fetch archives for packages"
section = "build" section = "build"

View File

@ -12,9 +12,9 @@
import spack.bootstrap import spack.bootstrap
import spack.cmd as cmd import spack.cmd as cmd
import spack.cmd.common.arguments as arguments
import spack.environment as ev import spack.environment as ev
import spack.repo import spack.repo
from spack.cmd.common import arguments
from spack.database import InstallStatuses from spack.database import InstallStatuses
description = "list and search installed packages" description = "list and search installed packages"

View File

@ -7,11 +7,11 @@
import os import os
import spack.binary_distribution import spack.binary_distribution
import spack.cmd.common.arguments as arguments
import spack.mirror import spack.mirror
import spack.paths import spack.paths
import spack.util.gpg import spack.util.gpg
import spack.util.url import spack.util.url
from spack.cmd.common import arguments
description = "handle GPG actions for spack" description = "handle GPG actions for spack"
section = "packaging" section = "packaging"

View File

@ -5,10 +5,10 @@
from llnl.util import tty from llnl.util import tty
import spack.cmd import spack.cmd
import spack.cmd.common.arguments as arguments
import spack.config import spack.config
import spack.environment as ev import spack.environment as ev
import spack.store import spack.store
from spack.cmd.common import arguments
from spack.graph import DAGWithDependencyTypes, SimpleDAG, graph_ascii, graph_dot, static_graph_dot from spack.graph import DAGWithDependencyTypes, SimpleDAG, graph_ascii, graph_dot, static_graph_dot
description = "generate graphs of package dependency relationships" description = "generate graphs of package dependency relationships"

View File

@ -11,13 +11,13 @@
import llnl.util.tty.color as color import llnl.util.tty.color as color
from llnl.util.tty.colify import colify from llnl.util.tty.colify import colify
import spack.cmd.common.arguments as arguments
import spack.deptypes as dt import spack.deptypes as dt
import spack.fetch_strategy as fs import spack.fetch_strategy as fs
import spack.install_test import spack.install_test
import spack.repo import spack.repo
import spack.spec import spack.spec
import spack.version import spack.version
from spack.cmd.common import arguments
from spack.package_base import preferred_version from spack.package_base import preferred_version
description = "get detailed information on a particular package" description = "get detailed information on a particular package"

View File

@ -14,7 +14,6 @@
import spack.build_environment import spack.build_environment
import spack.cmd import spack.cmd
import spack.cmd.common.arguments as arguments
import spack.config import spack.config
import spack.environment as ev import spack.environment as ev
import spack.fetch_strategy import spack.fetch_strategy
@ -23,6 +22,7 @@
import spack.report import spack.report
import spack.spec import spack.spec
import spack.store import spack.store
from spack.cmd.common import arguments
from spack.error import SpackError from spack.error import SpackError
from spack.installer import PackageInstaller from spack.installer import PackageInstaller

View File

@ -15,9 +15,9 @@
import llnl.util.tty as tty import llnl.util.tty as tty
from llnl.util.tty.colify import colify from llnl.util.tty.colify import colify
import spack.cmd.common.arguments as arguments
import spack.deptypes as dt import spack.deptypes as dt
import spack.repo import spack.repo
from spack.cmd.common import arguments
from spack.version import VersionList from spack.version import VersionList
description = "list and search available packages" description = "list and search available packages"

View File

@ -8,12 +8,12 @@
import llnl.util.tty as tty import llnl.util.tty as tty
import spack.cmd import spack.cmd
import spack.cmd.common.arguments as arguments
import spack.cmd.find import spack.cmd.find
import spack.environment as ev import spack.environment as ev
import spack.store import spack.store
import spack.user_environment as uenv import spack.user_environment as uenv
import spack.util.environment import spack.util.environment
from spack.cmd.common import arguments
description = "add package to the user environment" description = "add package to the user environment"
section = "user environment" section = "user environment"

View File

@ -9,11 +9,11 @@
import spack.builder import spack.builder
import spack.cmd import spack.cmd
import spack.cmd.common.arguments as arguments
import spack.environment as ev import spack.environment as ev
import spack.paths import spack.paths
import spack.repo import spack.repo
import spack.stage import spack.stage
from spack.cmd.common import arguments
description = "print out locations of packages and spack directories" description = "print out locations of packages and spack directories"
section = "basic" section = "basic"

View File

@ -8,11 +8,11 @@
from llnl.util import tty from llnl.util import tty
import spack.cmd import spack.cmd
import spack.cmd.common.arguments as arguments
import spack.error import spack.error
import spack.package_base import spack.package_base
import spack.repo import spack.repo
import spack.store import spack.store
from spack.cmd.common import arguments
from spack.database import InstallStatuses from spack.database import InstallStatuses
description = "mark packages as explicitly or implicitly installed" description = "mark packages as explicitly or implicitly installed"

View File

@ -11,7 +11,6 @@
import spack.caches import spack.caches
import spack.cmd import spack.cmd
import spack.cmd.common.arguments as arguments
import spack.concretize import spack.concretize
import spack.config import spack.config
import spack.environment as ev import spack.environment as ev
@ -20,6 +19,7 @@
import spack.spec import spack.spec
import spack.util.path import spack.util.path
import spack.util.web as web_util import spack.util.web as web_util
from spack.cmd.common import arguments
from spack.error import SpackError from spack.error import SpackError
description = "manage mirrors (source and binary)" 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" "--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
add_parser = sp.add_parser("add", help=mirror_add.__doc__) 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("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("url", help="url of mirror directory from 'spack mirror create'")
add_parser.add_argument( add_parser.add_argument(
"--scope", "--scope",
choices=scopes, choices=arguments.ConfigScopeChoices(),
metavar=spack.config.SCOPES_METAVAR, metavar=spack.config.SCOPES_METAVAR,
default=spack.config.default_modify_scope(), default=spack.config.default_modify_scope(),
help="configuration scope to modify", 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("name", help="mnemonic name for mirror", metavar="mirror")
remove_parser.add_argument( remove_parser.add_argument(
"--scope", "--scope",
choices=scopes, choices=arguments.ConfigScopeChoices(),
metavar=spack.config.SCOPES_METAVAR, metavar=spack.config.SCOPES_METAVAR,
default=spack.config.default_modify_scope(), default=spack.config.default_modify_scope(),
help="configuration scope to modify", help="configuration scope to modify",
@ -136,7 +133,7 @@ def setup_parser(subparser):
) )
set_url_parser.add_argument( set_url_parser.add_argument(
"--scope", "--scope",
choices=scopes, choices=arguments.ConfigScopeChoices(),
metavar=spack.config.SCOPES_METAVAR, metavar=spack.config.SCOPES_METAVAR,
default=spack.config.default_modify_scope(), default=spack.config.default_modify_scope(),
help="configuration scope to modify", 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("--url", help="url of mirror directory from 'spack mirror create'")
set_parser.add_argument( set_parser.add_argument(
"--scope", "--scope",
choices=scopes, choices=arguments.ConfigScopeChoices(),
metavar=spack.config.SCOPES_METAVAR, metavar=spack.config.SCOPES_METAVAR,
default=spack.config.default_modify_scope(), default=spack.config.default_modify_scope(),
help="configuration scope to modify", 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 = sp.add_parser("list", help=mirror_list.__doc__)
list_parser.add_argument( list_parser.add_argument(
"--scope", "--scope",
choices=scopes, choices=arguments.ConfigScopeChoices(),
metavar=spack.config.SCOPES_METAVAR, metavar=spack.config.SCOPES_METAVAR,
default=spack.config.default_list_scope(), default=spack.config.default_list_scope(),
help="configuration scope to read from", help="configuration scope to read from",

View File

@ -14,11 +14,11 @@
from llnl.util.tty import color from llnl.util.tty import color
import spack.cmd import spack.cmd
import spack.cmd.common.arguments as arguments
import spack.config import spack.config
import spack.modules import spack.modules
import spack.modules.common import spack.modules.common
import spack.repo import spack.repo
from spack.cmd.common import arguments
description = "manipulate module files" description = "manipulate module files"
section = "environment" section = "environment"

View File

@ -6,12 +6,12 @@
import llnl.util.tty as tty import llnl.util.tty as tty
import spack.cmd import spack.cmd
import spack.cmd.common.arguments as arguments
import spack.config import spack.config
import spack.environment as ev import spack.environment as ev
import spack.package_base import spack.package_base
import spack.repo import spack.repo
import spack.traverse import spack.traverse
from spack.cmd.common import arguments
description = "patch expanded archive sources in preparation for install" description = "patch expanded archive sources in preparation for install"
section = "build" section = "build"

View File

@ -12,11 +12,11 @@
from llnl.util.tty.colify import colify from llnl.util.tty.colify import colify
import spack.cmd import spack.cmd
import spack.cmd.common.arguments as arguments
import spack.paths import spack.paths
import spack.repo import spack.repo
import spack.util.executable as exe import spack.util.executable as exe
import spack.util.package_hash as ph import spack.util.package_hash as ph
from spack.cmd.common import arguments
description = "query packages associated with particular git revisions" description = "query packages associated with particular git revisions"
section = "developer" section = "developer"

View File

@ -6,7 +6,7 @@
import llnl.util.tty as tty import llnl.util.tty as tty
import spack.cmd import spack.cmd
import spack.cmd.common.arguments as arguments from spack.cmd.common import arguments
description = "remove specs from an environment" description = "remove specs from an environment"
section = "environments" section = "environments"

View File

@ -11,6 +11,7 @@
import spack.config import spack.config
import spack.repo import spack.repo
import spack.util.path import spack.util.path
from spack.cmd.common import arguments
description = "manage package source repositories" description = "manage package source repositories"
section = "config" section = "config"
@ -19,7 +20,6 @@
def setup_parser(subparser): def setup_parser(subparser):
sp = subparser.add_subparsers(metavar="SUBCOMMAND", dest="repo_command") sp = subparser.add_subparsers(metavar="SUBCOMMAND", dest="repo_command")
scopes = spack.config.scopes()
# Create # Create
create_parser = sp.add_parser("create", help=repo_create.__doc__) 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 = sp.add_parser("list", help=repo_list.__doc__)
list_parser.add_argument( list_parser.add_argument(
"--scope", "--scope",
choices=scopes, choices=arguments.ConfigScopeChoices(),
metavar=spack.config.SCOPES_METAVAR, metavar=spack.config.SCOPES_METAVAR,
default=spack.config.default_list_scope(), default=spack.config.default_list_scope(),
help="configuration scope to read from", 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("path", help="path to a Spack package repository directory")
add_parser.add_argument( add_parser.add_argument(
"--scope", "--scope",
choices=scopes, choices=arguments.ConfigScopeChoices(),
metavar=spack.config.SCOPES_METAVAR, metavar=spack.config.SCOPES_METAVAR,
default=spack.config.default_modify_scope(), default=spack.config.default_modify_scope(),
help="configuration scope to modify", help="configuration scope to modify",
@ -67,7 +67,7 @@ def setup_parser(subparser):
) )
remove_parser.add_argument( remove_parser.add_argument(
"--scope", "--scope",
choices=scopes, choices=arguments.ConfigScopeChoices(),
metavar=spack.config.SCOPES_METAVAR, metavar=spack.config.SCOPES_METAVAR,
default=spack.config.default_modify_scope(), default=spack.config.default_modify_scope(),
help="configuration scope to modify", help="configuration scope to modify",

View File

@ -6,8 +6,8 @@
import llnl.util.tty as tty import llnl.util.tty as tty
import spack.cmd import spack.cmd
import spack.cmd.common.arguments as arguments
import spack.repo import spack.repo
from spack.cmd.common import arguments
description = "revert checked out package source code" description = "revert checked out package source code"
section = "build" section = "build"

View File

@ -12,12 +12,12 @@
import spack import spack
import spack.cmd import spack.cmd
import spack.cmd.common.arguments as arguments
import spack.config import spack.config
import spack.environment import spack.environment
import spack.hash_types as ht import spack.hash_types as ht
import spack.package_base import spack.package_base
import spack.solver.asp as asp import spack.solver.asp as asp
from spack.cmd.common import arguments
description = "concretize a specs using an ASP solver" description = "concretize a specs using an ASP solver"
section = "developer" section = "developer"

View File

@ -10,11 +10,11 @@
import spack import spack
import spack.cmd import spack.cmd
import spack.cmd.common.arguments as arguments
import spack.environment as ev import spack.environment as ev
import spack.hash_types as ht import spack.hash_types as ht
import spack.spec import spack.spec
import spack.store import spack.store
from spack.cmd.common import arguments
description = "show what would be installed, given a spec" description = "show what would be installed, given a spec"
section = "build" section = "build"

View File

@ -8,13 +8,13 @@
import llnl.util.tty as tty import llnl.util.tty as tty
import spack.cmd import spack.cmd
import spack.cmd.common.arguments as arguments
import spack.config import spack.config
import spack.environment as ev import spack.environment as ev
import spack.package_base import spack.package_base
import spack.repo import spack.repo
import spack.stage import spack.stage
import spack.traverse import spack.traverse
from spack.cmd.common import arguments
description = "expand downloaded archive in preparation for install" description = "expand downloaded archive in preparation for install"
section = "build" section = "build"

View File

@ -15,12 +15,12 @@
from llnl.util.tty import colify from llnl.util.tty import colify
import spack.cmd import spack.cmd
import spack.cmd.common.arguments as arguments
import spack.environment as ev import spack.environment as ev
import spack.install_test import spack.install_test
import spack.package_base import spack.package_base
import spack.repo import spack.repo
import spack.report import spack.report
from spack.cmd.common import arguments
description = "run spack's tests for an install" description = "run spack's tests for an install"
section = "admin" section = "admin"

View File

@ -10,11 +10,11 @@
from llnl.util.filesystem import working_dir from llnl.util.filesystem import working_dir
import spack import spack
import spack.cmd.common.arguments as arguments
import spack.config import spack.config
import spack.paths import spack.paths
import spack.util.git import spack.util.git
import spack.util.gpg import spack.util.gpg
from spack.cmd.common import arguments
from spack.util.spack_yaml import syaml_dict from spack.util.spack_yaml import syaml_dict
description = "set up spack for our tutorial (WARNING: modifies config!)" description = "set up spack for our tutorial (WARNING: modifies config!)"

View File

@ -6,7 +6,7 @@
import llnl.util.tty as tty import llnl.util.tty as tty
import spack.cmd import spack.cmd
import spack.cmd.common.arguments as arguments from spack.cmd.common import arguments
description = "remove specs from an environment" description = "remove specs from an environment"
section = "environments" section = "environments"

View File

@ -10,13 +10,13 @@
from llnl.util.tty.colify import colify from llnl.util.tty.colify import colify
import spack.cmd import spack.cmd
import spack.cmd.common.arguments as arguments
import spack.cmd.common.confirmation as confirmation import spack.cmd.common.confirmation as confirmation
import spack.environment as ev import spack.environment as ev
import spack.package_base import spack.package_base
import spack.spec import spack.spec
import spack.store import spack.store
import spack.traverse as traverse import spack.traverse as traverse
from spack.cmd.common import arguments
from spack.database import InstallStatuses from spack.database import InstallStatuses
description = "remove installed packages" description = "remove installed packages"

View File

@ -7,10 +7,10 @@
import sys import sys
import spack.cmd import spack.cmd
import spack.cmd.common.arguments as arguments
import spack.error import spack.error
import spack.user_environment as uenv import spack.user_environment as uenv
import spack.util.environment import spack.util.environment
from spack.cmd.common import arguments
description = "remove package from the user environment" description = "remove package from the user environment"
section = "user environment" section = "user environment"

View File

@ -8,9 +8,9 @@
import llnl.util.tty as tty import llnl.util.tty as tty
from llnl.util.tty.colify import colify from llnl.util.tty.colify import colify
import spack.cmd.common.arguments as arguments
import spack.repo import spack.repo
import spack.spec import spack.spec
from spack.cmd.common import arguments
from spack.version import infinity_versions, ver from spack.version import infinity_versions, ver
description = "list available versions of a package" description = "list available versions of a package"