Mercurial > cpython-lru_cache-weakref
annotate Tools/scripts/untabify.py @ 25838:8540887bcec6 2.2
Backport of 2.183:
Fix memory leak in add_subclass() found by NealN with valgrind.
| author | Guido van Rossum <guido@python.org> |
|---|---|
| date | Fri, 18 Oct 2002 13:42:21 +0000 |
| parents | 0379eb7be323 |
| children | 8a7a2f1f88f0 |
| rev | line source |
|---|---|
|
9098
b826e50e9573
Utility to untabify stubber results.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1 #! /usr/bin/env python |
|
b826e50e9573
Utility to untabify stubber results.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
2 |
|
b826e50e9573
Utility to untabify stubber results.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
3 "Replace tabs with spaces in argument files. Print names of changed files." |
|
b826e50e9573
Utility to untabify stubber results.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
4 |
|
b826e50e9573
Utility to untabify stubber results.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
5 import os |
|
b826e50e9573
Utility to untabify stubber results.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
6 import sys |
|
b826e50e9573
Utility to untabify stubber results.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
7 import string |
|
b826e50e9573
Utility to untabify stubber results.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
8 import getopt |
|
b826e50e9573
Utility to untabify stubber results.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
9 |
|
b826e50e9573
Utility to untabify stubber results.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
10 def main(): |
|
b826e50e9573
Utility to untabify stubber results.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
11 tabsize = 8 |
|
b826e50e9573
Utility to untabify stubber results.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
12 try: |
|
b826e50e9573
Utility to untabify stubber results.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
13 opts, args = getopt.getopt(sys.argv[1:], "t:") |
|
b826e50e9573
Utility to untabify stubber results.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
14 if not args: |
|
b826e50e9573
Utility to untabify stubber results.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
15 raise getopt.error, "At least one file argument required" |
|
b826e50e9573
Utility to untabify stubber results.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
16 except getopt.error, msg: |
|
b826e50e9573
Utility to untabify stubber results.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
17 print msg |
|
9412
0379eb7be323
Detlef Lannert lannert@lannert.rz.uni-duesseldorf.de notices:
Guido van Rossum <guido@python.org>
parents:
9098
diff
changeset
|
18 print "usage:", sys.argv[0], "[-t tabwidth] file ..." |
|
9098
b826e50e9573
Utility to untabify stubber results.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
19 return |
|
9412
0379eb7be323
Detlef Lannert lannert@lannert.rz.uni-duesseldorf.de notices:
Guido van Rossum <guido@python.org>
parents:
9098
diff
changeset
|
20 for optname, optvalue in opts: |
|
0379eb7be323
Detlef Lannert lannert@lannert.rz.uni-duesseldorf.de notices:
Guido van Rossum <guido@python.org>
parents:
9098
diff
changeset
|
21 if optname == '-t': |
|
0379eb7be323
Detlef Lannert lannert@lannert.rz.uni-duesseldorf.de notices:
Guido van Rossum <guido@python.org>
parents:
9098
diff
changeset
|
22 tabsize = int(optvalue) |
|
9098
b826e50e9573
Utility to untabify stubber results.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
23 |
|
b826e50e9573
Utility to untabify stubber results.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
24 for file in args: |
|
b826e50e9573
Utility to untabify stubber results.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
25 process(file, tabsize) |
|
b826e50e9573
Utility to untabify stubber results.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
26 |
|
b826e50e9573
Utility to untabify stubber results.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
27 def process(file, tabsize): |
|
b826e50e9573
Utility to untabify stubber results.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
28 try: |
|
b826e50e9573
Utility to untabify stubber results.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
29 f = open(file) |
|
b826e50e9573
Utility to untabify stubber results.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
30 text = f.read() |
|
b826e50e9573
Utility to untabify stubber results.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
31 f.close() |
|
b826e50e9573
Utility to untabify stubber results.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
32 except IOError, msg: |
|
b826e50e9573
Utility to untabify stubber results.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
33 print "%s: I/O error: %s" % (`file`, str(msg)) |
|
b826e50e9573
Utility to untabify stubber results.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
34 return |
|
b826e50e9573
Utility to untabify stubber results.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
35 newtext = string.expandtabs(text, tabsize) |
|
b826e50e9573
Utility to untabify stubber results.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
36 if newtext == text: |
|
b826e50e9573
Utility to untabify stubber results.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
37 return |
|
b826e50e9573
Utility to untabify stubber results.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
38 backup = file + "~" |
|
b826e50e9573
Utility to untabify stubber results.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
39 try: |
|
b826e50e9573
Utility to untabify stubber results.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
40 os.unlink(backup) |
|
b826e50e9573
Utility to untabify stubber results.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
41 except os.error: |
|
b826e50e9573
Utility to untabify stubber results.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
42 pass |
|
b826e50e9573
Utility to untabify stubber results.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
43 try: |
|
b826e50e9573
Utility to untabify stubber results.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
44 os.rename(file, backup) |
|
b826e50e9573
Utility to untabify stubber results.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
45 except os.error: |
|
b826e50e9573
Utility to untabify stubber results.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
46 pass |
|
b826e50e9573
Utility to untabify stubber results.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
47 f = open(file, "w") |
|
b826e50e9573
Utility to untabify stubber results.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
48 f.write(newtext) |
|
b826e50e9573
Utility to untabify stubber results.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
49 f.close() |
|
b826e50e9573
Utility to untabify stubber results.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
50 print file |
|
b826e50e9573
Utility to untabify stubber results.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
51 |
|
b826e50e9573
Utility to untabify stubber results.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
52 if __name__ == '__main__': |
|
b826e50e9573
Utility to untabify stubber results.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
53 main() |
