diff options
author | ianb <devnull@localhost> | 2007-10-10 01:39:08 +0000 |
---|---|---|
committer | ianb <devnull@localhost> | 2007-10-10 01:39:08 +0000 |
commit | 30d01e5ca79b1778d16557cdc50f340cbb4c34af (patch) | |
tree | 038d6ec6a0e2e2c4b978903bb288f26b284272fe /paste/exceptions | |
parent | 44b344bcffb98c15d93698be4be614eddd3ae12f (diff) | |
download | paste-30d01e5ca79b1778d16557cdc50f340cbb4c34af.tar.gz |
Fix #193, when a frame locals is a Context object(?)
Diffstat (limited to 'paste/exceptions')
-rw-r--r-- | paste/exceptions/collector.py | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/paste/exceptions/collector.py b/paste/exceptions/collector.py index 4eb7c1c..1520dd5 100644 --- a/paste/exceptions/collector.py +++ b/paste/exceptions/collector.py @@ -29,6 +29,7 @@ except ImportError: from StringIO import StringIO import linecache from paste.exceptions import serial_number_generator +import warnings DEBUG_EXCEPTION_FORMATTER = True DEBUG_IDENT_PREFIX = 'E-' @@ -265,9 +266,14 @@ class ExceptionCollector(object): co = f.f_code filename = co.co_filename name = co.co_name - locals = f.f_locals globals = f.f_globals - + locals = f.f_locals + if not hasattr(locals, 'has_key'): + # Something weird about this frame; it's not a real dict + warnings.warn( + "Frame %s has an invalid locals(): %r" % ( + globals.get('__name__', 'unknown'), locals)) + locals = {} data = {} data['modname'] = globals.get('__name__', None) data['filename'] = filename |