Re: aborting without killing the python interpreter

2006-02-19 Thread Fabrizio Milo
import sys

def main():
print 'exiting'
sys.exit()

try:
   main()
except SystemExit:
   pass


> I suspect I may need to use exceptions, but I'm hoping
> not to need them. Thanks.

Use the Exceptions!
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: aborting without killing the python interpreter

2006-02-18 Thread Robert Kern
Russ wrote:
> I wrote a simple little function for exiting with an error message:
> 
> def error ( message ): print_stack(); exit ("\nERROR: " + message +
> "\n")
> 
> It works fine for executing as a script, but when I run it
> interactively in the python interpreter it kills the interpreter.
> That's not what I want. Is there a simple way to have a script
> terminate but not have it kill the python interpreter when I run it
> interactively? I suspect I may need to use exceptions, but I'm hoping
> not to need them. Thanks.

Exceptions do *exactly* what you want in a very clean and simple way. They are a
fundamental feature of Python. Do not fear them. They are your friends.

-- 
Robert Kern
[EMAIL PROTECTED]

"In the fields of hell where the grass grows high
 Are the graves of dreams allowed to die."
  -- Richard Harter

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: aborting without killing the python interpreter

2006-02-18 Thread Erik Max Francis
Terry Reedy wrote:

> How?  In the standard interpreter, 'exit' is bound to the string
> 'Use Ctrl-Z plus Return to exit.'
> so trying to call it as a function fails.

I'm _presuming_ there was a hidden `from sys import *` in there.  Hence 
calling exit with the string (the help for sys.exit shows that if a 
string is passed in, it will be printed before the process exits with 
failure -- something I wasn't aware of actually).

-- 
Erik Max Francis && [EMAIL PROTECTED] && http://www.alcyone.com/max/
San Jose, CA, USA && 37 20 N 121 53 W && AIM erikmaxfrancis
   God heals, and the doctor takes the fee.
   -- Benjamin Franklin
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: aborting without killing the python interpreter

2006-02-18 Thread Terry Reedy


"Terry Reedy" <[EMAIL PROTECTED]> wrote in message 
news:[EMAIL PROTECTED]
> How?  In the standard interpreter, 'exit' is bound to the string
> 'Use Ctrl-Z plus Return to exit.'

This is, of course, Windows specific.  Other systems have other strings. 



-- 
http://mail.python.org/mailman/listinfo/python-list


Re: aborting without killing the python interpreter

2006-02-18 Thread Terry Reedy

"Russ" <[EMAIL PROTECTED]> wrote in message 
news:[EMAIL PROTECTED]
>I wrote a simple little function for exiting with an error message:
>
> def error ( message ): print_stack(); exit ("\nERROR: " + message +
> "\n")
>
> It works fine for executing as a script,

How?  In the standard interpreter, 'exit' is bound to the string
'Use Ctrl-Z plus Return to exit.'
so trying to call it as a function fails.

 but when I run it
> interactively in the python interpreter it kills the interpreter.
> That's not what I want. Is there a simple way to have a script
> terminate but not have it kill the python interpreter when I run it
> interactively? I suspect I may need to use exceptions, but I'm hoping
> not to need them. Thanks.

The interactive interpreter runs a statement at a time and gives a prompt 
after any output.  From a command shell, you can use a flag (-i I think) to 
enter interactive mode after the script end.

Terry Jan Reedy



-- 
http://mail.python.org/mailman/listinfo/python-list


aborting without killing the python interpreter

2006-02-18 Thread Russ
I wrote a simple little function for exiting with an error message:

def error ( message ): print_stack(); exit ("\nERROR: " + message +
"\n")

It works fine for executing as a script, but when I run it
interactively in the python interpreter it kills the interpreter.
That's not what I want. Is there a simple way to have a script
terminate but not have it kill the python interpreter when I run it
interactively? I suspect I may need to use exceptions, but I'm hoping
not to need them. Thanks.

-- 
http://mail.python.org/mailman/listinfo/python-list