Skip to content

Commit 2eb5d14

Browse files
authored
Support flow orchestrator launches in JSON mode
Differential Revision: D81705462 Pull Request resolved: #1108
1 parent 9247816 commit 2eb5d14

File tree

1 file changed

+13
-3
lines changed

1 file changed

+13
-3
lines changed

torchx/cli/cmd_run.py

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -206,6 +206,7 @@ def run(self, args: argparse.Namespace) -> None:
206206
class CmdRun(SubCommand):
207207
def __init__(self) -> None:
208208
self._subparser: Optional[argparse.ArgumentParser] = None
209+
self._stdin_data_json: Optional[Dict[str, Any]] = None
209210

210211
def add_arguments(self, subparser: argparse.ArgumentParser) -> None:
211212
scheduler_names = get_scheduler_factories().keys()
@@ -369,6 +370,15 @@ def _run_from_stdin_args(self, runner: Runner, stdin_data: Dict[str, Any]) -> No
369370
torchx_run_args.scheduler_cfg = cfg
370371
self._run_inner(runner, torchx_run_args)
371372

373+
def _get_torchx_stdin_args(
374+
self, args: argparse.Namespace
375+
) -> Optional[Dict[str, Any]]:
376+
if not args.stdin:
377+
return None
378+
if self._stdin_data_json is None:
379+
self._stdin_data_json = self.torchx_json_from_stdin()
380+
return self._stdin_data_json
381+
372382
def torchx_json_from_stdin(self) -> Dict[str, Any]:
373383
try:
374384
stdin_data_json = json.load(sys.stdin)
@@ -419,11 +429,11 @@ def verify_no_extra_args(self, args: argparse.Namespace) -> None:
419429
)
420430

421431
def _run(self, runner: Runner, args: argparse.Namespace) -> None:
422-
# Verify no conflicting arguments when using to loop over the stdin
423432
self.verify_no_extra_args(args)
424433
if args.stdin:
425-
stdin_data_json = self.torchx_json_from_stdin()
426-
self._run_from_stdin_args(runner, stdin_data_json)
434+
stdin_data_json = self._get_torchx_stdin_args(args)
435+
if stdin_data_json is not None:
436+
self._run_from_stdin_args(runner, stdin_data_json)
427437
else:
428438
self._run_from_cli_args(runner, args)
429439

0 commit comments

Comments
 (0)