Original README for Tabcleaner.py tabcleaner.py is a utility that reformats leading whitespace in a Python source. It uses tokenize.py (from the std distribution) to detect INDENTs and DEDENTs, then reformats according to the user's options (tabs-only, spaces-only with indent size n, or mixed with tab worth m and indent level of n). Python does not care about the indent of comments and multi-linestrings. tabcleaner places these at what Python considers the current indentlevel. About half the time, this is correct; the rest of the time it is probably one indent level less than what was desired. It is pretty much guaranteed to be syntactically correct, (earlier versions broke on some triple-quoted strings). With no args, (or "-h") prints usage text. Contact: gmcm@hypernet.com Additional comments: I have made a few slight changes. It was written to take command line arguments, so that you can set parameters like the size of indents, and whether you want the result to be all tabs, or all spaces, or a mixture of both (an evil combination, if you ask me). It is set, be default, to change your indentation to all tabs. In the current version of Python, all the code in the standard library is indented with only spaces. This is a somewhat awkward standard on the mac, so most MacPython code is indented with only tabs. This script can be used to do any version, but all tabs is the default, which seems to be the best option for the Mac. How to use it on a Mac: The script is set up to take filenames (or directory names) on the command line. To simulate this behaviour with MacPython, you can build an applet out of it (with BuildApplet, which should be in your Python folder). Any files draggged and dropped onto the resulting applet will be converted to all tabs, with a backup copy havning been saved. If you want the script to convert to space based indentation, your best bet is probably to change the default on line 46 of the file. -Chris Barker cbarker@jps.net