Eliminating warnings from scikit-learn [duplicate]

I would like to ignore warnings from all packages when I am teaching, but scikit-learn seems to work around the use of the warnings package to control this. For example:

with warnings.catch_warnings():
    warnings.simplefilter("ignore")
    from sklearn import preprocessing

/usr/local/lib/python3.5/site-packages/sklearn/utils/fixes.py:66: DeprecationWarning: inspect.getargspec() is deprecated, use inspect.signature() instead
  if 'order' in inspect.getargspec(np.copy)[0]:
/usr/local/lib/python3.5/site-packages/sklearn/utils/fixes.py:358: DeprecationWarning: inspect.getargspec() is deprecated, use inspect.signature() instead
  if 'exist_ok' in inspect.getargspec(os.makedirs).args:

Am I using this module incorrectly, or is sklearn doing something its not supposed to?


Solution 1:

It annoys me to the extreme that sklearn forces warnings.

I started using this at the top of main.py:

def warn(*args, **kwargs):
    pass
import warnings
warnings.warn = warn

#... import sklearn stuff...

Solution 2:

They have changed their warning policy in 2013. You can ignore warnings (also specific types) with something like this:

import warnings
warnings.filterwarnings("ignore", category=DeprecationWarning)

//EDIT: in the comments below, Reed Richards points out that the filterwarnings call needs to be in the file that calls the function that gives the warning. I hope this helps those who experienced problems with this solution.