IPython Backend for the Sage Rich Output System¶
This module defines the IPython backends for
sage.repl.rich_output
.
-
class
sage.repl.rich_output.backend_ipython.
BackendIPython
¶ Bases:
sage.repl.rich_output.backend_base.BackendBase
Common base for the IPython UIs
EXAMPLES:
sage: from sage.repl.rich_output.backend_ipython import BackendIPython sage: BackendIPython()._repr_() Traceback (most recent call last): ... NotImplementedError: derived classes must implement this method
-
display_immediately
(plain_text, rich_output)¶ Show output immediately.
This method is similar to the rich output
displayhook()
, except that it can be invoked at any time.INPUT:
Same as
displayhook()
.OUTPUT:
This method does not return anything.
EXAMPLES:
sage: from sage.repl.rich_output.output_basic import OutputPlainText sage: plain_text = OutputPlainText.example() sage: from sage.repl.rich_output.backend_ipython import BackendIPythonNotebook sage: backend = BackendIPythonNotebook() sage: _ = backend.display_immediately(plain_text, plain_text) Example plain text output
-
install
(**kwds)¶ Switch the Sage rich output to the IPython backend
INPUT:
shell
– keyword argument. The IPython shell.
No tests since switching away from the doctest rich output backend will break the doctests.
EXAMPLES:
sage: from sage.repl.interpreter import get_test_shell sage: from sage.repl.rich_output.backend_ipython import BackendIPython sage: backend = BackendIPython() sage: shell = get_test_shell() sage: backend.install(shell=shell) sage: shell.run_cell('1+1') 2
-
set_underscore_variable
(obj)¶ Set the
_
builtin variable.Since IPython handles the history itself, this does nothing.
INPUT:
obj
– anything.
EXAMPLES:
sage: from sage.repl.interpreter import get_test_shell sage: from sage.repl.rich_output.backend_ipython import BackendIPython sage: backend = BackendIPython() sage: backend.set_underscore_variable(123) sage: _ 0
-
-
class
sage.repl.rich_output.backend_ipython.
BackendIPythonCommandline
¶ Bases:
sage.repl.rich_output.backend_ipython.BackendIPython
Backend for the IPython Command Line
EXAMPLES:
sage: from sage.repl.rich_output.backend_ipython import BackendIPythonCommandline sage: BackendIPythonCommandline() IPython command line
-
default_preferences
()¶ Return the backend’s display preferences
The default for the commandline is to not plot graphs since the launching of an external viewer is considered too disruptive.
OUTPUT:
Instance of
DisplayPreferences
.EXAMPLES:
sage: from sage.repl.rich_output.backend_ipython import BackendIPythonCommandline sage: backend = BackendIPythonCommandline() sage: backend.default_preferences() Display preferences: * graphics is not specified * supplemental_plot = never * text is not specified
-
display_immediately
(plain_text, rich_output)¶ Show output without going back to the command line prompt.
This method is similar to the rich output
displayhook()
, except that it can be invoked at any time. On the Sage command line it launches viewers just likedisplayhook()
.INPUT:
Same as
displayhook()
.OUTPUT:
This method does not return anything.
EXAMPLES:
sage: from sage.repl.rich_output.output_basic import OutputPlainText sage: plain_text = OutputPlainText.example() sage: from sage.repl.rich_output.backend_ipython import BackendIPythonCommandline sage: backend = BackendIPythonCommandline() sage: backend.display_immediately(plain_text, plain_text) Example plain text output
-
displayhook
(plain_text, rich_output)¶ Backend implementation of the displayhook
INPUT:
plain_text
– instance ofOutputPlainText
. The plain text version of the output.rich_output
– instance of an output container class (subclass ofOutputBase
). Guaranteed to be one of the output containers returned fromsupported_output()
, possibly the same asplain_text
.
OUTPUT:
The IPython commandline display hook returns the IPython display data, a pair of dictionaries. The first dictionary contains mime types as keys and the respective output as value. The second dictionary is metadata.
EXAMPLES:
sage: from sage.repl.rich_output.output_basic import OutputPlainText sage: plain_text = OutputPlainText.example() sage: from sage.repl.rich_output.backend_ipython import BackendIPythonCommandline sage: backend = BackendIPythonCommandline() sage: backend.displayhook(plain_text, plain_text) ({u'text/plain': u'Example plain text output'}, {})
-
is_in_terminal
()¶ Test whether the UI is meant to run in a terminal
See
sage.repl.rich_output.display_manager.DisplayManager.is_in_terminal()
for details.OUTPUT:
True
for the IPython commandline.EXAMPLES:
sage: from sage.repl.rich_output.backend_ipython import BackendIPythonCommandline sage: backend = BackendIPythonCommandline() sage: backend.is_in_terminal() True
-
launch_jmol
(output_jmol, plain_text)¶ Launch the stand-alone jmol viewer
INPUT:
output_jmol
–OutputSceneJmol
. The scene to launch Jmol with.plain_text
– string. The plain text representation.
OUTPUT:
String. Human-readable message indicating that the viewer was launched.
EXAMPLES:
sage: from sage.repl.rich_output.backend_ipython import BackendIPythonCommandline sage: backend = BackendIPythonCommandline() sage: from sage.repl.rich_output.output_graphics3d import OutputSceneJmol sage: backend.launch_jmol(OutputSceneJmol.example(), 'Graphics3d object') 'Launched jmol viewer for Graphics3d object'
-
launch_viewer
(image_file, plain_text)¶ Launch external viewer for the graphics file.
INPUT:
image_file
– string. File name of the image file.plain_text
– string. The plain text representation of the image file.
OUTPUT:
String. Human-readable message indicating whether the viewer was launched successfully.
EXAMPLES:
sage: from sage.repl.rich_output.backend_ipython import BackendIPythonCommandline sage: backend = BackendIPythonCommandline() sage: backend.launch_viewer('/path/to/foo.bar', 'Graphics object') 'Launched bar viewer for Graphics object'
-
supported_output
()¶ Return the outputs that are supported by the IPython commandline backend.
OUTPUT:
Iterable of output container classes, that is, subclass of
OutputBase
). The order is ignored.EXAMPLES:
sage: from sage.repl.rich_output.backend_ipython import BackendIPythonCommandline sage: backend = BackendIPythonCommandline() sage: supp = backend.supported_output(); supp # random output set([<class 'sage.repl.rich_output.output_graphics.OutputImageGif'>, ..., <class 'sage.repl.rich_output.output_graphics.OutputImagePng'>]) sage: from sage.repl.rich_output.output_basic import OutputLatex sage: OutputLatex in supp True
-
threejs_offline_scripts
()¶ Three.js script for the IPython command line
OUTPUT:
String containing script tag
EXAMPLES:
sage: from sage.repl.rich_output.backend_ipython import BackendIPythonCommandline sage: backend = BackendIPythonCommandline() sage: backend.threejs_offline_scripts() '...<script ...</script>...'
-
-
class
sage.repl.rich_output.backend_ipython.
BackendIPythonNotebook
¶ Bases:
sage.repl.rich_output.backend_ipython.BackendIPython
Backend for the IPython Notebook
EXAMPLES:
sage: from sage.repl.rich_output.backend_ipython import BackendIPythonNotebook sage: BackendIPythonNotebook() IPython notebook
-
displayhook
(plain_text, rich_output)¶ Backend implementation of the displayhook
INPUT:
plain_text
– instance ofOutputPlainText
. The plain text version of the output.rich_output
– instance of an output container class (subclass ofOutputBase
). Guaranteed to be one of the output containers returned fromsupported_output()
, possibly the same asplain_text
.
OUTPUT:
The IPython notebook display hook returns the IPython display data, a pair of dictionaries. The first dictionary contains mime types as keys and the respective output as value. The second dictionary is metadata.
EXAMPLES:
sage: from sage.repl.rich_output.output_basic import OutputPlainText sage: plain_text = OutputPlainText.example() sage: from sage.repl.rich_output.backend_ipython import BackendIPythonNotebook sage: backend = BackendIPythonNotebook() sage: backend.displayhook(plain_text, plain_text) ({u'text/plain': u'Example plain text output'}, {})
-
supported_output
()¶ Return the outputs that are supported by the IPython notebook backend.
OUTPUT:
Iterable of output container classes, that is, subclass of
OutputBase
). The order is ignored.EXAMPLES:
sage: from sage.repl.rich_output.backend_ipython import BackendIPythonNotebook sage: backend = BackendIPythonNotebook() sage: supp = backend.supported_output(); supp # random output set([<class 'sage.repl.rich_output.output_graphics.OutputPlainText'>, ..., <class 'sage.repl.rich_output.output_graphics.OutputImagePdf'>]) sage: from sage.repl.rich_output.output_basic import OutputLatex sage: OutputLatex in supp True sage: from sage.repl.rich_output.output_graphics import OutputImageGif sage: OutputImageGif in supp True
-
threejs_offline_scripts
()¶ Three.js script for the IPython notebook
OUTPUT:
String containing script tag
EXAMPLES:
sage: from sage.repl.rich_output.backend_ipython import BackendIPythonNotebook sage: backend = BackendIPythonNotebook() sage: backend.threejs_offline_scripts() '...<script src="/nbextensions/threejs/build/three.min...<\/script>...'
-