embed_class_short.py
45 lines
| 1.6 KiB
| text/x-python
|
PythonLexer
Brian E. Granger
|
r16068 | """Quick code snippets for embedding IPython into other programs. | ||
Brian E. Granger
|
r16101 | See embed_class_long.py for full details, this file has the bare minimum code for | ||
Brian E. Granger
|
r16068 | cut and paste use once you understand how to use the system.""" | ||
#--------------------------------------------------------------------------- | ||||
# This code loads IPython but modifies a few things if it detects it's running | ||||
# embedded in another IPython session (helps avoid confusion) | ||||
try: | ||||
get_ipython | ||||
except NameError: | ||||
banner=exit_msg='' | ||||
else: | ||||
banner = '*** Nested interpreter ***' | ||||
exit_msg = '*** Back in main IPython ***' | ||||
# First import the embed function | ||||
from IPython.terminal.embed import InteractiveShellEmbed | ||||
# Now create the IPython shell instance. Put ipshell() anywhere in your code | ||||
# where you want it to open. | ||||
ipshell = InteractiveShellEmbed(banner1=banner, exit_msg=exit_msg) | ||||
Brian E. Granger
|
r16101 | |||
Brian E. Granger
|
r16068 | #--------------------------------------------------------------------------- | ||
# This code will load an embeddable IPython shell always with no changes for | ||||
# nested embededings. | ||||
from IPython import embed | ||||
# Now embed() will open IPython anywhere in the code. | ||||
#--------------------------------------------------------------------------- | ||||
# This code loads an embeddable shell only if NOT running inside | ||||
# IPython. Inside IPython, the embeddable shell variable ipshell is just a | ||||
# dummy function. | ||||
try: | ||||
get_ipython | ||||
except NameError: | ||||
from IPython.terminal.embed import InteractiveShellEmbed | ||||
ipshell = InteractiveShellEmbed() | ||||
# Now ipshell() will open IPython anywhere in the code | ||||
else: | ||||
# Define a dummy ipshell() so the same code doesn't crash inside an | ||||
# interactive IPython | ||||
def ipshell(): pass | ||||