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()} 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):