On Wed, Jul 15, 2009 at 9:06 AM, Doug<mcke...@gmail.com> wrote: > > This is all awesome info; I've got some reading to do! and I can't > believe I didn't try reset!
Also, try typing sage: trace? William > > 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 > > > -- William Stein Associate Professor of Mathematics University of Washington http://wstein.org --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---