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.
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 settingstacklevel=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.