From 1b3e1251e6259660af3f3c31fd3face12040a059 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Saugat=20Pachhai=20=28=E0=A4=B8=E0=A5=8C=E0=A4=97=E0=A4=BE?= =?UTF-8?q?=E0=A4=A4=29?= Date: Wed, 19 Jan 2022 17:24:01 +0545 Subject: [PATCH] cli refactor: move dvc.command.base to dvc.cli.command --- dvc/cli/__init__.py | 2 ++ dvc/cli/command.py | 36 +++++++++++++++++++++++++ dvc/cli/parser.py | 4 +-- dvc/{command/base.py => cli/utils.py} | 38 --------------------------- dvc/command/add.py | 3 ++- dvc/command/cache.py | 2 +- dvc/command/check_ignore.py | 3 ++- dvc/command/checkout.py | 3 ++- dvc/command/commit.py | 3 ++- dvc/command/completion.py | 3 ++- dvc/command/config.py | 3 ++- dvc/command/daemon.py | 3 ++- dvc/command/dag.py | 3 ++- dvc/command/data_sync.py | 3 ++- dvc/command/destroy.py | 3 ++- dvc/command/diff.py | 3 ++- dvc/command/experiments/__init__.py | 2 +- dvc/command/experiments/apply.py | 3 ++- dvc/command/experiments/branch.py | 3 ++- dvc/command/experiments/diff.py | 3 ++- dvc/command/experiments/exec_run.py | 2 +- dvc/command/experiments/gc.py | 3 ++- dvc/command/experiments/init.py | 3 ++- dvc/command/experiments/ls.py | 3 ++- dvc/command/experiments/pull.py | 3 ++- dvc/command/experiments/push.py | 3 ++- dvc/command/experiments/remove.py | 3 ++- dvc/command/experiments/run.py | 2 +- dvc/command/experiments/show.py | 3 ++- dvc/command/freeze.py | 3 ++- dvc/command/gc.py | 3 ++- dvc/command/get.py | 3 ++- dvc/command/get_url.py | 3 ++- dvc/command/git_hook.py | 3 ++- dvc/command/imp.py | 3 ++- dvc/command/imp_url.py | 3 ++- dvc/command/init.py | 3 ++- dvc/command/install.py | 3 ++- dvc/command/live.py | 3 ++- dvc/command/ls/__init__.py | 3 ++- dvc/command/machine.py | 3 ++- dvc/command/metrics.py | 3 ++- dvc/command/move.py | 3 ++- dvc/command/params.py | 3 ++- dvc/command/plots.py | 3 ++- dvc/command/remote.py | 2 +- dvc/command/remove.py | 3 ++- dvc/command/repro.py | 3 ++- dvc/command/root.py | 3 ++- dvc/command/run.py | 3 ++- dvc/command/stage.py | 3 ++- dvc/command/unprotect.py | 3 ++- dvc/command/update.py | 3 ++- dvc/command/version.py | 3 ++- tests/func/test_cli.py | 2 +- 55 files changed, 136 insertions(+), 91 deletions(-) create mode 100644 dvc/cli/command.py rename dvc/{command/base.py => cli/utils.py} (57%) diff --git a/dvc/cli/__init__.py b/dvc/cli/__init__.py index 94613db2c..3002654e6 100644 --- a/dvc/cli/__init__.py +++ b/dvc/cli/__init__.py @@ -1,3 +1,5 @@ +"""This module provides an entrypoint to the dvc cli and parsing utils.""" + import logging # Workaround for CPython bug. See [1] and [2] for more info. diff --git a/dvc/cli/command.py b/dvc/cli/command.py new file mode 100644 index 000000000..57c0dd318 --- /dev/null +++ b/dvc/cli/command.py @@ -0,0 +1,36 @@ +import logging +import os +from abc import ABC, abstractmethod + +logger = logging.getLogger(__name__) + + +class CmdBase(ABC): + UNINITIALIZED = False + + def __init__(self, args): + from dvc.repo import Repo + + os.chdir(args.cd) + + self.repo = Repo(uninitialized=self.UNINITIALIZED) + self.config = self.repo.config + self.args = args + + def do_run(self): + with self.repo: + return self.run() + + @abstractmethod + def run(self): + pass + + +class CmdBaseNoRepo(CmdBase): + def __init__(self, args): # pylint: disable=super-init-not-called + self.args = args + + os.chdir(args.cd) + + def do_run(self): + return self.run() diff --git a/dvc/cli/parser.py b/dvc/cli/parser.py index 9b2ea265e..5b613de89 100644 --- a/dvc/cli/parser.py +++ b/dvc/cli/parser.py @@ -1,4 +1,4 @@ -"""DVC command line interface""" +"""Main parser for the dvc cli.""" import argparse import logging import os @@ -208,7 +208,7 @@ def get_main_parser(): help="Use `dvc COMMAND --help` for command-specific help.", ) - from dvc.command.base import fix_subparsers + from .utils import fix_subparsers fix_subparsers(subparsers) diff --git a/dvc/command/base.py b/dvc/cli/utils.py similarity index 57% rename from dvc/command/base.py rename to dvc/cli/utils.py index 78eb1a013..5b47b9d27 100644 --- a/dvc/command/base.py +++ b/dvc/cli/utils.py @@ -1,10 +1,3 @@ -import logging -import os -from abc import ABC, abstractmethod - -logger = logging.getLogger(__name__) - - def fix_subparsers(subparsers): """Workaround for bug in Python 3. See more info at: https://bugs.python.org/issue16308 @@ -28,37 +21,6 @@ def append_doc_link(help_message, path): ) -class CmdBase(ABC): - UNINITIALIZED = False - - def __init__(self, args): - from dvc.repo import Repo - - os.chdir(args.cd) - - self.repo = Repo(uninitialized=self.UNINITIALIZED) - self.config = self.repo.config - self.args = args - - def do_run(self): - with self.repo: - return self.run() - - @abstractmethod - def run(self): - pass - - -class CmdBaseNoRepo(CmdBase): - def __init__(self, args): # pylint: disable=super-init-not-called - self.args = args - - os.chdir(args.cd) - - def do_run(self): - return self.run() - - def fix_plumbing_subparsers(subparsers): # metavar needs to be explicitly set in order to hide plumbing subcommands # from the 'positional arguments' choices list diff --git a/dvc/command/add.py b/dvc/command/add.py index 70920cc20..000f23637 100644 --- a/dvc/command/add.py +++ b/dvc/command/add.py @@ -1,8 +1,9 @@ import argparse import logging +from dvc.cli.command import CmdBase +from dvc.cli.utils import append_doc_link from dvc.command import completion -from dvc.command.base import CmdBase, append_doc_link logger = logging.getLogger(__name__) diff --git a/dvc/command/cache.py b/dvc/command/cache.py index 90a33fa60..9548acab4 100644 --- a/dvc/command/cache.py +++ b/dvc/command/cache.py @@ -1,7 +1,7 @@ import argparse +from dvc.cli.utils import append_doc_link, fix_subparsers from dvc.command import completion -from dvc.command.base import append_doc_link, fix_subparsers from dvc.command.config import CmdConfig from dvc.ui import ui diff --git a/dvc/command/check_ignore.py b/dvc/command/check_ignore.py index f5a7a498c..389cc74da 100644 --- a/dvc/command/check_ignore.py +++ b/dvc/command/check_ignore.py @@ -1,7 +1,8 @@ import argparse +from dvc.cli.command import CmdBase +from dvc.cli.utils import append_doc_link from dvc.command import completion -from dvc.command.base import CmdBase, append_doc_link from dvc.ui import ui diff --git a/dvc/command/checkout.py b/dvc/command/checkout.py index 4938c6761..5b6764b13 100644 --- a/dvc/command/checkout.py +++ b/dvc/command/checkout.py @@ -1,8 +1,9 @@ import argparse import operator +from dvc.cli.command import CmdBase +from dvc.cli.utils import append_doc_link from dvc.command import completion -from dvc.command.base import CmdBase, append_doc_link from dvc.exceptions import CheckoutError from dvc.ui import ui diff --git a/dvc/command/commit.py b/dvc/command/commit.py index 647bb36b7..92e2ae3e0 100644 --- a/dvc/command/commit.py +++ b/dvc/command/commit.py @@ -1,8 +1,9 @@ import argparse import logging +from dvc.cli.command import CmdBase +from dvc.cli.utils import append_doc_link from dvc.command import completion -from dvc.command.base import CmdBase, append_doc_link logger = logging.getLogger(__name__) diff --git a/dvc/command/completion.py b/dvc/command/completion.py index 97cbc6904..1a68cf58e 100644 --- a/dvc/command/completion.py +++ b/dvc/command/completion.py @@ -3,7 +3,8 @@ import logging import shtab -from dvc.command.base import CmdBaseNoRepo, append_doc_link +from dvc.cli.command import CmdBaseNoRepo +from dvc.cli.utils import append_doc_link from dvc.ui import ui logger = logging.getLogger(__name__) diff --git a/dvc/command/config.py b/dvc/command/config.py index a3c76009c..054078c18 100644 --- a/dvc/command/config.py +++ b/dvc/command/config.py @@ -2,7 +2,8 @@ import argparse import logging import os -from dvc.command.base import CmdBaseNoRepo, append_doc_link +from dvc.cli.command import CmdBaseNoRepo +from dvc.cli.utils import append_doc_link from dvc.ui import ui logger = logging.getLogger(__name__) diff --git a/dvc/command/daemon.py b/dvc/command/daemon.py index cf82bcc93..1039a242a 100644 --- a/dvc/command/daemon.py +++ b/dvc/command/daemon.py @@ -1,5 +1,6 @@ +from dvc.cli.command import CmdBaseNoRepo +from dvc.cli.utils import fix_subparsers from dvc.command import completion -from dvc.command.base import CmdBaseNoRepo, fix_subparsers class CmdDaemonBase(CmdBaseNoRepo): diff --git a/dvc/command/dag.py b/dvc/command/dag.py index 183e867aa..03cc96dad 100644 --- a/dvc/command/dag.py +++ b/dvc/command/dag.py @@ -1,6 +1,7 @@ import argparse -from dvc.command.base import CmdBase, append_doc_link +from dvc.cli.command import CmdBase +from dvc.cli.utils import append_doc_link from dvc.ui import ui diff --git a/dvc/command/data_sync.py b/dvc/command/data_sync.py index 980b3ea40..ee1109d80 100644 --- a/dvc/command/data_sync.py +++ b/dvc/command/data_sync.py @@ -1,8 +1,9 @@ import argparse import logging +from dvc.cli.command import CmdBase +from dvc.cli.utils import append_doc_link from dvc.command import completion -from dvc.command.base import CmdBase, append_doc_link logger = logging.getLogger(__name__) diff --git a/dvc/command/destroy.py b/dvc/command/destroy.py index bc0e6bb58..4b88683fd 100644 --- a/dvc/command/destroy.py +++ b/dvc/command/destroy.py @@ -1,7 +1,8 @@ import argparse import logging -from dvc.command.base import CmdBase, append_doc_link +from dvc.cli.command import CmdBase +from dvc.cli.utils import append_doc_link logger = logging.getLogger(__name__) diff --git a/dvc/command/diff.py b/dvc/command/diff.py index 85e4f5a75..ecbc8f673 100644 --- a/dvc/command/diff.py +++ b/dvc/command/diff.py @@ -2,8 +2,9 @@ import argparse import logging import os +from dvc.cli.command import CmdBase +from dvc.cli.utils import append_doc_link from dvc.command import completion -from dvc.command.base import CmdBase, append_doc_link from dvc.ui import ui logger = logging.getLogger(__name__) diff --git a/dvc/command/experiments/__init__.py b/dvc/command/experiments/__init__.py index d8ff7e825..210267bb5 100644 --- a/dvc/command/experiments/__init__.py +++ b/dvc/command/experiments/__init__.py @@ -1,6 +1,6 @@ import argparse -from dvc.command.base import ( +from dvc.cli.utils import ( append_doc_link, fix_plumbing_subparsers, fix_subparsers, diff --git a/dvc/command/experiments/apply.py b/dvc/command/experiments/apply.py index 38eb4fab2..bf93d0e6e 100644 --- a/dvc/command/experiments/apply.py +++ b/dvc/command/experiments/apply.py @@ -1,8 +1,9 @@ import argparse import logging +from dvc.cli.command import CmdBase +from dvc.cli.utils import append_doc_link from dvc.command import completion -from dvc.command.base import CmdBase, append_doc_link logger = logging.getLogger(__name__) diff --git a/dvc/command/experiments/branch.py b/dvc/command/experiments/branch.py index 05a037713..7a5d83256 100644 --- a/dvc/command/experiments/branch.py +++ b/dvc/command/experiments/branch.py @@ -1,7 +1,8 @@ import argparse import logging -from dvc.command.base import CmdBase, append_doc_link +from dvc.cli.command import CmdBase +from dvc.cli.utils import append_doc_link logger = logging.getLogger(__name__) diff --git a/dvc/command/experiments/diff.py b/dvc/command/experiments/diff.py index 779494b49..154940c1d 100644 --- a/dvc/command/experiments/diff.py +++ b/dvc/command/experiments/diff.py @@ -1,8 +1,9 @@ import argparse import logging +from dvc.cli.command import CmdBase +from dvc.cli.utils import append_doc_link from dvc.command import completion -from dvc.command.base import CmdBase, append_doc_link from dvc.command.metrics import DEFAULT_PRECISION from dvc.exceptions import DvcException from dvc.ui import ui diff --git a/dvc/command/experiments/exec_run.py b/dvc/command/experiments/exec_run.py index f49b64e51..d10a79bde 100644 --- a/dvc/command/experiments/exec_run.py +++ b/dvc/command/experiments/exec_run.py @@ -1,6 +1,6 @@ import logging -from dvc.command.base import CmdBaseNoRepo +from dvc.cli.command import CmdBaseNoRepo logger = logging.getLogger(__name__) diff --git a/dvc/command/experiments/gc.py b/dvc/command/experiments/gc.py index dda56a710..0feed940d 100644 --- a/dvc/command/experiments/gc.py +++ b/dvc/command/experiments/gc.py @@ -1,7 +1,8 @@ import argparse import logging -from dvc.command.base import CmdBase, append_doc_link +from dvc.cli.command import CmdBase +from dvc.cli.utils import append_doc_link from dvc.exceptions import InvalidArgumentError from dvc.ui import ui diff --git a/dvc/command/experiments/init.py b/dvc/command/experiments/init.py index 713109b49..153bd4be6 100644 --- a/dvc/command/experiments/init.py +++ b/dvc/command/experiments/init.py @@ -3,7 +3,8 @@ import logging from funcy import compact -from dvc.command.base import CmdBase, append_doc_link +from dvc.cli.command import CmdBase +from dvc.cli.utils import append_doc_link from dvc.exceptions import InvalidArgumentError from dvc.ui import ui diff --git a/dvc/command/experiments/ls.py b/dvc/command/experiments/ls.py index 6f249a609..752561bfa 100644 --- a/dvc/command/experiments/ls.py +++ b/dvc/command/experiments/ls.py @@ -1,7 +1,8 @@ import argparse import logging -from dvc.command.base import CmdBase, append_doc_link +from dvc.cli.command import CmdBase +from dvc.cli.utils import append_doc_link logger = logging.getLogger(__name__) diff --git a/dvc/command/experiments/pull.py b/dvc/command/experiments/pull.py index 45af21a60..3cd7e0ea8 100644 --- a/dvc/command/experiments/pull.py +++ b/dvc/command/experiments/pull.py @@ -1,7 +1,8 @@ import argparse import logging -from dvc.command.base import CmdBase, append_doc_link +from dvc.cli.command import CmdBase +from dvc.cli.utils import append_doc_link from dvc.ui import ui logger = logging.getLogger(__name__) diff --git a/dvc/command/experiments/push.py b/dvc/command/experiments/push.py index 73b6becd9..2facbaf2f 100644 --- a/dvc/command/experiments/push.py +++ b/dvc/command/experiments/push.py @@ -1,8 +1,9 @@ import argparse import logging +from dvc.cli.command import CmdBase +from dvc.cli.utils import append_doc_link from dvc.command import completion -from dvc.command.base import CmdBase, append_doc_link from dvc.ui import ui logger = logging.getLogger(__name__) diff --git a/dvc/command/experiments/remove.py b/dvc/command/experiments/remove.py index bd0b71f64..4226c4845 100644 --- a/dvc/command/experiments/remove.py +++ b/dvc/command/experiments/remove.py @@ -1,7 +1,8 @@ import argparse import logging -from dvc.command.base import CmdBase, append_doc_link +from dvc.cli.command import CmdBase +from dvc.cli.utils import append_doc_link logger = logging.getLogger(__name__) diff --git a/dvc/command/experiments/run.py b/dvc/command/experiments/run.py index d2381463b..085361a66 100644 --- a/dvc/command/experiments/run.py +++ b/dvc/command/experiments/run.py @@ -1,8 +1,8 @@ import argparse import logging +from dvc.cli.utils import append_doc_link from dvc.command import completion -from dvc.command.base import append_doc_link from dvc.command.repro import CmdRepro from dvc.command.repro import add_arguments as add_repro_arguments from dvc.exceptions import InvalidArgumentError diff --git a/dvc/command/experiments/show.py b/dvc/command/experiments/show.py index 0d31e5054..c27988ffe 100644 --- a/dvc/command/experiments/show.py +++ b/dvc/command/experiments/show.py @@ -8,8 +8,9 @@ from typing import TYPE_CHECKING, Dict, Iterable, Optional from funcy import lmap +from dvc.cli.command import CmdBase +from dvc.cli.utils import append_doc_link from dvc.command import completion -from dvc.command.base import CmdBase, append_doc_link from dvc.command.metrics import DEFAULT_PRECISION from dvc.exceptions import DvcException, InvalidArgumentError from dvc.ui import ui diff --git a/dvc/command/freeze.py b/dvc/command/freeze.py index d9124b11a..a43684875 100644 --- a/dvc/command/freeze.py +++ b/dvc/command/freeze.py @@ -1,8 +1,9 @@ import argparse import logging +from dvc.cli.command import CmdBase +from dvc.cli.utils import append_doc_link from dvc.command import completion -from dvc.command.base import CmdBase, append_doc_link from dvc.exceptions import DvcException logger = logging.getLogger(__name__) diff --git a/dvc/command/gc.py b/dvc/command/gc.py index ef7305bb9..c86e46a60 100644 --- a/dvc/command/gc.py +++ b/dvc/command/gc.py @@ -2,7 +2,8 @@ import argparse import logging import os -from dvc.command.base import CmdBase, append_doc_link +from dvc.cli.command import CmdBase +from dvc.cli.utils import append_doc_link from dvc.ui import ui logger = logging.getLogger(__name__) diff --git a/dvc/command/get.py b/dvc/command/get.py index f6e617b3f..895764d65 100644 --- a/dvc/command/get.py +++ b/dvc/command/get.py @@ -1,10 +1,11 @@ import argparse import logging +from dvc.cli.command import CmdBaseNoRepo from dvc.exceptions import DvcException +from ..cli.utils import append_doc_link from . import completion -from .base import CmdBaseNoRepo, append_doc_link logger = logging.getLogger(__name__) diff --git a/dvc/command/get_url.py b/dvc/command/get_url.py index 848842783..ffab4222a 100644 --- a/dvc/command/get_url.py +++ b/dvc/command/get_url.py @@ -1,10 +1,11 @@ import argparse import logging +from dvc.cli.command import CmdBaseNoRepo from dvc.exceptions import DvcException +from ..cli.utils import append_doc_link from . import completion -from .base import CmdBaseNoRepo, append_doc_link logger = logging.getLogger(__name__) diff --git a/dvc/command/git_hook.py b/dvc/command/git_hook.py index 9273039ad..24baa36ef 100644 --- a/dvc/command/git_hook.py +++ b/dvc/command/git_hook.py @@ -1,7 +1,8 @@ import logging import os -from dvc.command.base import CmdBaseNoRepo, fix_subparsers +from dvc.cli.command import CmdBaseNoRepo +from dvc.cli.utils import fix_subparsers from dvc.exceptions import NotDvcRepoError logger = logging.getLogger(__name__) diff --git a/dvc/command/imp.py b/dvc/command/imp.py index 2fad3bcb9..40e906b90 100644 --- a/dvc/command/imp.py +++ b/dvc/command/imp.py @@ -1,8 +1,9 @@ import argparse import logging +from dvc.cli.command import CmdBase +from dvc.cli.utils import append_doc_link from dvc.command import completion -from dvc.command.base import CmdBase, append_doc_link from dvc.exceptions import DvcException logger = logging.getLogger(__name__) diff --git a/dvc/command/imp_url.py b/dvc/command/imp_url.py index 5198d4f02..6c86dab4e 100644 --- a/dvc/command/imp_url.py +++ b/dvc/command/imp_url.py @@ -1,8 +1,9 @@ import argparse import logging +from dvc.cli.command import CmdBase +from dvc.cli.utils import append_doc_link from dvc.command import completion -from dvc.command.base import CmdBase, append_doc_link from dvc.exceptions import DvcException logger = logging.getLogger(__name__) diff --git a/dvc/command/init.py b/dvc/command/init.py index a1abf3267..3d0c774bb 100644 --- a/dvc/command/init.py +++ b/dvc/command/init.py @@ -4,7 +4,8 @@ import logging import colorama from dvc import analytics -from dvc.command.base import CmdBaseNoRepo, append_doc_link +from dvc.cli.command import CmdBaseNoRepo +from dvc.cli.utils import append_doc_link from dvc.utils import boxify from dvc.utils import format_link as fmt_link diff --git a/dvc/command/install.py b/dvc/command/install.py index 85b71fae4..6860b6af4 100644 --- a/dvc/command/install.py +++ b/dvc/command/install.py @@ -1,7 +1,8 @@ import argparse import logging -from dvc.command.base import CmdBase, append_doc_link +from dvc.cli.command import CmdBase +from dvc.cli.utils import append_doc_link from dvc.exceptions import DvcException logger = logging.getLogger(__name__) diff --git a/dvc/command/live.py b/dvc/command/live.py index 22b070e22..481d27e76 100644 --- a/dvc/command/live.py +++ b/dvc/command/live.py @@ -1,8 +1,9 @@ import argparse from pathlib import Path +from dvc.cli.command import CmdBase +from dvc.cli.utils import fix_subparsers from dvc.command import completion -from dvc.command.base import CmdBase, fix_subparsers from dvc.ui import ui diff --git a/dvc/command/ls/__init__.py b/dvc/command/ls/__init__.py index d8bfe0241..099f8d17e 100644 --- a/dvc/command/ls/__init__.py +++ b/dvc/command/ls/__init__.py @@ -1,8 +1,9 @@ import argparse import logging +from dvc.cli.command import CmdBaseNoRepo +from dvc.cli.utils import append_doc_link from dvc.command import completion -from dvc.command.base import CmdBaseNoRepo, append_doc_link from dvc.command.ls.ls_colors import LsColors from dvc.exceptions import DvcException from dvc.ui import ui diff --git a/dvc/command/machine.py b/dvc/command/machine.py index cdea6a3d9..1538e6680 100644 --- a/dvc/command/machine.py +++ b/dvc/command/machine.py @@ -1,6 +1,7 @@ import argparse -from dvc.command.base import CmdBase, append_doc_link, fix_subparsers +from dvc.cli.command import CmdBase +from dvc.cli.utils import append_doc_link, fix_subparsers from dvc.command.config import CmdConfig from dvc.compare import TabularData from dvc.config import ConfigError diff --git a/dvc/command/metrics.py b/dvc/command/metrics.py index e85ec184b..744c8b05d 100644 --- a/dvc/command/metrics.py +++ b/dvc/command/metrics.py @@ -1,8 +1,9 @@ import argparse import logging +from dvc.cli.command import CmdBase +from dvc.cli.utils import append_doc_link, fix_subparsers from dvc.command import completion -from dvc.command.base import CmdBase, append_doc_link, fix_subparsers from dvc.exceptions import DvcException from dvc.ui import ui from dvc.utils.serialize import encode_exception diff --git a/dvc/command/move.py b/dvc/command/move.py index 2f6156cdd..de919baa3 100644 --- a/dvc/command/move.py +++ b/dvc/command/move.py @@ -1,8 +1,9 @@ import argparse import logging +from dvc.cli.command import CmdBase +from dvc.cli.utils import append_doc_link from dvc.command import completion -from dvc.command.base import CmdBase, append_doc_link from dvc.exceptions import DvcException logger = logging.getLogger(__name__) diff --git a/dvc/command/params.py b/dvc/command/params.py index bccfbb481..e65d0b043 100644 --- a/dvc/command/params.py +++ b/dvc/command/params.py @@ -1,8 +1,9 @@ import argparse import logging +from dvc.cli.command import CmdBase +from dvc.cli.utils import append_doc_link, fix_subparsers from dvc.command import completion -from dvc.command.base import CmdBase, append_doc_link, fix_subparsers from dvc.exceptions import DvcException from dvc.ui import ui diff --git a/dvc/command/plots.py b/dvc/command/plots.py index 95172ec98..3f7048e3e 100644 --- a/dvc/command/plots.py +++ b/dvc/command/plots.py @@ -4,8 +4,9 @@ import logging from funcy import first +from dvc.cli.command import CmdBase +from dvc.cli.utils import append_doc_link, fix_subparsers from dvc.command import completion -from dvc.command.base import CmdBase, append_doc_link, fix_subparsers from dvc.exceptions import DvcException from dvc.ui import ui from dvc.utils import format_link diff --git a/dvc/command/remote.py b/dvc/command/remote.py index b7b094989..eaddb9f12 100644 --- a/dvc/command/remote.py +++ b/dvc/command/remote.py @@ -1,6 +1,6 @@ import argparse -from dvc.command.base import append_doc_link, fix_subparsers +from dvc.cli.utils import append_doc_link, fix_subparsers from dvc.command.config import CmdConfig from dvc.ui import ui from dvc.utils import format_link diff --git a/dvc/command/remove.py b/dvc/command/remove.py index 60838e2c0..dfe424478 100644 --- a/dvc/command/remove.py +++ b/dvc/command/remove.py @@ -1,8 +1,9 @@ import argparse import logging +from dvc.cli.command import CmdBase +from dvc.cli.utils import append_doc_link from dvc.command import completion -from dvc.command.base import CmdBase, append_doc_link from dvc.exceptions import DvcException logger = logging.getLogger(__name__) diff --git a/dvc/command/repro.py b/dvc/command/repro.py index fd9034fbf..46a276fd8 100644 --- a/dvc/command/repro.py +++ b/dvc/command/repro.py @@ -1,7 +1,8 @@ import argparse +from dvc.cli.command import CmdBase +from dvc.cli.utils import append_doc_link from dvc.command import completion -from dvc.command.base import CmdBase, append_doc_link from dvc.command.status import CmdDataStatus diff --git a/dvc/command/root.py b/dvc/command/root.py index 08b3a4154..475b21067 100644 --- a/dvc/command/root.py +++ b/dvc/command/root.py @@ -1,7 +1,8 @@ import argparse import logging -from dvc.command.base import CmdBaseNoRepo, append_doc_link +from dvc.cli.command import CmdBaseNoRepo +from dvc.cli.utils import append_doc_link from dvc.utils import relpath logger = logging.getLogger(__name__) diff --git a/dvc/command/run.py b/dvc/command/run.py index e511d192d..296e43b18 100644 --- a/dvc/command/run.py +++ b/dvc/command/run.py @@ -1,7 +1,8 @@ import argparse import logging -from dvc.command.base import CmdBase, append_doc_link +from dvc.cli.command import CmdBase +from dvc.cli.utils import append_doc_link from dvc.command.stage import parse_cmd from dvc.exceptions import DvcException diff --git a/dvc/command/stage.py b/dvc/command/stage.py index f8afe45c5..107049efd 100644 --- a/dvc/command/stage.py +++ b/dvc/command/stage.py @@ -3,8 +3,9 @@ import logging from itertools import chain, filterfalse from typing import TYPE_CHECKING, Dict, Iterable, List +from dvc.cli.command import CmdBase +from dvc.cli.utils import append_doc_link, fix_subparsers from dvc.command import completion -from dvc.command.base import CmdBase, append_doc_link, fix_subparsers from dvc.utils.cli_parse import parse_params from dvc.utils.humanize import truncate_text diff --git a/dvc/command/unprotect.py b/dvc/command/unprotect.py index 479b50d6e..307ae50ae 100644 --- a/dvc/command/unprotect.py +++ b/dvc/command/unprotect.py @@ -1,8 +1,9 @@ import argparse import logging +from dvc.cli.command import CmdBase +from dvc.cli.utils import append_doc_link from dvc.command import completion -from dvc.command.base import CmdBase, append_doc_link from dvc.exceptions import DvcException logger = logging.getLogger(__name__) diff --git a/dvc/command/update.py b/dvc/command/update.py index 01e67acba..5922f26d6 100644 --- a/dvc/command/update.py +++ b/dvc/command/update.py @@ -1,8 +1,9 @@ import argparse import logging +from dvc.cli.command import CmdBase +from dvc.cli.utils import append_doc_link from dvc.command import completion -from dvc.command.base import CmdBase, append_doc_link from dvc.exceptions import DvcException logger = logging.getLogger(__name__) diff --git a/dvc/command/version.py b/dvc/command/version.py index ca8c72eaf..e2f7a19e0 100644 --- a/dvc/command/version.py +++ b/dvc/command/version.py @@ -1,7 +1,8 @@ import argparse import logging -from dvc.command.base import CmdBaseNoRepo, append_doc_link +from dvc.cli.command import CmdBaseNoRepo +from dvc.cli.utils import append_doc_link from dvc.ui import ui logger = logging.getLogger(__name__) diff --git a/tests/func/test_cli.py b/tests/func/test_cli.py index 9d9fc84d4..b2b7390cc 100644 --- a/tests/func/test_cli.py +++ b/tests/func/test_cli.py @@ -1,8 +1,8 @@ import os from dvc.cli import DvcParserError, parse_args +from dvc.cli.command import CmdBase from dvc.command.add import CmdAdd -from dvc.command.base import CmdBase from dvc.command.checkout import CmdCheckout from dvc.command.config import CmdConfig from dvc.command.data_sync import CmdDataPull, CmdDataPush