From 03b372a0733b605475347d6f596f2184fc8db041 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: Tue, 26 Oct 2021 17:58:16 +0545 Subject: [PATCH] exp init: ask for command before paths --- dvc/repo/experiments/init.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/dvc/repo/experiments/init.py b/dvc/repo/experiments/init.py index 8e488bca5..4b5fdc918 100644 --- a/dvc/repo/experiments/init.py +++ b/dvc/repo/experiments/init.py @@ -146,16 +146,14 @@ def init_interactive( show_tree: bool = False, live: bool = False, ) -> Dict[str, str]: - primary = lremove( - provided.keys(), ["cmd", "code", "data", "models", "params"] - ) + command = provided.pop("cmd", None) + primary = lremove(provided.keys(), ["code", "data", "models", "params"]) secondary = lremove( provided.keys(), ["live"] if live else ["metrics", "plots"] ) ret: Dict[str, str] = {} - - if not (primary or secondary): + if not (command or primary or secondary): return ret message = ui.rich_text.assemble( @@ -170,6 +168,13 @@ def init_interactive( ) ui.error_write(message, doc_link, "", sep="\n", styled=True) + if not command: + ret.update(_prompts(["cmd"], defaults)) + ui.write() + else: + ret.update({"cmd": command}) + + ui.write("Enter the paths for dependencies and outputs of the command.") if show_tree: from rich.tree import Tree @@ -178,7 +183,6 @@ def init_interactive( highlight=True, ) workspace = {**defaults, **provided} - workspace.pop("cmd", None) if not live and "live" not in provided: workspace.pop("live", None) for value in sorted(workspace.values()):