Hello, here I extend the idea of the smart help I've discussed recently. When I receive an error like:
TypeError: fun() takes exactly 2 arguments (1 given) I'd also like to see that method/function parameters (or the first line of its docstring). >From a discussion with gentle programmers in another newsgroup, I've see that this problem can probably be solved with something like: . import sys, exceptions, difflib, inspect . . def excepthook(type, value, tb): . extra = "" . if sys.last_type == exceptions.TypeError: . # extra = string of function/method + . # parameters inspect.getargspec(function or method) . import traceback . tblines = traceback.format_exception(type, value, tb) . tblines.append(extra) . print "".join( map(str, tblines) ) . sys.exit(1) . . sys.excepthook = excepthook inspect.getargspec is useful, but how can I find there the class+method or (function name) of the raised error? I can find the function name with something like this, but it doesn't look like a nice solution, and it cannot be used to find the class of the method: extra = str(sys.last_value) extra = extra[:extra.find("()")] Thank you, Bearophile -- http://mail.python.org/mailman/listinfo/python-list