DIALOG 131 Options
1.1 Start the interpreter.
2.1 Return to the finder.
3.1 Turn this item on to get the standard >>> prompt after a script terminates.
3.3 Turn this item off to have the interpreter terminate when a script terminates.
4.1 Turn this option on to get feedback on where modules are found and what their type is.
4.3 Turn this option off to stop import feedback.
5.1 Turn this option on to strip LINO instructions from Python bytecode. Gives a slight speedup.
5.3 Turn this option off to include LINO instructions in the bytecode. This enables line numbers in traceback printouts.
6.1 Turn this on to show output byte-by-byte as it is produced. Slows things down.
6.3 Turn this off to show output on a line-by-line basis, or when input is requested.
7.1 Print gibberish only Guido understands.
7.3 Stop printing gibberish.
8.1 Turn this on to keep the console window open after successful script termination.
8.3 Turn this off to quit python automatically after successful script termination.
9.1 Turn this on to keep the console window open after a script aborts.
9.3 Turn this off to quit python automatically after a script aborts.
10.1 This shows another dialog where you can type unix-style command line arguments. WARNING: do not redirect stdin and stdout, it does not work.
13.1 Select to use string-type values for standard exceptions.
13.3 Deselect to use new class-based standard exceptions.
14.1 Selecting this disables the new package and site-python features.
14.3 Deselecting this enables the new package and site-python features.
16.1 Turn off balloon help.
END-DIALOG
DIALOG 134
1.1 Deleting the incorrect preference will not always work, but Python will run with standard options. 
2.1 Python will continue to run, but with standard options.
3.1 Don't run, return to the finder.
END-DIALOG
END
