"""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 ********************