Peter Bengtsson wrote at 2005-7-30 17:10 +0100: >I'm using the inspect module in my python product to step back when >doing some debugging. >My code looks something like this:: > >class MyProduct: > > def hasRole(self, r): > for i in range(25): > try: > print inspect.stack()[i][3], > print inspect.stack()[i][2], > except IndexError: > break > >It works wonderfully well except when the caller of hasRole() is a >Page Template defined with the PageTemplateFile function. (it might be >equally bad with a ZODB persistent template I think).
Look at how "ExceptionFormatter" (in package "zExceptions") examines the stack for "__traceback_info__" and "__traceback_supplement__". You can in a similar way detect when you are in a PageTemplate method. PageTemplates have attributes describing the current sourcefile and line number. -- Dieter _______________________________________________ Zope maillist - Zope@zope.org http://mail.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope-dev )