From 5d8c25297e0400848e7dc94e5a23bf1d7f4010d7 Mon Sep 17 00:00:00 2001 From: Nic Ma Date: Mon, 24 May 2021 22:28:08 +0800 Subject: [PATCH 1/2] [DLMED] fix CopyItemsd transform Signed-off-by: Nic Ma --- monai/transforms/utility/dictionary.py | 9 +++++---- tests/test_copy_itemsd.py | 6 +++--- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/monai/transforms/utility/dictionary.py b/monai/transforms/utility/dictionary.py index 3e8fecd691..c1a5c1aaea 100644 --- a/monai/transforms/utility/dictionary.py +++ b/monai/transforms/utility/dictionary.py @@ -730,10 +730,11 @@ def __call__(self, data): """ d = dict(data) - for new_key in self.names: - if new_key in d: - raise KeyError(f"Key {new_key} already exists in data.") - for key in self.key_iterator(d): + key_len = len(self.keys) + for i in range(self.times): + for key, new_key in self.key_iterator(d, self.names[i * key_len: (i + 1) * key_len]): + if new_key in d: + raise KeyError(f"Key {new_key} already exists in data.") if isinstance(d[key], torch.Tensor): d[new_key] = d[key].detach().clone() else: diff --git a/tests/test_copy_itemsd.py b/tests/test_copy_itemsd.py index e3133ae4f8..a0a1ad412b 100644 --- a/tests/test_copy_itemsd.py +++ b/tests/test_copy_itemsd.py @@ -31,12 +31,12 @@ class TestCopyItemsd(unittest.TestCase): @parameterized.expand([TEST_CASE_1, TEST_CASE_2, TEST_CASE_3, TEST_CASE_4]) def test_numpy_values(self, keys, times, names): - input_data = {"img": np.array([[0, 1], [1, 2]]), "seg": np.array([[0, 1], [1, 2]])} + input_data = {"img": np.array([[0, 1], [1, 2]]), "seg": np.array([[3, 4], [4, 5]])} result = CopyItemsd(keys=keys, times=times, names=names)(input_data) for name in ensure_tuple(names): self.assertTrue(name in result) - result[name] += 1 - np.testing.assert_allclose(result[name], np.array([[1, 2], [2, 3]])) + result["img_1"] += 1 + np.testing.assert_allclose(result["img_1"], np.array([[1, 2], [2, 3]])) np.testing.assert_allclose(result["img"], np.array([[0, 1], [1, 2]])) def test_tensor_values(self): From a379b64a22b547c2e1068582baad575c582b4b1e Mon Sep 17 00:00:00 2001 From: monai-bot Date: Mon, 24 May 2021 14:33:51 +0000 Subject: [PATCH 2/2] [MONAI] python code formatting Signed-off-by: monai-bot --- monai/transforms/utility/dictionary.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/monai/transforms/utility/dictionary.py b/monai/transforms/utility/dictionary.py index c1a5c1aaea..dd4fd381d9 100644 --- a/monai/transforms/utility/dictionary.py +++ b/monai/transforms/utility/dictionary.py @@ -732,7 +732,7 @@ def __call__(self, data): d = dict(data) key_len = len(self.keys) for i in range(self.times): - for key, new_key in self.key_iterator(d, self.names[i * key_len: (i + 1) * key_len]): + for key, new_key in self.key_iterator(d, self.names[i * key_len : (i + 1) * key_len]): if new_key in d: raise KeyError(f"Key {new_key} already exists in data.") if isinstance(d[key], torch.Tensor):