##// END OF EJS Templates
Add two examples of GUI applications that can summon Qt consoles....
Add two examples of GUI applications that can summon Qt consoles. These show how to instantiate a kernel inside a GUI app and then connect Qt consoles to talk to it, providing interactive access to the namespace of the GUI.

File last commit:

r4270:09b275eb
r4489:8af09932
Show More
sympyprinting.py
75 lines | 2.4 KiB | text/x-python | PythonLexer
Brian Granger
Display system is fully working now....
r3278 """A print function that pretty prints sympy Basic objects.
Authors:
* Brian Granger
"""
#-----------------------------------------------------------------------------
# Copyright (C) 2008-2011 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
#-----------------------------------------------------------------------------
Brian Granger
More improvements to the display system....
r3279 from IPython.lib.latextools import latex_to_png
Paul Ivanov
skip sympy tests if sympy not installed
r3504 from IPython.testing import decorators as dec
Paul Ivanov
removed skipif decorators from non-tests
r3507 # use @dec.skipif_not_sympy to skip tests requiring sympy
Paul Ivanov
skip sympy tests if sympy not installed
r3504
try:
from sympy import pretty, latex
except ImportError:
pass
Brian Granger
More improvements to the display system....
r3279
Brian Granger
Display system is fully working now....
r3278
#-----------------------------------------------------------------------------
# Definitions of magic functions for use with IPython
#-----------------------------------------------------------------------------
def print_basic_unicode(o, p, cycle):
"""A function to pretty print sympy Basic objects."""
if cycle:
return p.text('Basic(...)')
out = pretty(o, use_unicode=True)
if '\n' in out:
p.text(u'\n')
p.text(out)
Brian Granger
More improvements to the display system....
r3279 def print_png(o):
Brian Granger
Renaming the special methods of the formatters....
r3878 """A function to display sympy expression using LaTex -> PNG."""
Brian Granger
Using inline mode for rendering sympy Expr to latex.
r3283 s = latex(o, mode='inline')
Brian Granger
Fixing Matrix/overbar printing for sympy.
r3285 # mathtext does not understand certain latex flags, so we try to replace
# them with suitable subs.
Brian Granger
Small fixes for latex/png printing....
r3284 s = s.replace('\\operatorname','')
Brian Granger
Fixing Matrix/overbar printing for sympy.
r3285 s = s.replace('\\overline', '\\bar')
Brian Granger
Misc updates the display system....
r3880 png = latex_to_png(s)
Brian Granger
More improvements to the display system....
r3279 return png
Brian Granger
Display system is fully working now....
r3278 _loaded = False
def load_ipython_extension(ip):
"""Load the extension in IPython."""
global _loaded
if not _loaded:
plaintext_formatter = ip.display_formatter.formatters['text/plain']
Brian E. Granger
Adding basic types (list, dict ,etc) to the sympy profile....
r4270
for cls in (object, tuple, list, set, frozenset, dict, str):
plaintext_formatter.for_type(cls, print_basic_unicode)
Brian Granger
Display system is fully working now....
r3278 plaintext_formatter.for_type_by_name(
'sympy.core.basic', 'Basic', print_basic_unicode
)
Brian Granger
Fixing Matrix/overbar printing for sympy.
r3285 plaintext_formatter.for_type_by_name(
'sympy.matrices.matrices', 'Matrix', print_basic_unicode
)
Brian Granger
More improvements to the display system....
r3279 png_formatter = ip.display_formatter.formatters['image/png']
Brian E. Granger
Adding basic types (list, dict ,etc) to the sympy profile....
r4270
Brian Granger
More improvements to the display system....
r3279 png_formatter.for_type_by_name(
'sympy.core.basic', 'Basic', print_png
)
Brian Granger
Display system is fully working now....
r3278 _loaded = True