diff options
author | cinap_lenrek <cinap_lenrek@localhost> | 2011-05-03 11:25:13 +0000 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@localhost> | 2011-05-03 11:25:13 +0000 |
commit | 458120dd40db6b4df55a4e96b650e16798ef06a0 (patch) | |
tree | 8f82685be24fef97e715c6f5ca4c68d34d5074ee /sys/src/cmd/python/Doc/tools/getpagecounts | |
parent | 3a742c699f6806c1145aea5149bf15de15a0afd7 (diff) |
add hg and python
Diffstat (limited to 'sys/src/cmd/python/Doc/tools/getpagecounts')
-rwxr-xr-x | sys/src/cmd/python/Doc/tools/getpagecounts | 97 |
1 files changed, 97 insertions, 0 deletions
diff --git a/sys/src/cmd/python/Doc/tools/getpagecounts b/sys/src/cmd/python/Doc/tools/getpagecounts new file mode 100755 index 000000000..53404e747 --- /dev/null +++ b/sys/src/cmd/python/Doc/tools/getpagecounts @@ -0,0 +1,97 @@ +#! /usr/bin/env python + +"""Generate a page count report of the PostScript version of the manuals.""" + +__version__ = '$Revision: 39598 $' + +import getopt +import sys + + +class PageCounter: + def __init__(self): + self.doclist = [] + self.total = 0 + self.title_width = 0 + self.version = "" + + 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 + + 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 + + def parse_options(self): + opts, args = getopt.getopt(sys.argv[1:], "r:", ["release="]) + assert not args + for opt, arg in opts: + if opt in ("-r", "--release"): + self.version = arg + + def run(self): + self.parse_options() + if self.version: + version = self.version[:3] + self.add_document("whatsnew" + version.replace(".", ""), + "What's New in Python " + version) + 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"), + ("inst", "Installing Python Modules"), + ("dist", "Distributing Python Modules"), + ]: + 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 +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 Python Bookstore at: + + http://wiki.python.org/moin/PythonBooks + +The following manuals are included in this package: +""" + SUFFIX = """\ + + +If you have any questions, comments, or suggestions regarding these +documents, please send them via email to docs@python.org. +""" + +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() + +if __name__ == "__main__": + main() |