Skip to content
Open
19 changes: 19 additions & 0 deletions Doc/library/code.rst
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,25 @@ build applications which provide an interactive interpreter prompt.
raises :exc:`OverflowError` or :exc:`ValueError` if the command contains an
invalid literal.

Overriding Console Output
-------------------------

To customize console output a user can replace :func:`sys.displayhook`
and/or :func:`sys.excepthook`. Alternatively, users can override
:meth:`InteractiveConsole.write` in a derived class.

The destination of console output is controlled as follows:

* The return value from successfully interpreted Python statements are printed
by calling :func:`sys.displayhook`. This is a side effect of
:func:`compile_command` passing ``'single'`` for *symbol*.
* Exception tracebacks and syntax errors are written to :data:`sys.stderr` by
default but can be redirected by setting :func:`sys.excepthook`.

Additionally, :class:`InteractiveConsole` will print banner information to
:data:`sys.stderr` if *banner* was passed to the constructor.



.. _interpreter-objects:

Expand Down
5 changes: 3 additions & 2 deletions Doc/library/functions.rst
Original file line number Diff line number Diff line change
Expand Up @@ -288,8 +288,9 @@ are always available. They are listed here in alphabetical order.
The *mode* argument specifies what kind of code must be compiled; it can be
``'exec'`` if *source* consists of a sequence of statements, ``'eval'`` if it
consists of a single expression, or ``'single'`` if it consists of a single
interactive statement (in the latter case, expression statements that
evaluate to something other than ``None`` will be printed).
interactive statement. In the latter case, expression statements that
evaluate to something other than ``None`` will be printed using
:func:`sys.displayhook`.

The optional arguments *flags* and *dont_inherit* control which
:ref:`compiler options <ast-compiler-flags>` should be activated
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Update to documentation.