From ccab48dcaf6643c090fa24d9ff20f084de6db07e Mon Sep 17 00:00:00 2001 From: Soumya Snigdha Kundu Date: Mon, 8 Jun 2026 20:51:28 +0100 Subject: [PATCH 1/2] Fix adaptor map_names calling dict as function When adaptor wraps a function with **kwargs and inputs is a dict (name-mapping mode), map_names() called input_map(k, k) which treats the dict as a callable, raising TypeError. Use .get(k, k) to look up the mapping instead. Signed-off-by: Soumya Snigdha Kundu --- monai/transforms/adaptors.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/monai/transforms/adaptors.py b/monai/transforms/adaptors.py index b3c8b34f5c..3d22f3fb74 100644 --- a/monai/transforms/adaptors.py +++ b/monai/transforms/adaptors.py @@ -140,7 +140,7 @@ def must_be_types(variable_name, variable, types): raise TypeError(f"'{variable_name}' must be one of {types} but is {type(variable)}") def map_names(ditems, input_map): - return {input_map(k, k): v for k, v in ditems.items()} + return {input_map.get(k, k): v for k, v in ditems.items()} def map_only_names(ditems, input_map): return {v: ditems[k] for k, v in input_map.items()} From 78ee271d00bd53fd108f5fb311a8cd8208c25859 Mon Sep 17 00:00:00 2001 From: Soumya Snigdha Kundu Date: Mon, 8 Jun 2026 20:51:31 +0100 Subject: [PATCH 2/2] Add regression test for adaptor with **kwargs and dict inputs Tests that adaptor correctly renames keys when the wrapped function has **kwargs and inputs is a name-mapping dict. Fails before the fix with TypeError: 'dict' object is not callable. Signed-off-by: Soumya Snigdha Kundu --- tests/transforms/test_adaptors.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/tests/transforms/test_adaptors.py b/tests/transforms/test_adaptors.py index 2495fdc72e..36f81f60cf 100644 --- a/tests/transforms/test_adaptors.py +++ b/tests/transforms/test_adaptors.py @@ -125,6 +125,15 @@ def foo(a): dres = adaptor(foo, {"a": "b"}, {"b": "a"})(d) self.assertEqual(dres["b"], 4) + def test_kwargs_with_dict_inputs(self): + + def foo(**kwargs): + return {k: v * 2 for k, v in kwargs.items()} + + d = {"x": 3} + dres = adaptor(foo, {"out": "out"}, {"x": "out"})(d) + self.assertEqual(dres["out"], 6) + class TestApplyAlias(unittest.TestCase):