example-embed-short.py
51 lines
| 1.9 KiB
| text/x-python
|
PythonLexer
Ville M. Vainio
|
r1032 | """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: | ||||
__IPYTHON__ | ||||
except NameError: | ||||
argv = [''] | ||||
banner = exit_msg = '' | ||||
else: | ||||
# Command-line options for IPython (a list like sys.argv) | ||||
argv = ['-pi1','In <\\#>:','-pi2',' .\\D.:','-po','Out<\\#>:'] | ||||
banner = '*** Nested interpreter ***' | ||||
exit_msg = '*** Back in main IPython ***' | ||||
# First import the embeddable shell class | ||||
from IPython.Shell import IPShellEmbed | ||||
# Now create the IPython shell instance. Put ipshell() anywhere in your code | ||||
# where you want it to open. | ||||
ipshell = IPShellEmbed(argv,banner=banner,exit_msg=exit_msg) | ||||
#--------------------------------------------------------------------------- | ||||
# This code will load an embeddable IPython shell always with no changes for | ||||
# nested embededings. | ||||
from IPython.Shell import IPShellEmbed | ||||
ipshell = IPShellEmbed() | ||||
# Now ipshell() 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: | ||||
__IPYTHON__ | ||||
except NameError: | ||||
from IPython.Shell import IPShellEmbed | ||||
ipshell = IPShellEmbed() | ||||
# 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> ******************** | ||||