annotate Tools/scripts/checkpyc.py @ 58765:2ba7677bfa95 legacy-trunk

testCopysign was defined twice in test_math; combine the definitions
author Mark Dickinson <dickinsm@gmail.com>
date Sat, 06 Feb 2010 23:11:25 +0000
parents 981fff7363b9
children 46625e6122e9
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4573
73758db2f464 /usr/local/bin/python -> /usr/bin/env python
Guido van Rossum <guido@python.org>
parents: 1506
diff changeset
1 #! /usr/bin/env python
500
7f3faafd83ed Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2 # Check that all ".pyc" files exist and are up-to-date
758
bfc655074523 posix -> os
Guido van Rossum <guido@python.org>
parents: 559
diff changeset
3 # Uses module 'os'
500
7f3faafd83ed Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
4
7f3faafd83ed Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
5 import sys
758
bfc655074523 posix -> os
Guido van Rossum <guido@python.org>
parents: 559
diff changeset
6 import os
500
7f3faafd83ed Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
7 from stat import ST_MTIME
9294
0de662cecacf Use the imp module to get the magic word.
Guido van Rossum <guido@python.org>
parents: 4573
diff changeset
8 import imp
500
7f3faafd83ed Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
9
7f3faafd83ed Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
10 def main():
15930
14a27acc755a Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents: 9294
diff changeset
11 silent = 0
14a27acc755a Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents: 9294
diff changeset
12 verbose = 0
14a27acc755a Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents: 9294
diff changeset
13 if sys.argv[1:]:
14a27acc755a Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents: 9294
diff changeset
14 if sys.argv[1] == '-v':
14a27acc755a Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents: 9294
diff changeset
15 verbose = 1
14a27acc755a Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents: 9294
diff changeset
16 elif sys.argv[1] == '-s':
14a27acc755a Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents: 9294
diff changeset
17 silent = 1
14a27acc755a Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents: 9294
diff changeset
18 MAGIC = imp.get_magic()
14a27acc755a Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents: 9294
diff changeset
19 if not silent:
31515
71a294bd7950 Replace backticks with repr() or "%r"
Walter Dörwald <walter@livinglogic.de>
parents: 15930
diff changeset
20 print 'Using MAGIC word', repr(MAGIC)
15930
14a27acc755a Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents: 9294
diff changeset
21 for dirname in sys.path:
14a27acc755a Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents: 9294
diff changeset
22 try:
14a27acc755a Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents: 9294
diff changeset
23 names = os.listdir(dirname)
14a27acc755a Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents: 9294
diff changeset
24 except os.error:
31515
71a294bd7950 Replace backticks with repr() or "%r"
Walter Dörwald <walter@livinglogic.de>
parents: 15930
diff changeset
25 print 'Cannot list directory', repr(dirname)
15930
14a27acc755a Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents: 9294
diff changeset
26 continue
14a27acc755a Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents: 9294
diff changeset
27 if not silent:
31515
71a294bd7950 Replace backticks with repr() or "%r"
Walter Dörwald <walter@livinglogic.de>
parents: 15930
diff changeset
28 print 'Checking ', repr(dirname), '...'
15930
14a27acc755a Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents: 9294
diff changeset
29 names.sort()
14a27acc755a Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents: 9294
diff changeset
30 for name in names:
14a27acc755a Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents: 9294
diff changeset
31 if name[-3:] == '.py':
14a27acc755a Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents: 9294
diff changeset
32 name = os.path.join(dirname, name)
14a27acc755a Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents: 9294
diff changeset
33 try:
14a27acc755a Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents: 9294
diff changeset
34 st = os.stat(name)
14a27acc755a Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents: 9294
diff changeset
35 except os.error:
31515
71a294bd7950 Replace backticks with repr() or "%r"
Walter Dörwald <walter@livinglogic.de>
parents: 15930
diff changeset
36 print 'Cannot stat', repr(name)
15930
14a27acc755a Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents: 9294
diff changeset
37 continue
14a27acc755a Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents: 9294
diff changeset
38 if verbose:
31515
71a294bd7950 Replace backticks with repr() or "%r"
Walter Dörwald <walter@livinglogic.de>
parents: 15930
diff changeset
39 print 'Check', repr(name), '...'
15930
14a27acc755a Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents: 9294
diff changeset
40 name_c = name + 'c'
14a27acc755a Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents: 9294
diff changeset
41 try:
14a27acc755a Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents: 9294
diff changeset
42 f = open(name_c, 'r')
14a27acc755a Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents: 9294
diff changeset
43 except IOError:
31515
71a294bd7950 Replace backticks with repr() or "%r"
Walter Dörwald <walter@livinglogic.de>
parents: 15930
diff changeset
44 print 'Cannot open', repr(name_c)
15930
14a27acc755a Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents: 9294
diff changeset
45 continue
14a27acc755a Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents: 9294
diff changeset
46 magic_str = f.read(4)
14a27acc755a Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents: 9294
diff changeset
47 mtime_str = f.read(4)
14a27acc755a Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents: 9294
diff changeset
48 f.close()
14a27acc755a Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents: 9294
diff changeset
49 if magic_str <> MAGIC:
14a27acc755a Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents: 9294
diff changeset
50 print 'Bad MAGIC word in ".pyc" file',
31515
71a294bd7950 Replace backticks with repr() or "%r"
Walter Dörwald <walter@livinglogic.de>
parents: 15930
diff changeset
51 print repr(name_c)
15930
14a27acc755a Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents: 9294
diff changeset
52 continue
14a27acc755a Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents: 9294
diff changeset
53 mtime = get_long(mtime_str)
14a27acc755a Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents: 9294
diff changeset
54 if mtime == 0 or mtime == -1:
31515
71a294bd7950 Replace backticks with repr() or "%r"
Walter Dörwald <walter@livinglogic.de>
parents: 15930
diff changeset
55 print 'Bad ".pyc" file', repr(name_c)
15930
14a27acc755a Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents: 9294
diff changeset
56 elif mtime <> st[ST_MTIME]:
14a27acc755a Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents: 9294
diff changeset
57 print 'Out-of-date ".pyc" file',
31515
71a294bd7950 Replace backticks with repr() or "%r"
Walter Dörwald <walter@livinglogic.de>
parents: 15930
diff changeset
58 print repr(name_c)
500
7f3faafd83ed Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
59
7f3faafd83ed Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
60 def get_long(s):
15930
14a27acc755a Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents: 9294
diff changeset
61 if len(s) <> 4:
14a27acc755a Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents: 9294
diff changeset
62 return -1
14a27acc755a Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents: 9294
diff changeset
63 return ord(s[0]) + (ord(s[1])<<8) + (ord(s[2])<<16) + (ord(s[3])<<24)
500
7f3faafd83ed Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
64
33074
981fff7363b9 [Patch #1005491 ] use __name__ == '__main__' in scripts
Andrew M. Kuchling <amk@amk.ca>
parents: 31515
diff changeset
65 if __name__ == '__main__':
981fff7363b9 [Patch #1005491 ] use __name__ == '__main__' in scripts
Andrew M. Kuchling <amk@amk.ca>
parents: 31515
diff changeset
66 main()