Robin Becker wrote:
I'm trying to get a handle on a real world problem related to raising an exception. This is in the reportlab SimpleDoctemplate class.

The following code takes a very long time (>60 seconds) in Python 2.2, 2.3, 2.4, but not in 2.1 (at least on windows).

raise LayoutError("Flowable %s too large on page %d" % (f.identity(30), self.page))

However, the supposedly functionally identical code

ident = f.identity(30)
raise LayoutError("Flowable %s too large on page %d" % (ident, self.page))

does not take a long time (<< 1 second). The exception LayoutError is trivial
class LayoutError(Exception):
pass


.....

It seems this problem is caused by the above code being used in a cgitb.enabled() environment (in a cgi script). That also explains why it wasn't happening in 2.1 as we don't use cgitb in that case.

Moving f out of the cgitb evaluated variables lines allows things to work 
quickly.

Yet another cgitb problem.
--
Robin Becker

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to