# encoding: utf-8 """Objects for replacing sys.displayhook().""" __docformat__ = "restructuredtext en" #------------------------------------------------------------------------------- # Copyright (C) 2008 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 #------------------------------------------------------------------------------- class IDisplayFormatter(object): """ Objects conforming to this interface will be responsible for formatting representations of objects that pass through sys.displayhook() during an interactive interpreter session. """ # The kind of formatter. kind = 'display' # The unique identifier for this formatter. identifier = None def __call__(self, obj): """ Return a formatted representation of an object. Return None if one cannot return a representation in this format. """ raise NotImplementedError class ReprDisplayFormatter(IDisplayFormatter): """ Return the repr() string representation of an object. """ # The unique identifier for this formatter. identifier = 'repr' def __call__(self, obj): """ Return a formatted representation of an object. """ return repr(obj) class PPrintDisplayFormatter(IDisplayFormatter): """ Return a pretty-printed string representation of an object. """ # The unique identifier for this formatter. identifier = 'pprint' def __call__(self, obj): """ Return a formatted representation of an object. """ import pprint return pprint.pformat(obj)