1999-08-03 17:54:39 +00:00
|
|
|
#! /usr/bin/env python
|
|
|
|
# -*- Python -*-
|
1998-08-28 21:16:28 +00:00
|
|
|
|
1999-08-03 17:54:39 +00:00
|
|
|
"""Generate a page count report of the PostScript version of the manuals."""
|
1998-08-28 21:16:28 +00:00
|
|
|
|
1999-08-03 17:54:39 +00:00
|
|
|
__version__ = '$Revision$'
|
1998-08-28 21:16:28 +00:00
|
|
|
|
|
|
|
|
1999-08-03 17:54:39 +00:00
|
|
|
class PageCounter:
|
|
|
|
def __init__(self):
|
|
|
|
self.doclist = []
|
|
|
|
self.total = 0
|
|
|
|
self.title_width = 0
|
1998-08-28 21:16:28 +00:00
|
|
|
|
1999-08-03 17:54:39 +00:00
|
|
|
def add_document(self, prefix, title):
|
|
|
|
count = count_pages(prefix + ".ps")
|
|
|
|
self.doclist.append((title, prefix, count))
|
|
|
|
self.title_width = max(self.title_width, len(title))
|
|
|
|
self.total = self.total + count
|
1998-08-28 21:16:28 +00:00
|
|
|
|
1999-08-03 17:54:39 +00:00
|
|
|
def dump(self):
|
|
|
|
fmt = "%%-%ds (%%s.ps, %%d pages)" % self.title_width
|
|
|
|
for item in self.doclist:
|
|
|
|
print fmt % item
|
|
|
|
print
|
|
|
|
print " Total page count: %d" % self.total
|
1999-02-05 20:50:59 +00:00
|
|
|
|
1999-08-03 17:54:39 +00:00
|
|
|
def run(self):
|
|
|
|
for prefix, title in [
|
|
|
|
("api", "Python/C API"),
|
|
|
|
("ext", "Extending and Embedding the Python Interpreter"),
|
|
|
|
("lib", "Python Library Reference"),
|
|
|
|
("mac", "Macintosh Module Reference"),
|
|
|
|
("ref", "Python Reference Manual"),
|
|
|
|
("tut", "Python Tutorial"),
|
|
|
|
("doc", "Documenting Python"),
|
2000-04-28 17:05:41 +00:00
|
|
|
("inst", "Installing Python Modules"),
|
|
|
|
("dist", "Distributing Python Modules"),
|
1999-08-03 17:54:39 +00:00
|
|
|
]:
|
|
|
|
self.add_document(prefix, title)
|
|
|
|
print self.PREFIX
|
|
|
|
self.dump()
|
|
|
|
print self.SUFFIX
|
|
|
|
|
|
|
|
PREFIX = """\
|
|
|
|
This is the PostScript version of the standard Python documentation.
|
|
|
|
If you plan to print this, be aware that some of the documents are
|
2000-04-03 04:19:14 +00:00
|
|
|
long. It is formatted for printing on two-sided paper; if you do plan
|
|
|
|
to print this, *please* print two-sided if you have a printer capable
|
|
|
|
of it! To locate published copies of the larger manuals, or other
|
|
|
|
Python reference material, consult the PSA Online Bookstore at:
|
|
|
|
|
|
|
|
http://www.python.org/psa/bookstore/
|
|
|
|
|
|
|
|
The following manuals are included:
|
1999-08-03 17:54:39 +00:00
|
|
|
"""
|
|
|
|
SUFFIX = """\
|
1999-02-05 20:50:59 +00:00
|
|
|
|
|
|
|
|
|
|
|
If you have any questions, comments, or suggestions regarding these
|
|
|
|
documents, please send them via email to python-docs@python.org.
|
2000-04-03 04:19:14 +00:00
|
|
|
|
|
|
|
If you would like to support the development and maintenance of
|
|
|
|
documentation for Python, please consider joining the Python Software
|
|
|
|
Activity (PSA; see http://www.python.org/psa/), or urging your
|
|
|
|
organization to join the PSA or the Python Consortium (see
|
|
|
|
http://www.python.org/consortium/).
|
1999-08-03 17:54:39 +00:00
|
|
|
"""
|
|
|
|
|
|
|
|
def count_pages(filename):
|
|
|
|
fp = open(filename)
|
|
|
|
count = 0
|
|
|
|
while 1:
|
|
|
|
lines = fp.readlines(1024*40)
|
|
|
|
if not lines:
|
|
|
|
break
|
|
|
|
for line in lines:
|
|
|
|
if line[:7] == "%%Page:":
|
|
|
|
count = count + 1
|
|
|
|
fp.close()
|
|
|
|
return count
|
|
|
|
|
|
|
|
|
|
|
|
def main():
|
|
|
|
PageCounter().run()
|
1999-02-05 20:50:59 +00:00
|
|
|
|
1999-08-03 17:54:39 +00:00
|
|
|
if __name__ == "__main__":
|
|
|
|
main()
|