From c2829f4ce869426b4b43b67e8cc2473f899cd378 Mon Sep 17 00:00:00 2001 From: karajan1001 Date: Wed, 14 Sep 2022 12:37:07 +0800 Subject: [PATCH] Make executor info compatible with old versions. --- dvc/repo/experiments/executor/base.py | 3 +++ tests/unit/repo/experiments/test_executor_status.py | 13 +++++++++++++ 2 files changed, 16 insertions(+) diff --git a/dvc/repo/experiments/executor/base.py b/dvc/repo/experiments/executor/base.py index 0ce17aef9..b8c171ac8 100644 --- a/dvc/repo/experiments/executor/base.py +++ b/dvc/repo/experiments/executor/base.py @@ -92,6 +92,9 @@ class ExecutorInfo: @classmethod def from_dict(cls, d): + if "collected" in d: + if d.pop("collected"): + d["status"] = TaskStatus.FINISHED return cls(**d) def asdict(self): diff --git a/tests/unit/repo/experiments/test_executor_status.py b/tests/unit/repo/experiments/test_executor_status.py index 7af673e74..e59dc0ba0 100644 --- a/tests/unit/repo/experiments/test_executor_status.py +++ b/tests/unit/repo/experiments/test_executor_status.py @@ -93,3 +93,16 @@ def test_workspace_executor_failed_status( else: executor_info = ExecutorInfo.load_json(infofile) assert executor_info.status == TaskStatus.FAILED + + +def test_executor_status_compatiblity(): + data = { + "git_url": "file:///Users/home", + "baseline_rev": "123", + "location": "dvc-task", + "root_dir": "/Users/home/8088/.dvc/tmp/exps/tmpx85892cx", + "dvc_dir": ".dvc", + "collected": True, + } + result = ExecutorInfo.from_dict(data) + assert result.status == TaskStatus.FINISHED