mirror of
https://github.com/Stone-Red-Code/dvc.git
synced 2026-11-05 23:09:32 +01:00
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Saugat Pachhai (सौगात) <[email protected]>
45 lines
847 B
Python
45 lines
847 B
Python
import os
|
|
from abc import ABC, abstractmethod
|
|
from typing import TYPE_CHECKING, Any
|
|
|
|
from dvc.log import logger
|
|
|
|
if TYPE_CHECKING:
|
|
from dvc.config import Config
|
|
|
|
logger = logger.getChild(__name__)
|
|
|
|
|
|
class CmdBase(ABC):
|
|
UNINITIALIZED = False
|
|
|
|
def __init__(self, args: Any):
|
|
from dvc.repo import Repo
|
|
|
|
os.chdir(args.cd)
|
|
|
|
self.repo: Repo = Repo(
|
|
uninitialized=self.UNINITIALIZED,
|
|
_wait_for_lock=args.wait_for_lock,
|
|
)
|
|
self.config: 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):
|
|
self.args = args
|
|
|
|
os.chdir(args.cd)
|
|
|
|
def do_run(self):
|
|
return self.run()
|