STR# 26733
DIALOG 511 
1.1 Enter folders to include in sys.path. Use the arrow keys to navigate.
2.1 Press when done.
3.1 Press to leave settings as they are.
4.1 Select the folder that will replace $(PYTHON) in sys.path items.
7.1 Press to show a dialog that allows you to set options.
9.1 Press here to turn help balloons off again.
END-DIALOG
DIALOG 510 
1.1 Press here when satisfied with your new settings in this dialog.
2.1 Press here when you're not satisfied with your new settings.
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 to warn about mixing tabs and spaces in your source.
8.3 Deselect to treat tabs as 4 spaces without warning.
9.1 Selecting this disables the site-python feature.
9.3 Deselecting this enables the site-python feature.
10.1 Select this to keep the old behaviour for macfs Standard File calls
10.3 Deselect this to auto-import macfsn which replaces macfs Standard File calls with Navigation Services wrappers
11.1 Turn this on to stop the user from asking for the startup option dialog with the option key. Use this on applets only.
11.3 Turn this off to enable the user to set options by depressing <option> while Python is starting up.
12.1 If you enable this Python will not try to build a unix-style sys.argv, leaving all AppleEvents for your script. Use this for applets only.
12.3 If you disable this Python will create a sys.argv consisting of the files dropped on the interpreter or applet.
13.1 Turn this on to refrain from showing the console window and menu bar until something is printed. Use this for applets only.
13.3 Turn this off to show the console window and menu bar immedeately upon startup.
14.1 Select this to always keep the console window open after script termination.
14.3 The console window is always kept open after script termination.
15.1 Select this to keep the console window open if there is output that you may not have had a chance to look at.
15.3 The console window stays open if there is output that you may not have had a chance to look at.
16.1 Select this to keep the console window open when a script aborts.
16.3 The console window stays open when a script aborts.
17.1 Select this to always close the console window on script termination.
17.3 The console window is always closed on script termination.
18.1 The creator code Python will create files with. Select your favourite text editor.
19.1 The type code Python will create files with. TEXT is probably best.
20.1 Press here to turn help balloons off again.
END-DIALOG
END
