Skip to content

deprecated_arg replacing name when deprecated argument is also passed. #3097

@ramonemiliani93

Description

@ramonemiliani93

Describe the bug
When constructing a class that has a deprecated argument and both the new and deprecated argument are passed the construction fails. This may happen, for example, when using other libraries that automatically construct the classes from a yaml file.

To Reproduce

from monai.networks.nets import UNet
unet = UNet(spatial_dims=2, in_channels=1, out_channels=1, channels=(16, 32, 64), strides=(2, 2, 2), dimensions=None)

Expected behavior
The instance of UNet should be created.

Screenshots
The error happens on line 190 of monai/utils/deprecated.py:

if new_name is not None and name in kwargs:
    # replace the deprecated arg "name" with "new_name"
    kwargs[new_name] = kwargs[name]

Environment

MONAI version: 0.7.0
Numpy version: 1.20.3
Pytorch version: 1.9.0
MONAI flags: HAS_EXT = False, USE_COMPILED = False
MONAI rev id: bfa054b

Optional dependencies:
Pytorch Ignite version: NOT INSTALLED or UNKNOWN VERSION.
Nibabel version: 3.2.1
scikit-image version: 0.18.3
Pillow version: 8.3.1
Tensorboard version: 2.6.0
gdown version: NOT INSTALLED or UNKNOWN VERSION.
TorchVision version: 0.10.0
tqdm version: 4.62.3
lmdb version: NOT INSTALLED or UNKNOWN VERSION.
psutil version: 5.8.0
pandas version: 1.3.2
einops version: NOT INSTALLED or UNKNOWN VERSION.
transformers version: NOT INSTALLED or UNKNOWN VERSION.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions