mirror of
				https://github.com/python/cpython.git
				synced 2025-11-04 03:44:55 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			88 lines
		
	
	
	
		
			2.6 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			88 lines
		
	
	
	
		
			2.6 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable file
		
	
	
	
	
#! /usr/bin/env python
 | 
						|
#  -*- Python -*-
 | 
						|
 | 
						|
"""Generate a page count report of the PostScript version of the manuals."""
 | 
						|
 | 
						|
__version__ = '$Revision$'
 | 
						|
 | 
						|
 | 
						|
class PageCounter:
 | 
						|
    def __init__(self):
 | 
						|
        self.doclist = []
 | 
						|
        self.total = 0
 | 
						|
        self.title_width = 0
 | 
						|
 | 
						|
    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 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"),
 | 
						|
            ("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 PSA Online Bookstore at:
 | 
						|
 | 
						|
             http://www.python.org/psa/bookstore/
 | 
						|
 | 
						|
The following manuals are included:
 | 
						|
"""
 | 
						|
    SUFFIX = """\
 | 
						|
 | 
						|
 | 
						|
If you have any questions, comments, or suggestions regarding these
 | 
						|
documents, please send them via email to python-docs@python.org.
 | 
						|
 | 
						|
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/).
 | 
						|
"""
 | 
						|
 | 
						|
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()
 |