summaryrefslogtreecommitdiff
path: root/sys/src/cmd/python/Doc/tools/getpagecounts
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@localhost>2011-05-03 11:25:13 +0000
committercinap_lenrek <cinap_lenrek@localhost>2011-05-03 11:25:13 +0000
commit458120dd40db6b4df55a4e96b650e16798ef06a0 (patch)
tree8f82685be24fef97e715c6f5ca4c68d34d5074ee /sys/src/cmd/python/Doc/tools/getpagecounts
parent3a742c699f6806c1145aea5149bf15de15a0afd7 (diff)
add hg and python
Diffstat (limited to 'sys/src/cmd/python/Doc/tools/getpagecounts')
-rwxr-xr-xsys/src/cmd/python/Doc/tools/getpagecounts97
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()