annotate Tools/scripts/checkpyc.py @ 58689:514b56efd89a 3.1

Merged revisions 77962 via svnmerge from svn+ssh://pythondev@svn.python.org/python/branches/py3k ................ r77962 | r.david.murray | 2010-02-04 11:41:57 -0500 (Thu, 04 Feb 2010) | 17 lines Merged revisions 77943,77959-77960 via svnmerge from svn+ssh://pythondev@svn.python.org/python/trunk ........ r77943 | r.david.murray | 2010-02-03 08:36:23 -0500 (Wed, 03 Feb 2010) | 2 lines Explicitly mention the default value for formatdate's usegmt parameter. ........ r77959 | nick.coghlan | 2010-02-04 07:43:58 -0500 (Thu, 04 Feb 2010) | 1 line Issue 6760: Clarify args handling for subprocess.Popen. Patch by Chris Rebert ........ r77960 | r.david.murray | 2010-02-04 11:33:31 -0500 (Thu, 04 Feb 2010) | 2 lines Add Chris Rebert to ACKS for issue 6760 Popen doc improvements. ........ ................
author R. David Murray <rdmurray@bitdance.com>
date Thu, 04 Feb 2010 16:44:31 +0000
parents 893a4dc17a91
children fcfe324663a6
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:
42427
46625e6122e9 Convert print statements to function calls in Tools/.
Collin Winter <collinw@gmail.com>
parents: 33074
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:
42427
46625e6122e9 Convert print statements to function calls in Tools/.
Collin Winter <collinw@gmail.com>
parents: 33074
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:
42427
46625e6122e9 Convert print statements to function calls in Tools/.
Collin Winter <collinw@gmail.com>
parents: 33074
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:
42427
46625e6122e9 Convert print statements to function calls in Tools/.
Collin Winter <collinw@gmail.com>
parents: 33074
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:
42427
46625e6122e9 Convert print statements to function calls in Tools/.
Collin Winter <collinw@gmail.com>
parents: 33074
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:
42427
46625e6122e9 Convert print statements to function calls in Tools/.
Collin Winter <collinw@gmail.com>
parents: 33074
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()
47100
893a4dc17a91 Ran 2to3 over scripts directory.
Georg Brandl <georg@python.org>
parents: 42427
diff changeset
49 if magic_str != MAGIC:
42427
46625e6122e9 Convert print statements to function calls in Tools/.
Collin Winter <collinw@gmail.com>
parents: 33074
diff changeset
50 print('Bad MAGIC word in ".pyc" file', end=' ')
46625e6122e9 Convert print statements to function calls in Tools/.
Collin Winter <collinw@gmail.com>
parents: 33074
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:
42427
46625e6122e9 Convert print statements to function calls in Tools/.
Collin Winter <collinw@gmail.com>
parents: 33074
diff changeset
55 print('Bad ".pyc" file', repr(name_c))
47100
893a4dc17a91 Ran 2to3 over scripts directory.
Georg Brandl <georg@python.org>
parents: 42427
diff changeset
56 elif mtime != st[ST_MTIME]:
42427
46625e6122e9 Convert print statements to function calls in Tools/.
Collin Winter <collinw@gmail.com>
parents: 33074
diff changeset
57 print('Out-of-date ".pyc" file', end=' ')
46625e6122e9 Convert print statements to function calls in Tools/.
Collin Winter <collinw@gmail.com>
parents: 33074
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):
47100
893a4dc17a91 Ran 2to3 over scripts directory.
Georg Brandl <georg@python.org>
parents: 42427
diff changeset
61 if len(s) != 4:
15930
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()