craffel / mir_eval

Evaluation functions for music/audio information retrieval/signal processing algorithms.
MIT License
588 stars 109 forks source link

Set warning stacklevels for validation #372

Open bmcfee opened 3 months ago

bmcfee commented 3 months ago

Validator functions often raise warnings when something isn't quite right, eg:

https://github.com/craffel/mir_eval/blob/57f7c31b120f6135c31207295372e3b67848126d/mir_eval/chord.py#L640-L644

However, the warning shows up to the user as coming from the validate function, which is not all that helpful since they never call this directly. We can make this more useful by setting stacklevel=2.

This way the warning will point to the evaluator that called validate, which is a little more helpful for debugging purposes, especially when the user is calling a module-level evaluate() function.

craffel commented 3 months ago

Good idea! Didn't know you could specify where in the stack the warning should come up.