example-embed-short.py
47 lines
| 1.8 KiB
| text/x-python
|
PythonLexer
fperez
|
r0 | """Quick code snippets for embedding IPython into other programs. | ||
See example-embed.py for full details, this file has the bare minimum code for | ||||
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: | ||||
MinRK
|
r4124 | get_ipython | ||
fperez
|
r0 | except NameError: | ||
MinRK
|
r4124 | banner=exit_msg='' | ||
fperez
|
r0 | else: | ||
banner = '*** Nested interpreter ***' | ||||
exit_msg = '*** Back in main IPython ***' | ||||
MinRK
|
r4124 | # First import the embed function | ||
from IPython.frontend.terminal.embed import InteractiveShellEmbed | ||||
fperez
|
r0 | # Now create the IPython shell instance. Put ipshell() anywhere in your code | ||
# where you want it to open. | ||||
MinRK
|
r4124 | ipshell = InteractiveShellEmbed(banner1=banner, exit_msg=exit_msg) | ||
fperez
|
r0 | |||
#--------------------------------------------------------------------------- | ||||
# This code will load an embeddable IPython shell always with no changes for | ||||
# nested embededings. | ||||
MinRK
|
r4124 | from IPython import embed | ||
# Now embed() will open IPython anywhere in the code. | ||||
fperez
|
r0 | |||
#--------------------------------------------------------------------------- | ||||
# 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: | ||||
MinRK
|
r4124 | get_ipython | ||
fperez
|
r0 | except NameError: | ||
MinRK
|
r4124 | from IPython.frontend.terminal.embed import InteractiveShellEmbed | ||
ipshell = InteractiveShellEmbed() | ||||
fperez
|
r0 | # 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 | ||||
#******************* End of file <example-embed-short.py> ******************** | ||||