Interactive¶
Helper module for setting up interactive SymPy sessions.
Session¶
Tools for setting up interactive sessions.
- 
sympy.interactive.session.enable_automatic_int_sympification(shell)[source]¶
- Allow IPython to automatically convert integer literals to Integer. 
- 
sympy.interactive.session.enable_automatic_symbols(shell)[source]¶
- Allow IPython to automatically create symbols ( - isympy -a).
- 
sympy.interactive.session.init_ipython_session(shell=None, argv=[], auto_symbols=False, auto_int_to_Integer=False)[source]¶
- Construct new IPython session. 
- 
sympy.interactive.session.init_session(ipython=None, pretty_print=True, order=None, use_unicode=None, use_latex=None, quiet=False, auto_symbols=False, auto_int_to_Integer=False, str_printer=None, pretty_printer=None, latex_printer=None, argv=[])[source]¶
- Initialize an embedded IPython or Python session. The IPython session is initiated with the –pylab option, without the numpy imports, so that matplotlib plotting can be interactive. - Parameters
- pretty_print: boolean - If True, use pretty_print to stringify; if False, use sstrrepr to stringify. - order: string or None - There are a few different settings for this parameter: lex (default), which is lexographic order; grlex, which is graded lexographic order; grevlex, which is reversed graded lexographic order; old, which is used for compatibility reasons and for long expressions; None, which sets it to lex. - use_unicode: boolean or None - If True, use unicode characters; if False, do not use unicode characters. - use_latex: boolean or None - If True, use latex rendering if IPython GUI’s; if False, do not use latex rendering. - quiet: boolean - If True, init_session will not print messages regarding its status; if False, init_session will print messages regarding its status. - auto_symbols: boolean - If True, IPython will automatically create symbols for you. If False, it will not. The default is False. - auto_int_to_Integer: boolean - If True, IPython will automatically wrap int literals with Integer, so that things like 1/2 give Rational(1, 2). If False, it will not. The default is False. - ipython: boolean or None - If True, printing will initialize for an IPython console; if False, printing will initialize for a normal console; The default is None, which automatically determines whether we are in an ipython instance or not. - str_printer: function, optional, default=None - A custom string printer function. This should mimic sympy.printing.sstrrepr(). - pretty_printer: function, optional, default=None - A custom pretty printer. This should mimic sympy.printing.pretty(). - latex_printer: function, optional, default=None - A custom LaTeX printer. This should mimic sympy.printing.latex() This should mimic sympy.printing.latex(). - argv: list of arguments for IPython - See sympy.bin.isympy for options that can be used to initialize IPython. 
 - Examples - >>> from sympy import init_session, Symbol, sin, sqrt >>> sin(x) NameError: name 'x' is not defined >>> init_session() >>> sin(x) sin(x) >>> sqrt(5) ___ \/ 5 >>> init_session(pretty_print=False) >>> sqrt(5) sqrt(5) >>> y + x + y**2 + x**2 x**2 + x + y**2 + y >>> init_session(order='grlex') >>> y + x + y**2 + x**2 x**2 + y**2 + x + y >>> init_session(order='grevlex') >>> y * x**2 + x * y**2 x**2*y + x*y**2 >>> init_session(order='old') >>> x**2 + y**2 + x + y x + y + x**2 + y**2 >>> theta = Symbol('theta') >>> theta theta >>> init_session(use_unicode=True) >>> theta θ - See also - sympy.interactive.printing.init_printing
- for examples and the rest of the parameters. 
 
- 
sympy.interactive.session.int_to_Integer(s)[source]¶
- Wrap integer literals with Integer. - This is based on the decistmt example from http://docs.python.org/library/tokenize.html. - Only integer literals are converted. Float literals are left alone. - Examples - >>> from __future__ import division >>> from sympy.interactive.session import int_to_Integer >>> from sympy import Integer >>> s = '1.2 + 1/2 - 0x12 + a1' >>> int_to_Integer(s) '1.2 +Integer (1 )/Integer (2 )-Integer (0x12 )+a1 ' >>> s = 'print (1/2)' >>> int_to_Integer(s) 'print (Integer (1 )/Integer (2 ))' >>> exec(s) 0.5 >>> exec(int_to_Integer(s)) 1/2 
Printing¶
Tools for setting up printing in interactive sessions.
- 
sympy.interactive.printing.init_printing(pretty_print=True, order=None, use_unicode=None, use_latex=None, wrap_line=None, num_columns=None, no_global=False, ip=None, euler=False, forecolor=None, backcolor='Transparent', fontsize='10pt', latex_mode='plain', print_builtin=True, str_printer=None, pretty_printer=None, latex_printer=None, scale=1.0, **settings)[source]¶
- Initializes pretty-printer depending on the environment. - Parameters
- pretty_print : boolean, default=True - If True, use pretty_print to stringify or the provided pretty printer; if False, use sstrrepr to stringify or the provided string printer. - order : string or None, default=’lex’ - There are a few different settings for this parameter: lex (default), which is lexographic order; grlex, which is graded lexographic order; grevlex, which is reversed graded lexographic order; old, which is used for compatibility reasons and for long expressions; None, which sets it to lex. - use_unicode : boolean or None, default=None - If True, use unicode characters; if False, do not use unicode characters; if None, make a guess based on the environment. - use_latex : string, boolean, or None, default=None - If True, use default LaTeX rendering in GUI interfaces (png and mathjax); if False, do not use LaTeX rendering; if None, make a guess based on the environment; if ‘png’, enable latex rendering with an external latex compiler, falling back to matplotlib if external compilation fails; if ‘matplotlib’, enable LaTeX rendering with matplotlib; if ‘mathjax’, enable LaTeX text generation, for example MathJax rendering in IPython notebook or text rendering in LaTeX documents; if ‘svg’, enable LaTeX rendering with an external latex compiler, no fallback - wrap_line : boolean - If True, lines will wrap at the end; if False, they will not wrap but continue as one line. This is only relevant if - pretty_printis True.- num_columns : int or None, default=None - If int, number of columns before wrapping is set to num_columns; if None, number of columns before wrapping is set to terminal width. This is only relevant if - pretty_printis True.- no_global : boolean, default=False - If True, the settings become system wide; if False, use just for this console/session. - ip : An interactive console - This can either be an instance of IPython, or a class that derives from code.InteractiveConsole. - euler : boolean, optional, default=False - Loads the euler package in the LaTeX preamble for handwritten style fonts (http://www.ctan.org/pkg/euler). - forecolor : string or None, optional, default=None - DVI setting for foreground color. None means that either ‘Black’, ‘White’, or ‘Gray’ will be selected based on a guess of the IPython terminal color setting. See notes. - backcolor : string, optional, default=’Transparent’ - DVI setting for background color. See notes. - fontsize : string, optional, default=’10pt’ - A font size to pass to the LaTeX documentclass function in the preamble. Note that the options are limited by the documentclass. Consider using scale instead. - latex_mode : string, optional, default=’plain’ - The mode used in the LaTeX printer. Can be one of: {‘inline’|’plain’|’equation’|’equation*’}. - print_builtin : boolean, optional, default=True - If - Truethen floats and integers will be printed. If- Falsethe printer will only print SymPy types.- str_printer : function, optional, default=None - A custom string printer function. This should mimic sympy.printing.sstrrepr(). - pretty_printer : function, optional, default=None - A custom pretty printer. This should mimic sympy.printing.pretty(). - latex_printer : function, optional, default=None - A custom LaTeX printer. This should mimic sympy.printing.latex(). - scale : float, optional, default=1.0 - Scale the LaTeX output when using the - pngor- svgbackends. Useful for high dpi screens.- settings : - Any additional settings for the - latexand- prettycommands can be used to fine-tune the output.
 - Examples - >>> from sympy.interactive import init_printing >>> from sympy import Symbol, sqrt >>> from sympy.abc import x, y >>> sqrt(5) sqrt(5) >>> init_printing(pretty_print=True) >>> sqrt(5) ___ \/ 5 >>> theta = Symbol('theta') >>> init_printing(use_unicode=True) >>> theta \u03b8 >>> init_printing(use_unicode=False) >>> theta theta >>> init_printing(order='lex') >>> str(y + x + y**2 + x**2) x**2 + x + y**2 + y >>> init_printing(order='grlex') >>> str(y + x + y**2 + x**2) x**2 + x + y**2 + y >>> init_printing(order='grevlex') >>> str(y * x**2 + x * y**2) x**2*y + x*y**2 >>> init_printing(order='old') >>> str(x**2 + y**2 + x + y) x**2 + x + y**2 + y >>> init_printing(num_columns=10) >>> x**2 + x + y**2 + y x + y + x**2 + y**2 - Notes - The foreground and background colors can be selected when using ‘png’ or ‘svg’ LaTeX rendering. Note that before the - init_printingcommand is executed, the LaTeX rendering is handled by the IPython console and not SymPy.- The colors can be selected among the 68 standard colors known to - dvips, for a list see [R492]. In addition, the background color can be set to ‘Transparent’ (which is the default value).- When using the ‘Auto’ foreground color, the guess is based on the - colorsvariable in the IPython console, see [R493]. Hence, if that variable is set correctly in your IPython console, there is a high chance that the output will be readable, although manual settings may be needed.- See also - References 
