blob: 53a28e1453f27e8674f3143714f97f4179ed051f [file] [log] [blame]
Fred Drake46ab6df1999-08-03 17:54:39 +00001#! /usr/bin/env python
2# -*- Python -*-
Fred Drake47f69061998-08-28 21:16:28 +00003
Fred Drake46ab6df1999-08-03 17:54:39 +00004"""Generate a page count report of the PostScript version of the manuals."""
Fred Drake47f69061998-08-28 21:16:28 +00005
Fred Drake46ab6df1999-08-03 17:54:39 +00006__version__ = '$Revision$'
Fred Drake47f69061998-08-28 21:16:28 +00007
Fred Drake46ab6df1999-08-03 17:54:39 +00008
9class PageCounter:
10 def __init__(self):
11 self.doclist = []
12 self.total = 0
13 self.title_width = 0
14
15 def add_document(self, prefix, title):
16 count = count_pages(prefix + ".ps")
17 self.doclist.append((title, prefix, count))
18 self.title_width = max(self.title_width, len(title))
19 self.total = self.total + count
20
21 def dump(self):
22 fmt = "%%-%ds (%%s.ps, %%d pages)" % self.title_width
23 for item in self.doclist:
24 print fmt % item
25 print
26 print " Total page count: %d" % self.total
27
28 def run(self):
29 for prefix, title in [
30 ("api", "Python/C API"),
31 ("ext", "Extending and Embedding the Python Interpreter"),
32 ("lib", "Python Library Reference"),
33 ("mac", "Macintosh Module Reference"),
34 ("ref", "Python Reference Manual"),
35 ("tut", "Python Tutorial"),
36 ("doc", "Documenting Python"),
37 ]:
38 self.add_document(prefix, title)
39 print self.PREFIX
40 self.dump()
41 print self.SUFFIX
42
43 PREFIX = """\
Fred Drake47f69061998-08-28 21:16:28 +000044This is the PostScript version of the standard Python documentation.
45If you plan to print this, be aware that some of the documents are
Fred Drakeba828782000-04-03 04:19:14 +000046long. It is formatted for printing on two-sided paper; if you do plan
47to print this, *please* print two-sided if you have a printer capable
48of it! To locate published copies of the larger manuals, or other
49Python reference material, consult the PSA Online Bookstore at:
50
51 http://www.python.org/psa/bookstore/
52
53The following manuals are included:
Fred Drake46ab6df1999-08-03 17:54:39 +000054"""
55 SUFFIX = """\
Fred Drakedfb4e241999-02-05 20:50:59 +000056
57
58If you have any questions, comments, or suggestions regarding these
59documents, please send them via email to python-docs@python.org.
Fred Drakeba828782000-04-03 04:19:14 +000060
61If you would like to support the development and maintenance of
62documentation for Python, please consider joining the Python Software
63Activity (PSA; see http://www.python.org/psa/), or urging your
64organization to join the PSA or the Python Consortium (see
65http://www.python.org/consortium/).
Fred Drake46ab6df1999-08-03 17:54:39 +000066"""
Fred Drakedfb4e241999-02-05 20:50:59 +000067
Fred Drake46ab6df1999-08-03 17:54:39 +000068def count_pages(filename):
69 fp = open(filename)
70 count = 0
71 while 1:
72 lines = fp.readlines(1024*40)
73 if not lines:
74 break
75 for line in lines:
76 if line[:7] == "%%Page:":
77 count = count + 1
78 fp.close()
79 return count
80
81
82def main():
83 PageCounter().run()
84
85if __name__ == "__main__":
86 main()