Problem
28 calls to warnings.warn() in monai/losses/ are missing the stacklevel parameter. Without stacklevel=2, warnings point to the MONAI internal code instead of the user's calling code, making it difficult for users to identify which part of their script triggered the warning.
Proposed Fix
Add stacklevel=2 to all 28 warnings.warn() calls in:
monai/losses/dice.py (7 instances)
monai/losses/tversky.py (3 instances)
monai/losses/mcc_loss.py (3 instances)
monai/losses/focal_loss.py (3 instances)
monai/losses/hausdorff_loss.py (3 instances)
monai/losses/unified_focal_loss.py (3 instances)
monai/losses/spatial_mask.py (3 instances)
monai/losses/perceptual.py (2 instances)
monai/losses/adversarial_loss.py (1 instance)
Affected Files
monai/losses/dice.py
monai/losses/tversky.py
monai/losses/mcc_loss.py
monai/losses/focal_loss.py
monai/losses/hausdorff_loss.py
monai/losses/unified_focal_loss.py
monai/losses/spatial_mask.py
monai/losses/perceptual.py
monai/losses/adversarial_loss.py
Problem
28 calls to
warnings.warn()inmonai/losses/are missing thestacklevelparameter. Withoutstacklevel=2, warnings point to the MONAI internal code instead of the user's calling code, making it difficult for users to identify which part of their script triggered the warning.Proposed Fix
Add
stacklevel=2to all 28warnings.warn()calls in:monai/losses/dice.py(7 instances)monai/losses/tversky.py(3 instances)monai/losses/mcc_loss.py(3 instances)monai/losses/focal_loss.py(3 instances)monai/losses/hausdorff_loss.py(3 instances)monai/losses/unified_focal_loss.py(3 instances)monai/losses/spatial_mask.py(3 instances)monai/losses/perceptual.py(2 instances)monai/losses/adversarial_loss.py(1 instance)Affected Files
monai/losses/dice.pymonai/losses/tversky.pymonai/losses/mcc_loss.pymonai/losses/focal_loss.pymonai/losses/hausdorff_loss.pymonai/losses/unified_focal_loss.pymonai/losses/spatial_mask.pymonai/losses/perceptual.pymonai/losses/adversarial_loss.py