Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Python equivalent of IDL's stop and .reset

I'm relatively new to python but have a bit of experience using IDL. I was wondering if anyone knows if there are equivalent commands in python for IDL's stop and .reset commands.

If I'm running some IDL script I wrote that I put a stop command in, essentially what it does is stop the script there and give me access to the command line in the middle of the script. So I have access to all the functions and variables that I defined before the stop command, which I find really useful for debugging.

The .reset command I find extremely useful too. What it does is reset the the IDL environment (clears all variables, functions, etc.). It's as if I closed that session and opened a new one, but without having to exit and restart IDL. I find that if I'm trying to debug a script I wrote it's useful sometimes to start from scratch and not have to reset IDL (or python now). It would be useful also in python to be able to un-import any modules I had previously imported.

Any help with these issues would be greatly appreciated.

Cheers

Related

  • Python Drop into REPL
  • Is it possible to go into ipython from code?
like image 744
Jamie Avatar asked Jan 24 '10 17:01

Jamie


2 Answers

IPython (aside from being a far nicer REPL than the standard python interpreter) may do what you want:

from IPython.Shell import IPShellEmbed

start_shell = IPShellEmbed()

def times_2(x):
    return 2*x

a = 5

start_shell()

# now in IPython shell
# a -> 5
# times_2(a) -> 10

Note that any changes you make in the shell will not be sent back to the main python process on exit - if you set a = 10 in IPython (using the above example), a is still equal to 5 in the main python process.

edit: post on IPython-user mailing list where I first saw this technique.

like image 95
redacted Avatar answered Sep 28 '22 01:09

redacted


stop sounds equivalent to use of the code module. .reset doesn't have an equivalent in Python short of gratuitous use of del.

like image 36
Ignacio Vazquez-Abrams Avatar answered Sep 28 '22 01:09

Ignacio Vazquez-Abrams