Hi all, IPython has suffered quite a few problems with the inspect module in python 2.3. For these, unfortunately all I've been able to do is guard with overreaching except clauses, as I had not been able to find small, reproducible examples to pass on to the devs. But today I got a crash report from a user and I've been able to replicate this crash with a tiny script which does not depend on ipython at all.
I'd like to hear from some of our resident gurus if this is really an inspect.py bug before I bother the developers with a formal bug report on SF. The script below illustrates the problem. Just run it, and you'll get a traceback coming from inside inspect.py itself. For now, I've added a guard in ipython against this failure mode, but it would be nice to fix the problem at the source if there really is one. Best, f #!/usr/bin/env python """This script triggers an exception in inspect.py This exception was crashing ipython for the input line: (lambda(x): x[0] + x[1])(3) when IPython tried to print the traceback for the user. As far as I can tell, it's a bug in inspect, since for all other kinds of calls of invalid user input, ipython works fine. But perhaps it's my fault, I'm not sure.""" import sys import inspect try: # This line is invalid, but we should be able to build exception info for # it with the usual tools. (lambda(x): x[0] + x[1])(3) except: etb = sys.exc_info()[2] records = inspect.getinnerframes(etb) for frame, file, lnum, func, lines, index in records: # The getargvalues call below blows up with an exception in inspect.py args, varargs, varkw, locals = inspect.getargvalues(frame) print 'args:',args -- http://mail.python.org/mailman/listinfo/python-list