mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 10:26:02 +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()
 | 
