Why doesn't "filterwarnings" suppress this message?

J

John Nagle

Feedparser isn't supported for Python 3.0, so in Python 2.6, many warning
messages appear. I'm trying, in Python 2.6, to suppress the warning message:

./feedparser\feedparser.py:69: DeprecationWarning:
the sgmllib module has been removed in Python 3.0
import sgmllib, re, sys, copy, urlparse, time, rfc822, types,
cgi, urllib, urllib2

with this warning filter:

warnings.filterwarnings(action='ignore',
category=DeprecationWarning, module='feedparser')

The filter suppresses other deprecation warnings associated with
the feedparser module, but not that one. How do I get rid of that
one?

And no,

warnings.filterwarnings(action='ignore',
category=DeprecationWarning, module='sgmllib')

doesn't do it.

John Nagle
 
P

Peter Otten

John said:
Feedparser isn't supported for Python 3.0, so in Python 2.6, many
warning
messages appear. I'm trying, in Python 2.6, to suppress the warning
message:

./feedparser\feedparser.py:69: DeprecationWarning:
the sgmllib module has been removed in Python 3.0
import sgmllib, re, sys, copy, urlparse, time, rfc822, types,
cgi, urllib, urllib2

with this warning filter:

warnings.filterwarnings(action='ignore',
category=DeprecationWarning, module='feedparser')

The filter suppresses other deprecation warnings associated with
the feedparser module, but not that one. How do I get rid of that
one?

And no,

warnings.filterwarnings(action='ignore',
category=DeprecationWarning, module='sgmllib')

doesn't do it.

John Nagle

I can't confirm that:

$ cat nowarning.py
import sys
if "--off" in sys.argv:
import warnings
warnings.filterwarnings(action="ignore",
category=DeprecationWarning,
module="feedparser")
import feedparser
$ python nowarning.py
$ python -3 nowarning.py
/usr/lib/python2.6/site.py:1: DeprecationWarning: The 'new' module has been
removed in Python 3.0; use the 'types' module instead.
"""Append module search paths for third-party packages to sys.path.
/usr/lib/pymodules/python2.6/feedparser.py:69: DeprecationWarning: the
sgmllib module has been removed in Python 3.0
import sgmllib, re, sys, copy, urlparse, time, rfc822, types, cgi, urllib,
urllib2
/usr/lib/pymodules/python2.6/feedparser.py:69: DeprecationWarning: in 3.x,
rfc822 has been removed in favor of the email package
import sgmllib, re, sys, copy, urlparse, time, rfc822, types, cgi, urllib,
urllib2
$ python -3 nowarning.py --off
/usr/lib/python2.6/site.py:1: DeprecationWarning: The 'new' module has been
removed in Python 3.0; use the 'types' module instead.
"""Append module search paths for third-party packages to sys.path.
$ python -V
Python 2.6.4

Peter
 
J

John Nagle

It turned out to be a loading order issue. That message is generated
at import time, and "filterwarnings" hadn't been called yet.

John Nagle
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,995
Messages
2,570,230
Members
46,819
Latest member
masterdaster

Latest Threads

Top