##// END OF EJS Templates
Catch errors raised by user objects when accessing attributes....
Catch errors raised by user objects when accessing attributes. When analyzing the line with prefilter, we look into whether objects have a 'rewrite' attribute. While this is off-spec, we've seen in the wild objects that raise something other than AttributeError on attribute access. Now we catch all exceptions in this codepath. Closes #988.

File last commit:

r2814:6e6dcc90
r5298:467b5b29
Show More
payload.py
41 lines | 1.2 KiB | text/x-python | PythonLexer
# -*- coding: utf-8 -*-
"""Payload system for IPython.
Authors:
* Fernando Perez
* Brian Granger
"""
#-----------------------------------------------------------------------------
# Copyright (C) 2008-2010 The IPython Development Team
#
# Distributed under the terms of the BSD License. The full license is in
# the file COPYING, distributed as part of this software.
#-----------------------------------------------------------------------------
#-----------------------------------------------------------------------------
# Imports
#-----------------------------------------------------------------------------
from IPython.config.configurable import Configurable
from IPython.utils.traitlets import List
#-----------------------------------------------------------------------------
# Main payload class
#-----------------------------------------------------------------------------
class PayloadManager(Configurable):
_payload = List([])
def write_payload(self, data):
if not isinstance(data, dict):
raise TypeError('Each payload write must be a dict, got: %r' % data)
self._payload.append(data)
def read_payload(self):
return self._payload
def clear_payload(self):
self._payload = []