Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion monai/utils/deprecated.py
Original file line number Diff line number Diff line change
Expand Up @@ -187,9 +187,15 @@ def _decorator(func):

@wraps(func)
def _wrapper(*args, **kwargs):
if new_name is not None and name in kwargs:
if new_name is not None and name in kwargs and new_name not in kwargs:
# replace the deprecated arg "name" with "new_name"
# if name is specified and new_name is not specified
kwargs[new_name] = kwargs[name]
try:
sig.bind(*args, **kwargs).arguments
except TypeError:
# multiple values for new_name using both args and kwargs
kwargs.pop(new_name, None)
binding = sig.bind(*args, **kwargs).arguments

positional_found = name in binding
Expand Down
2 changes: 2 additions & 0 deletions tests/test_deprecated.py
Original file line number Diff line number Diff line change
Expand Up @@ -246,6 +246,8 @@ def afoo4(a, b=None):

self.assertEqual(afoo4(b=2), 2)
# self.assertRaises(DeprecatedError, lambda: afoo4(1, b=2))
self.assertEqual(afoo4(1, b=2), 1) # new name is in use
self.assertEqual(afoo4(a=1, b=2), 1) # prefers the new arg
Comment thread
wyli marked this conversation as resolved.


if __name__ == "__main__":
Expand Down