source: vendor/python/2.5/Doc/tools/getpagecounts

Last change on this file was 3225, checked in by bird, 18 years ago

Python 2.5

File size: 2.8 KB
Line 
1#! /usr/bin/env python
2
3"""Generate a page count report of the PostScript version of the manuals."""
4
5__version__ = '$Revision: 39598 $'
6
7import getopt
8import sys
9
10
11class PageCounter:
12 def __init__(self):
13 self.doclist = []
14 self.total = 0
15 self.title_width = 0
16 self.version = ""
17
18 def add_document(self, prefix, title):
19 count = count_pages(prefix + ".ps")
20 self.doclist.append((title, prefix, count))
21 self.title_width = max(self.title_width, len(title))
22 self.total = self.total + count
23
24 def dump(self):
25 fmt = "%%-%ds (%%s.ps, %%d pages)" % self.title_width
26 for item in self.doclist:
27 print fmt % item
28 print
29 print " Total page count: %d" % self.total
30
31 def parse_options(self):
32 opts, args = getopt.getopt(sys.argv[1:], "r:", ["release="])
33 assert not args
34 for opt, arg in opts:
35 if opt in ("-r", "--release"):
36 self.version = arg
37
38 def run(self):
39 self.parse_options()
40 if self.version:
41 version = self.version[:3]
42 self.add_document("whatsnew" + version.replace(".", ""),
43 "What's New in Python " + version)
44 for prefix, title in [
45 ("api", "Python/C API"),
46 ("ext", "Extending and Embedding the Python Interpreter"),
47 ("lib", "Python Library Reference"),
48 ("mac", "Macintosh Module Reference"),
49 ("ref", "Python Reference Manual"),
50 ("tut", "Python Tutorial"),
51 ("doc", "Documenting Python"),
52 ("inst", "Installing Python Modules"),
53 ("dist", "Distributing Python Modules"),
54 ]:
55 self.add_document(prefix, title)
56 print self.PREFIX
57 self.dump()
58 print self.SUFFIX
59
60 PREFIX = """\
61This is the PostScript version of the standard Python documentation.
62If you plan to print this, be aware that some of the documents are
63long. It is formatted for printing on two-sided paper; if you do plan
64to print this, *please* print two-sided if you have a printer capable
65of it! To locate published copies of the larger manuals, or other
66Python reference material, consult the Python Bookstore at:
67
68 http://wiki.python.org/moin/PythonBooks
69
70The following manuals are included in this package:
71"""
72 SUFFIX = """\
73
74
75If you have any questions, comments, or suggestions regarding these
76documents, please send them via email to docs@python.org.
77"""
78
79def count_pages(filename):
80 fp = open(filename)
81 count = 0
82 while 1:
83 lines = fp.readlines(1024*40)
84 if not lines:
85 break
86 for line in lines:
87 if line[:7] == "%%Page:":
88 count = count + 1
89 fp.close()
90 return count
91
92
93def main():
94 PageCounter().run()
95
96if __name__ == "__main__":
97 main()
Note: See TracBrowser for help on using the repository browser.