mirror of
https://github.com/Stone-Red-Code/dvc.git
synced 2026-11-09 23:10:24 +01:00
fix: #7155 1. rename flags `-A/--all-commits` in `exp remove` 2. add new flag `-n/--num` in `exp remove` 3. unify the revision collection in `exp remove` 4. add unit and func tests for `exp remove` Co-authored-by: Jorge Orpinel <[email protected]>
71 lines
2.1 KiB
Python
71 lines
2.1 KiB
Python
import argparse
|
|
import logging
|
|
|
|
from dvc.cli.command import CmdBase
|
|
from dvc.cli.utils import append_doc_link
|
|
from dvc.exceptions import InvalidArgumentError
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
class CmdExperimentsRemove(CmdBase):
|
|
def raise_error_if_all_disabled(self):
|
|
if not any(
|
|
[
|
|
self.args.experiment,
|
|
self.args.all_commits,
|
|
self.args.rev,
|
|
self.args.queue,
|
|
]
|
|
):
|
|
raise InvalidArgumentError(
|
|
"Either provide an `experiment` argument, or use the "
|
|
"`--rev` or `--all-commits` flag."
|
|
)
|
|
|
|
def run(self):
|
|
|
|
self.raise_error_if_all_disabled()
|
|
|
|
self.repo.experiments.remove(
|
|
exp_names=self.args.experiment,
|
|
all_commits=self.args.all_commits,
|
|
rev=self.args.rev,
|
|
num=self.args.num,
|
|
queue=self.args.queue,
|
|
git_remote=self.args.git_remote,
|
|
)
|
|
|
|
return 0
|
|
|
|
|
|
def add_parser(experiments_subparsers, parent_parser):
|
|
from . import add_rev_selection_flags
|
|
|
|
EXPERIMENTS_REMOVE_HELP = "Remove experiments."
|
|
experiments_remove_parser = experiments_subparsers.add_parser(
|
|
"remove",
|
|
parents=[parent_parser],
|
|
description=append_doc_link(EXPERIMENTS_REMOVE_HELP, "exp/remove"),
|
|
help=EXPERIMENTS_REMOVE_HELP,
|
|
formatter_class=argparse.RawDescriptionHelpFormatter,
|
|
)
|
|
remove_group = experiments_remove_parser.add_mutually_exclusive_group()
|
|
add_rev_selection_flags(experiments_remove_parser, "Remove", False)
|
|
remove_group.add_argument(
|
|
"--queue", action="store_true", help="Remove all queued experiments."
|
|
)
|
|
remove_group.add_argument(
|
|
"-g",
|
|
"--git-remote",
|
|
metavar="<git_remote>",
|
|
help="Name or URL of the Git remote to remove the experiment from",
|
|
)
|
|
experiments_remove_parser.add_argument(
|
|
"experiment",
|
|
nargs="*",
|
|
help="Experiments to remove.",
|
|
metavar="<experiment>",
|
|
)
|
|
experiments_remove_parser.set_defaults(func=CmdExperimentsRemove)
|