##// END OF EJS Templates
Merging from trunk.
Merging from trunk.

File last commit:

r1234:52b55407
r1268:bb43f0d6 merge
Show More
display_formatter.py
70 lines | 1.8 KiB | text/x-python | PythonLexer
# 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)