DIALOG 231 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 Select this to always keep the console window open after script termination.
8.3 The console window is always kept open after script termination.
9.1 Select this to keep the console window open if there is output that you may not have had a chance to look at.
9.3 The console window stays open if there is output that you may not have had a chance to look at.
10.1 Select this to keep the console window open when a script aborts.
10.3 The console window stays open when a script aborts.
11.1 Select this to always close the console window on script termination.
11.3 The console window is always closed on script termination.
12.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 warn about mixing tabs and spaces in your source.
13.3 Deselect to treat tabs as 4 spaces without warning.
14.1 Selecting this disables the site-python feature.
14.3 Deselecting this enables the site-python feature.
15.1 Turn off balloon help.
16.1 Select this to keep the old behaviour for macfs Standard File calls
16.3 Deselect this to auto-import macfsn which replaces macfs Standard File calls with Navigation Services wrappers
END-DIALOG
DIALOG 234
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
