mirror of
https://github.com/Stone-Red-Code/dvc.git
synced 2026-11-10 15:28:34 +01:00
* metrics show: update -h output to match docs per https://github.com/iterative/dvc.org/pull/1014/commits/2c3452119545987f77b764e4aa6fc94d051092a7 * metric: update argument desc per iterative/dvc.org/pull/1014 * metrics: match iterative/dvc.org/pull/1014 again... using term "formatting" instead of "options" * list: update help output to match iterative/dvc.org/pull/1014 That's iterative/dvc.org/pull/1014 * dvc: add docstring to open_by_relpath It's a public fn after all. Similar to Repo class * help: update cmd output strings to match with docs * remote: update help output * term: file descriptor -> file object * metrics: update add and remove help outputs per https://github.com/iterative/dvc/pull/3471#pullrequestreview-377170844 * remove: update help output per https://github.com/iterative/dvc/pull/3471#pullrequestreview-377172394 * root: update help output per https://github.com/iterative/dvc/pull/3471#pullrequestreview-377173196
79 lines
2.1 KiB
Python
79 lines
2.1 KiB
Python
import argparse
|
|
import logging
|
|
|
|
import dvc.prompt as prompt
|
|
from dvc.command.base import append_doc_link
|
|
from dvc.command.base import CmdBase
|
|
from dvc.exceptions import DvcException
|
|
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
class CmdRemove(CmdBase):
|
|
def _is_outs_only(self, target):
|
|
if not self.args.purge:
|
|
return True
|
|
|
|
if self.args.force:
|
|
return False
|
|
|
|
msg = "Are you sure you want to remove '{}' with its outputs?".format(
|
|
target
|
|
)
|
|
|
|
if prompt.confirm(msg):
|
|
return False
|
|
|
|
raise DvcException(
|
|
"Cannot purge without a confirmation from the user."
|
|
" Use `-f` to force."
|
|
)
|
|
|
|
def run(self):
|
|
for target in self.args.targets:
|
|
try:
|
|
outs_only = self._is_outs_only(target)
|
|
self.repo.remove(target, outs_only=outs_only)
|
|
except DvcException:
|
|
logger.exception("failed to remove '{}'".format(target))
|
|
return 1
|
|
return 0
|
|
|
|
|
|
def add_parser(subparsers, parent_parser):
|
|
REMOVE_HELP = "Remove DVC-tracked files or directories."
|
|
remove_parser = subparsers.add_parser(
|
|
"remove",
|
|
parents=[parent_parser],
|
|
description=append_doc_link(REMOVE_HELP, "remove"),
|
|
help=REMOVE_HELP,
|
|
formatter_class=argparse.RawDescriptionHelpFormatter,
|
|
)
|
|
remove_parser_group = remove_parser.add_mutually_exclusive_group()
|
|
remove_parser_group.add_argument(
|
|
"-o",
|
|
"--outs",
|
|
action="store_true",
|
|
default=True,
|
|
help="Only remove DVC-file outputs. (Default)",
|
|
)
|
|
remove_parser_group.add_argument(
|
|
"-p",
|
|
"--purge",
|
|
action="store_true",
|
|
default=False,
|
|
help="Remove DVC-file and all its outputs.",
|
|
)
|
|
remove_parser.add_argument(
|
|
"-f",
|
|
"--force",
|
|
action="store_true",
|
|
default=False,
|
|
help="Force purge.",
|
|
)
|
|
remove_parser.add_argument(
|
|
"targets", nargs="+", help="DVC-files to remove."
|
|
)
|
|
remove_parser.set_defaults(func=CmdRemove)
|