diff --git a/mir_eval/beat.py b/mir_eval/beat.py index 21211a07..83221e72 100644 --- a/mir_eval/beat.py +++ b/mir_eval/beat.py @@ -88,9 +88,9 @@ def validate(reference_beats, estimated_beats): # If reference or estimated beats are empty, # warn because metric will be 0 if reference_beats.size == 0: - warnings.warn("Reference beats are empty.") + warnings.warn("Reference beats are empty.", stacklevel=2) if estimated_beats.size == 0: - warnings.warn("Estimated beats are empty.") + warnings.warn("Estimated beats are empty.", stacklevel=2) for beats in [reference_beats, estimated_beats]: util.validate_events(beats, MAX_TIME) diff --git a/mir_eval/chord.py b/mir_eval/chord.py index 69939e7a..5a5a9a23 100644 --- a/mir_eval/chord.py +++ b/mir_eval/chord.py @@ -642,9 +642,9 @@ def validate(reference_labels, estimated_labels): validate_chord_label(chord_label) # When either label list is empty, warn the user if len(reference_labels) == 0: - warnings.warn("Reference labels are empty") + warnings.warn("Reference labels are empty", stacklevel=2) if len(estimated_labels) == 0: - warnings.warn("Estimated labels are empty") + warnings.warn("Estimated labels are empty", stacklevel=2) def weighted_accuracy(comparisons, weights): diff --git a/mir_eval/hierarchy.py b/mir_eval/hierarchy.py index c5ad5be5..9df30a9c 100644 --- a/mir_eval/hierarchy.py +++ b/mir_eval/hierarchy.py @@ -459,7 +459,7 @@ def validate_hier_intervals(intervals_hier): if boundaries - new_bounds: warnings.warn( - "Segment hierarchy is inconsistent " "at level {:d}".format(level) + "Segment hierarchy is inconsistent " "at level {:d}".format(level), stacklevel=2 ) boundaries |= new_bounds diff --git a/mir_eval/melody.py b/mir_eval/melody.py index ab4d6e42..ec2632f2 100644 --- a/mir_eval/melody.py +++ b/mir_eval/melody.py @@ -82,13 +82,13 @@ def validate_voicing(ref_voicing, est_voicing): """ if ref_voicing.size == 0: - warnings.warn("Reference voicing array is empty.") + warnings.warn("Reference voicing array is empty.", stacklevel=2) if est_voicing.size == 0: - warnings.warn("Estimated voicing array is empty.") + warnings.warn("Estimated voicing array is empty.", stacklevel=2) if ref_voicing.sum() == 0: - warnings.warn("Reference melody has no voiced frames.") + warnings.warn("Reference melody has no voiced frames.", stacklevel=2) if est_voicing.sum() == 0: - warnings.warn("Estimated melody has no voiced frames.") + warnings.warn("Estimated melody has no voiced frames.", stacklevel=2) # Make sure they're the same length if ref_voicing.shape[0] != est_voicing.shape[0]: raise ValueError( @@ -117,9 +117,9 @@ def validate(ref_voicing, ref_cent, est_voicing, est_cent): """ if ref_cent.size == 0: - warnings.warn("Reference frequency array is empty.") + warnings.warn("Reference frequency array is empty.", stacklevel=2) if est_cent.size == 0: - warnings.warn("Estimated frequency array is empty.") + warnings.warn("Estimated frequency array is empty.", stacklevel=2) # Make sure they're the same length if ( ref_voicing.shape[0] != ref_cent.shape[0] diff --git a/mir_eval/multipitch.py b/mir_eval/multipitch.py index bc74f3de..456417bf 100644 --- a/mir_eval/multipitch.py +++ b/mir_eval/multipitch.py @@ -72,17 +72,17 @@ def validate(ref_time, ref_freqs, est_time, est_freqs): util.validate_events(est_time, max_time=MAX_TIME) if ref_time.size == 0: - warnings.warn("Reference times are empty.") + warnings.warn("Reference times are empty.", stacklevel=2) if ref_time.ndim != 1: raise ValueError("Reference times have invalid dimension") if len(ref_freqs) == 0: - warnings.warn("Reference frequencies are empty.") + warnings.warn("Reference frequencies are empty.", stacklevel=2) if est_time.size == 0: - warnings.warn("Estimated times are empty.") + warnings.warn("Estimated times are empty.", stacklevel=2) if est_time.ndim != 1: raise ValueError("Estimated times have invalid dimension") if len(est_freqs) == 0: - warnings.warn("Estimated frequencies are empty.") + warnings.warn("Estimated frequencies are empty.", stacklevel=2) if ref_time.size != len(ref_freqs): raise ValueError("Reference times and frequencies have unequal " "lengths.") if est_time.size != len(est_freqs): diff --git a/mir_eval/onset.py b/mir_eval/onset.py index d3437a33..a315f23b 100644 --- a/mir_eval/onset.py +++ b/mir_eval/onset.py @@ -46,9 +46,9 @@ def validate(reference_onsets, estimated_onsets): """ # If reference or estimated onsets are empty, warn because metric will be 0 if reference_onsets.size == 0: - warnings.warn("Reference onsets are empty.") + warnings.warn("Reference onsets are empty.", stacklevel=2) if estimated_onsets.size == 0: - warnings.warn("Estimated onsets are empty.") + warnings.warn("Estimated onsets are empty.", stacklevel=2) for onsets in [reference_onsets, estimated_onsets]: util.validate_events(onsets, MAX_TIME) diff --git a/mir_eval/pattern.py b/mir_eval/pattern.py index 1dc75436..cc05fc8f 100644 --- a/mir_eval/pattern.py +++ b/mir_eval/pattern.py @@ -92,9 +92,9 @@ def validate(reference_patterns, estimated_patterns): """ # Warn if pattern lists are empty if _n_onset_midi(reference_patterns) == 0: - warnings.warn("Reference patterns are empty.") + warnings.warn("Reference patterns are empty.", stacklevel=2) if _n_onset_midi(estimated_patterns) == 0: - warnings.warn("Estimated patterns are empty.") + warnings.warn("Estimated patterns are empty.", stacklevel=2) for patterns in [reference_patterns, estimated_patterns]: for pattern in patterns: if len(pattern) <= 0: diff --git a/mir_eval/segment.py b/mir_eval/segment.py index 7a49d6ff..7b03f596 100644 --- a/mir_eval/segment.py +++ b/mir_eval/segment.py @@ -110,10 +110,10 @@ def validate_boundary(reference_intervals, estimated_intervals, trim): min_size = 1 if len(reference_intervals) < min_size: - warnings.warn("Reference intervals are empty.") + warnings.warn("Reference intervals are empty.", stacklevel=2) if len(estimated_intervals) < min_size: - warnings.warn("Estimated intervals are empty.") + warnings.warn("Estimated intervals are empty.", stacklevel=2) for intervals in [reference_intervals, estimated_intervals]: util.validate_intervals(intervals) @@ -157,9 +157,9 @@ def validate_structure( raise ValueError("Segment intervals do not start at 0") if reference_intervals.size == 0: - warnings.warn("Reference intervals are empty.") + warnings.warn("Reference intervals are empty.", stacklevel=2) if estimated_intervals.size == 0: - warnings.warn("Estimated intervals are empty.") + warnings.warn("Estimated intervals are empty.", stacklevel=2) # Check only when intervals are non-empty if reference_intervals.size > 0 and estimated_intervals.size > 0: if not np.allclose(reference_intervals.max(), estimated_intervals.max()): diff --git a/mir_eval/separation.py b/mir_eval/separation.py index 0bb0704e..fdd9bbfd 100644 --- a/mir_eval/separation.py +++ b/mir_eval/separation.py @@ -91,7 +91,7 @@ def validate(reference_sources, estimated_sources): warnings.warn( "reference_sources is empty, should be of size " "(nsrc, nsample). sdr, sir, sar, and perm will all " - "be empty np.ndarrays" + "be empty np.ndarrays", stacklevel=2 ) elif _any_source_silent(reference_sources): raise ValueError( @@ -106,7 +106,7 @@ def validate(reference_sources, estimated_sources): warnings.warn( "estimated_sources is empty, should be of size " "(nsrc, nsample). sdr, sir, sar, and perm will all " - "be empty np.ndarrays" + "be empty np.ndarrays", stacklevel=2 ) elif _any_source_silent(estimated_sources): raise ValueError( diff --git a/mir_eval/tempo.py b/mir_eval/tempo.py index aa090da8..5fb3e1f7 100644 --- a/mir_eval/tempo.py +++ b/mir_eval/tempo.py @@ -114,7 +114,7 @@ def detection(reference_tempi, reference_weight, estimated_tempi, tol=0.08): "invalid tolerance {}: must lie in the range " "[0, 1]".format(tol) ) if tol == 0.0: - warnings.warn("A tolerance of 0.0 may not " "lead to the results you expect.") + warnings.warn("A tolerance of 0.0 may not " "lead to the results you expect.", stacklevel=2) hits = [False, False] diff --git a/mir_eval/transcription.py b/mir_eval/transcription.py index 65504279..bdb436ae 100644 --- a/mir_eval/transcription.py +++ b/mir_eval/transcription.py @@ -158,9 +158,9 @@ def validate_intervals(ref_intervals, est_intervals): """ # If reference or estimated notes are empty, warn if ref_intervals.size == 0: - warnings.warn("Reference notes are empty.") + warnings.warn("Reference notes are empty.", stacklevel=2) if est_intervals.size == 0: - warnings.warn("Estimated notes are empty.") + warnings.warn("Estimated notes are empty.", stacklevel=2) # Validate intervals util.validate_intervals(ref_intervals)