### Navigation

- index
- modules |
- next |
- previous |
- The Sage Command Line »

# The Sage pretty printer

Any transformation to a string goes through here. In other words, the `SagePlainTextFormatter` is entirely implemented via `SagePrettyPrinter`. Other formatters may or may not use `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

class `sage.repl.display.pretty_print.``AsciiArtPrettyPrinter`(output, max_width, newline, max_seq_length=None)

  Bases: `sage.repl.display.pretty_print.SagePrettyPrinter`

  Pretty printer returning ASCII art

class `sage.repl.display.pretty_print.``SagePrettyPrinter`(output, max_width, newline, max_seq_length=None)

  Bases: `IPython.lib.pretty.PrettyPrinter`

  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 ticket #14466

      sage: 'this is a string'
      'this is a string'
      sage: type(123)
      <type 'sage.rings.integer.Integer'>
      sage: type
      <type 'type'>
      sage: [type, type]
      [<type 'type'>, <type 'type'>]
      sage: import types
      sage: types.ClassType('name', (), {})
      <class __main__.name at 0x...>
      sage: types.TypeType
      <type 'type'>
      sage: types.BuiltinFunctionType
      <type 'builtin_function_or_method'>

      sage: def foo(): pass
      sage: foo
      <function foo at 0x...>

  `pretty`(obj)

    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: import StringIO
        sage: stream = StringIO.StringIO()
        sage: SagePrettyPrinter(stream, 78, '\n').pretty([type, 123, 'foo'])
        sage: stream.getvalue()
        "[<type 'type'>,"

  `toplevel`()

    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: import StringIO
        sage: stream = StringIO.StringIO()
        sage: spp = SagePrettyPrinter(stream, 78, '\n')
        sage: spp.toplevel()
        True

class `sage.repl.display.pretty_print.``TypesetPrettyPrinter`(output, max_width, newline, max_seq_length=None)

  Bases: `sage.repl.display.pretty_print.SagePrettyPrinter`

  Pretty printer returning typeset html

  This is also used in the emacs-mode.

### Navigation

- index
- modules |
- next |
- previous |
- The Sage Command Line »