Describe the bug
ot.utils.check_params is used rather heavily throughout ot.da functions. The function itself checks for None(s) in the input and returns False if at least one was spotted. Now, there are 2 patters of how check_params is used in the code that are somewhat hard to debug when argument passed is, in fact, "invalid":
fit function works when check_params returns True, otherwise just returns self (example). As there's no exceptions thrown, the downstream code safely assumes that fitting is done.
transform returns the result of the transformation only in case check_params returns True, otherwise returns None (example).
In both cases, it's rather hard to find the cause as the issue is only reported using print statements.
Expected behavior
Suggestion here is rather simple: to follow stricter convention, for example similar to check_array in sklearn. Throwing ValueError in case invalid argument is provided seems to be safer option. What do you think? Happy to make a PR with the changes.
Describe the bug
ot.utils.check_paramsis used rather heavily throughoutot.dafunctions. The function itself checks forNone(s) in the input and returnsFalseif at least one was spotted. Now, there are 2 patters of howcheck_paramsis used in the code that are somewhat hard to debug when argument passed is, in fact, "invalid":fitfunction works whencheck_paramsreturnsTrue, otherwise just returnsself(example). As there's no exceptions thrown, the downstream code safely assumes that fitting is done.transformreturns the result of the transformation only in casecheck_paramsreturnsTrue, otherwise returnsNone(example).In both cases, it's rather hard to find the cause as the issue is only reported using
printstatements.Expected behavior
Suggestion here is rather simple: to follow stricter convention, for example similar to
check_arrayin sklearn. ThrowingValueErrorin case invalid argument is provided seems to be safer option. What do you think? Happy to make a PR with the changes.