Should every Python function (or method) check for the validity of its arguments?
Not just the type, but if the values are within valid range, the dimensions are as expected, etc?
Or can just have functions that simply expect "adult-like" well-behaved behavior from other functions, programmer etc? And just mention in the docstring what is expected, and simply check for validity of user-input arguments at the user-facing function?
In the case of 'private' methods, it appears to me that we don't need to check for validity, but what about other methods/functions?
If we are too strict about this and check for everything, wouldn't the code be full of boring decorator type code? Is that fine?