Hot-keys on this page
r m x p toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
# -*- coding: utf-8 -*- The Sage pretty printer
Any transformation to a string goes through here. In other words, the :class:`~sage.repl.displayhook.formatter.SagePlainTextFormatter` is entirely implemented via :class:`SagePrettyPrinter`. Other formatters may or may not use :class:`SagePrettyPrinter` to generate text output.
AUTHORS:
- Bill Cauchois (2009): initial version - Jean-Baptiste Priez <jbp@kerios.fr> (2013): ASCII art - Volker Braun (2013): refactored into DisplayHookBase """
#***************************************************************************** # Copyright (C) 2014 Volker Braun <vbraun.name@gmail.com> # # Distributed under the terms of the GNU General Public License (GPL) # as published by the Free Software Foundation; either version 2 of # the License, or (at your option) any later version. # http://www.gnu.org/licenses/ #*****************************************************************************
# These object representers will be tried, in this order, until # one is found that is able to deal with the object. TallListRepr(), LargeMatrixHelpRepr(), SomeIPythonRepr(), PlainPythonRepr(), )
r""" Return whether we are currently at the top level.
OUTPUT:
Boolean. Whether we are currently pretty-printing an object at the outermost level (``True``), or whether the object is inside a container (``False``).
EXAMPLES::
sage: from sage.repl.display.pretty_print import SagePrettyPrinter sage: from six import StringIO sage: stream = StringIO() sage: spp = SagePrettyPrinter(stream, 78, '\n') sage: spp.toplevel() True """
""" Pretty print Sage objects for the commandline
INPUT:
See IPython documentation.
EXAMPLES::
sage: 123 123
IPython pretty printers::
sage: set({1, 2, 3}) {1, 2, 3} sage: dict(zzz=123, aaa=99, xab=10) # sorted by keys {'aaa': 99, 'xab': 10, 'zzz': 123}
These are overridden in IPython in a way that we feel is somewhat confusing, and we prefer to print them like plain Python which is more informative. See :trac:`14466` ::
sage: 'this is a string' 'this is a string' sage: type(123) <type 'sage.rings.integer.Integer'> sage: type <... 'type'> sage: import types sage: type('name', (), {}) <class '__main__.name'> sage: types.BuiltinFunctionType <type 'builtin_function_or_method'>
sage: def foo(): pass sage: foo <function foo at 0x...> """ output, max_width, newline, max_seq_length=max_seq_length)
r""" Pretty print ``obj``
This is the only method that outside code should invoke.
INPUT:
- ``obj`` -- anything.
OUTPUT:
String representation for object.
EXAMPLES::
sage: from sage.repl.display.pretty_print import SagePrettyPrinter sage: from six import StringIO sage: stream = StringIO() sage: SagePrettyPrinter(stream, 78, '\n').pretty([type, 123, 'foo']) sage: stream.getvalue() "[<... 'type'>," """ raise RuntimeError('printer failed to return boolean') raise RuntimeError('no printer registered for object') finally:
|