diff --git a/examples/Embedding/Examples/example-embed-short.py b/examples/Embedding/Examples/example-embed-short.py new file mode 100644 index 0000000..96b3173 --- /dev/null +++ b/examples/Embedding/Examples/example-embed-short.py @@ -0,0 +1,47 @@ +"""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: + 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) + +#--------------------------------------------------------------------------- +# 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 + +#******************* End of file ********************