This is all awesome info; I've got some reading to do! and I can't believe I didn't try reset!
Thanks! Doug On Jul 15, 11:30 am, Jason Grout <jason-s...@creativetrax.com> wrote: > Doug wrote: > > Two more basic questions I'm hoping you can help with: > > > 1. My workstyle so far is to edit my .sage file in emacs and then load > > it into sage on the command line. Sometimes I want my program to stop > > in the middle so I can more closely examine/verify what it's doing. > > I've been inserting a line that just says "stop" to do this and it > > causes sage/Python to stop with an error message and a short stack > > trace. This works, but it's kind of messy. "raise Exception > > ('spam','eggs')" does pretty much the same thing. Is there a way to > > tell sage/Python to stop running without raising an error? > > One thing you can do is use pdb, the python debugger (example > fromhttp://www.electricmonk.nl/log/2008/06/25/breakpoint-induced-python-d...). > > from IPython.Debugger import Tracer; debug_here = Tracer() > > def ham(): > x = 5 > debug_here() > raise NotImplementedError('Use the source, luke!') > > ham() > > will put you into the python debugging loop, where you can examine > variables, step through the code, etc. Just put these two lines > somewhere in your code where you want it to stop. See > alsohttp://www.nabble.com/debugging-in-ipython-td20047930.htmlfor another > way to set a breakpoint. > > Another way to enter this is to just turn pdb on in Sage (actually ipython): > > sage: %pdb on > > Now any errors will drop you into the debugger. > > And thirdly, you can just wait until an error shows up and type > > sage: %debug > > to examine the variable values, etc. when that error was thrown. > > Fourthly, you can use pdb to run the function directly: > > import pdb > pdb.run('Networks.FindPathLengthsFromNode(g, 0)') > > > 2. Is there a way to "reset" sage/Python from the command-line as if I > > was restarting? I can't even find a command that will clear all my > > global variables, although that might be enough. > > Check out the (oddly enough named :) reset function: > > sage: reset? > > from the reset docs: > > sage: x = 5 > sage: reset() > sage: x > x > > Thanks, > > Jason --~--~---------~--~----~------------~-------~--~----~ To post to this group, send email to sage-support@googlegroups.com To unsubscribe from this group, send email to sage-support-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sage-support URLs: http://www.sagemath.org -~----------~----~----~----~------~----~------~--~---