This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: Confusing error message from warnings.warn
Type: behavior Stage:
Components: Interpreter Core, Library (Lib) Versions: Python 3.1, Python 3.2, Python 3.3, Python 2.7
process
Status: closed Resolution: wont fix
Dependencies: Superseder:
Assigned To: Nosy List: Gerrit.Holl, brett.cannon
Priority: normal Keywords:

Created on 2011-03-14 10:47 by Gerrit.Holl, last changed 2022-04-11 14:57 by admin. This issue is now closed.

Messages (2)
msg130800 - (view) Author: Gerrit Holl (Gerrit.Holl) * Date: 2011-03-14 10:47
When accidentally passing a string to warnings.warn where one should pass a Warning-class, the error message is rather confusing:

 $ ./python 
 Python 2.7.1+ (release27-maint:88766, Mar  8 2011, 16:51:59) 
 [GCC 4.4.5] on linux2
 Type "help", "copyright", "credits" or "license" for more information.
 >>> import warnings
 >>> warnings.warn("aaa", "bbb")
 Traceback (most recent call last):
   File "<stdin>", line 1, in <module>
 TypeError: issubclass() arg 1 must be a class

It would be better for the error message to say TypeError: warnings must be classes inherited from ... or something like that.
msg131535 - (view) Author: Brett Cannon (brett.cannon) * (Python committer) Date: 2011-03-20 20:12
I'm not crazy about the idea of adding an inspect.isclass() check simply to clear up this rare error message. It's still decipherable what the problem is from the issubclass() message.

Closing as "won't fix".
History
Date User Action Args
2022-04-11 14:57:14adminsetgithub: 55703
2011-03-20 20:12:32brett.cannonsetstatus: open -> closed

messages: + msg131535
resolution: wont fix
nosy: brett.cannon, Gerrit.Holl
2011-03-18 18:06:42eric.araujosetnosy: + brett.cannon

versions: + Python 3.1, Python 3.2, Python 3.3
2011-03-14 10:47:51Gerrit.Hollcreate