]> granicus.if.org Git - python/commitdiff
Replaced the fiddly 5-tuples with a new Book convenience class, allowing
authorTim Peters <tim.peters@gmail.com>
Sat, 20 Apr 2002 03:25:02 +0000 (03:25 +0000)
committerTim Peters <tim.peters@gmail.com>
Sat, 20 Apr 2002 03:25:02 +0000 (03:25 +0000)
to reference fields via names instead of meaningless little integers.
This turned up one case where the wrong little integer was being used,
in informative progress output.  Fixed that too.

Doc/tools/prechm.py

index 845a546dabfebea06a75dc7855ff01798ec9e758..9ce8f1ea2b7a5db5394c21b229da97f385fd08ba 100644 (file)
@@ -97,84 +97,102 @@ or
 the
 '''
 
-# Library Doc list of tuples:
+# s is a string or None.  If None or empty, return None.  Else tack '.html'
+# on to the end, unless it's already there.
+def addhtml(s):
+    if s:
+        if not s.endswith('.html'):
+            s += '.html'
+    return s
+
+# Convenience class to hold info about "a book" in HTMLHelp terms == a doc
+# directory in Python terms.
+class Book:
+    def __init__(self, directory, title, firstpage,
+                 contentpage=None, indexpage=None):
+        self.directory   = directory
+        self.title       = title
+        self.firstpage   = addhtml(firstpage)
+        self.contentpage = addhtml(contentpage)
+        self.indexpage   = addhtml(indexpage)
+
+# Library Doc list of books:
 # each 'book' : (Dir, Title, First page, Content page, Index page)
-#
 supported_libraries = {
     '2.2':  ### Beta!!!  fix for actual release
     [
-        ('.', 'Global Module Index', 'modindex.html', None, None),
-        ('whatsnew', "What's New", 'index.html', 'contents.html', None),
-        ('tut','Tutorial','tut.html','node2.html',None),
-        ('lib','Library Reference','lib.html','contents.html','genindex.html'),
-        ('ref','Language Reference','ref.html','contents.html','genindex.html'),
-        ('mac','Macintosh Reference','mac.html','contents.html','genindex.html'),
-        ('ext','Extending and Embedding','ext.html','contents.html',None),
-        ('api','Python/C API','api.html','contents.html','genindex.html'),
-        ('doc','Documenting Python','doc.html','contents.html',None),
-        ('inst','Installing Python Modules', 'inst.html', 'index.html', None),
-        ('dist','Distributing Python Modules', 'dist.html', 'index.html', None),
+        Book('.', 'Global Module Index', 'modindex'),
+        Book('whatsnew', "What's New", 'index', 'contents'),
+        Book('tut','Tutorial','tut','node2'),
+        Book('lib','Library Reference','lib','contents','genindex'),
+        Book('ref','Language Reference','ref','contents','genindex'),
+        Book('mac','Macintosh Reference','mac','contents','genindex'),
+        Book('ext','Extending and Embedding','ext','contents'),
+        Book('api','Python/C API','api','contents','genindex'),
+        Book('doc','Documenting Python','doc','contents'),
+        Book('inst','Installing Python Modules', 'inst', 'index'),
+        Book('dist','Distributing Python Modules', 'dist', 'index'),
     ],
 
     '2.1.1':
     [
-        ('.', 'Global Module Index', 'modindex.html', None, None),
-        ('tut','Tutorial','tut.html','node2.html',None),
-        ('lib','Library Reference','lib.html','contents.html','genindex.html'),
-        ('ref','Language Reference','ref.html','contents.html','genindex.html'),
-        ('mac','Macintosh Reference','mac.html','contents.html','genindex.html'),
-        ('ext','Extending and Embedding','ext.html','contents.html',None),
-        ('api','Python/C API','api.html','contents.html','genindex.html'),
-        ('doc','Documenting Python','doc.html','contents.html',None),
-        ('inst','Installing Python Modules', 'inst.html', 'index.html', None),
-        ('dist','Distributing Python Modules', 'dist.html', 'index.html', None),
+        Book('.', 'Global Module Index', 'modindex'),
+        Book('tut','Tutorial','tut','node2'),
+        Book('lib','Library Reference','lib','contents','genindex'),
+        Book('ref','Language Reference','ref','contents','genindex'),
+        Book('mac','Macintosh Reference','mac','contents','genindex'),
+        Book('ext','Extending and Embedding','ext','contents'),
+        Book('api','Python/C API','api','contents','genindex'),
+        Book('doc','Documenting Python','doc','contents'),
+        Book('inst','Installing Python Modules', 'inst', 'index'),
+        Book('dist','Distributing Python Modules', 'dist', 'index'),
     ],
 
     '2.0.0':
     [
-        ('.', 'Global Module Index', 'modindex.html', None, None),
-        ('tut','Tutorial','tut.html','node2.html',None),
-        ('lib','Library Reference','lib.html','contents.html','genindex.html'),
-        ('ref','Language Reference','ref.html','contents.html','genindex.html'),
-        ('mac','Macintosh Reference','mac.html','contents.html','genindex.html'),
-        ('ext','Extending and Embedding','ext.html','contents.html',None),
-        ('api','Python/C API','api.html','contents.html','genindex.html'),
-        ('doc','Documenting Python','doc.html','contents.html',None),
-        ('inst','Installing Python Modules', 'inst.html', 'contents.html', None),
-        ('dist','Distributing Python Modules', 'dist.html', 'contents.html', None),
+        Book('.', 'Global Module Index', 'modindex'),
+        Book('tut','Tutorial','tut','node2'),
+        Book('lib','Library Reference','lib','contents','genindex'),
+        Book('ref','Language Reference','ref','contents','genindex'),
+        Book('mac','Macintosh Reference','mac','contents','genindex'),
+        Book('ext','Extending and Embedding','ext','contents'),
+        Book('api','Python/C API','api','contents','genindex'),
+        Book('doc','Documenting Python','doc','contents'),
+        Book('inst','Installing Python Modules', 'inst', 'contents'),
+        Book('dist','Distributing Python Modules', 'dist', 'contents'),
     ],
 
     # <dnagata@creo.com> Apr 17/99: library for 1.5.2 version:
     # <hernan.foffani@iname.com> May 01/99: library for 1.5.2 (04/30/99):
     '1.5.2':
     [
-        ('tut','Tutorial','tut.html','node2.html',None),
-        ('lib','Library Reference','lib.html','contents.html','genindex.html'),
-        ('ref','Language Reference','ref.html','contents.html','genindex.html'),
-        ('mac','Macintosh Reference','mac.html','contents.html','genindex.html'),
-        ('ext','Extending and Embedding','ext.html','contents.html',None),
-        ('api','Python/C API','api.html','contents.html','genindex.html'),
-        ('doc','Documenting Python','doc.html','contents.html',None)
+        Book('tut','Tutorial','tut','node2'),
+        Book('lib','Library Reference','lib','contents','genindex'),
+        Book('ref','Language Reference','ref','contents','genindex'),
+        Book('mac','Macintosh Reference','mac','contents','genindex'),
+        Book('ext','Extending and Embedding','ext','contents'),
+        Book('api','Python/C API','api','contents','genindex'),
+        Book('doc','Documenting Python','doc','contents')
     ],
 
     # library for 1.5.1 version:
     '1.5.1':
     [
-        ('tut','Tutorial','tut.html','contents.html',None),
-        ('lib','Library Reference','lib.html','contents.html','genindex.html'),
-        ('ref','Language Reference','ref-1.html','ref-2.html','ref-11.html'),
-        ('ext','Extending and Embedding','ext.html','contents.html',None),
-        ('api','Python/C API','api.html','contents.html','genindex.html')
+        Book('tut','Tutorial','tut','contents'),
+        Book('lib','Library Reference','lib','contents','genindex'),
+        Book('ref','Language Reference','ref-1','ref-2','ref-11'),
+        Book('ext','Extending and Embedding','ext','contents'),
+        Book('api','Python/C API','api','contents','genindex')
     ],
 
     # library for 1.5 version:
     '1.5':
     [
-        ('tut','Tutorial','tut.html','node1.html',None),
-        ('lib','Library Reference','lib.html','node1.html','node268.html'),
-        ('ref','Language Reference','ref-1.html','ref-2.html','ref-11.html'),
-        ('ext','Extending and Embedding','ext.html','node1.html',None),
-        ('api','Python/C API','api.html','node1.html','node48.html')
+        Book('tut','Tutorial','tut','node1'),
+        Book('lib','Library Reference','lib','node1','node268'),
+        Book('ref','Language Reference','ref-1','ref-2','ref-11'),
+        Book('ext','Extending and Embedding','ext','node1'),
+        Book('api','Python/C API','api','node1','node48')
     ]
 }
 
@@ -263,42 +281,45 @@ class TocHlpHtmlParser(HelpHtmlParser):
         self.ft.write("\t" * self.indent + "<LI>")
 
 
-def index(path, archivo, output):
+def index(path, indexpage, output):
     f = formatter.AbstractFormatter(AlmostNullWriter())
     parser = IdxHlpHtmlParser(f)
     parser.path = path
     parser.ft = output
-    fil = path + '/' + archivo
-    parser.feed(open(fil).read())
+    f = open(path + '/' + indexpage)
+    parser.feed(f.read())
     parser.close()
+    f.close()
 
 
-def content(path, archivo, output):
+def content(path, contentpage, output):
     f = formatter.AbstractFormatter(AlmostNullWriter())
     parser = TocHlpHtmlParser(f)
     parser.path = path
     parser.ft = output
-    fil = path + '/' + archivo
-    parser.feed(open(fil).read())
+    f = open(path + '/' + contentpage)
+    parser.feed(f.read())
     parser.close()
+    f.close()
 
 
 def do_index(library, output):
     output.write('<UL>\n')
     for book in library:
-        print '\t', book[2]
-        if book[4]:
-            index(book[0], book[4], output)
+        print '\t', book.title, '-', book.indexpage
+        if book.indexpage:
+            index(book.directory, book.indexpage, output)
     output.write('</UL>\n')
 
 
 def do_content(library, version, output):
     output.write(contents_header % version)
     for book in library:
-        print '\t', book[2]
-        output.write(object_sitemap % (book[0]+"/"+book[2], book[1]))
-        if book[3]:
-            content(book[0], book[3], output)
+        print '\t', book.title, '-', book.firstpage
+        output.write(object_sitemap % (book.directory + "/" + book.firstpage,
+                                       book.title))
+        if book.contentpage:
+            content(book.directory, book.contentpage, output)
     output.write(contents_footer)
 
 # Fill in the [FILES] section of the project (.hhp) file.
@@ -307,7 +328,7 @@ def do_content(library, version, output):
 def do_project(library, output, arch, version):
     output.write(project_template % locals())
     for book in library:
-        directory = book[0]
+        directory = book.directory
         path = directory + '\\%s\n'
         for page in os.listdir(directory):
             if page.endswith('.html') or page.endswith('.css'):
@@ -353,7 +374,7 @@ def do_it(args = None):
     if not version:
         usage()
 
-    library = supported_libraries[ version ]
+    library = supported_libraries[version]
 
     if not (('-p','') in optlist):
         fname = arch + '.stp'