[wwwsearch-commits] r31958 - wwwsearch/release_scripts

jjlee at codespeak.net jjlee at codespeak.net
Sat Sep 2 21:22:53 CEST 2006


Author: jjlee
Date: Sat Sep  2 21:22:52 2006
New Revision: 31958

Modified:
   wwwsearch/release_scripts/epydocsimplehtml.py
Log:
22

Modified: wwwsearch/release_scripts/epydocsimplehtml.py
==============================================================================
--- wwwsearch/release_scripts/epydocsimplehtml.py	(original)
+++ wwwsearch/release_scripts/epydocsimplehtml.py	Sat Sep  2 21:22:52 2006
@@ -1,3 +1,5 @@
+# This is a hacked copy of epydoc's html.py, that writes simpler HTML
+
 #
 # epydoc -- HTML output generator
 # Edward Loper
@@ -29,6 +31,71 @@
 from epydoc.util import plaintext_to_html, is_src_filename
 from epydoc.compat import * # Backwards compatibility
 
+class MechanizeNameHelper:
+
+
+    # things docutils HTML formatter does that we want to get rid of:
+
+    # (most of this is achieved via hacking of this file, copied from epydoc,
+    # but this class helps out with those hacks)
+
+    # private module names in links to class doc pages
+    # private module names in breadcrumbs
+    # modules pages (apart from mechanize-module.html)
+    #  in mechanize-module.html, remove "submodules" listing at the top
+    # frames.html (also need to remove link to frameset / non-frameset versions at top)
+    # index.html
+    # toc.html
+    # toc-everything.html
+    # toc-*.html
+    # non-mechanize source code
+    # module-tree.html (also need to hack bar at the top to s/Trees/Tree/)
+    # indices (also need to hack bar at the top to remove Indices link)
+    # help.html (also need to remove help link at the top)
+    # private module names in HTML file names
+    # private module names in class trees
+
+    def __init__(self):
+        self._names = set()
+        add = self._names.add
+        import mechanize
+        private_modules = [m[:-3] for m in
+                           os.listdir(os.path.dirname(mechanize.__file__)) if
+                           m.startswith("_") and m.endswith(".py")]
+        for name in private_modules:
+            add(name)
+
+    def want_source_code(self, cname):
+        return cname[0] == 'mechanize'
+
+    def private_name(self, cname):
+        try:
+            module_name = cname[1]
+        except IndexError:
+            return False
+        else:
+            return module_name.startswith("_")
+
+    def munge(self, label):
+        # Munge to remove private modules
+        if label.startswith("mechanize."):
+            label = label[len("mechanize."):]
+
+        if not label.startswith("_"):
+            return label
+
+        names = self._names
+        ii = label.find(".")
+        if ii < 0:
+            return label
+
+        first_part = label[:ii]
+        if first_part not in names:
+            return label
+
+        return 'mechanize'+label[ii:]
+munger = MechanizeNameHelper()
+
 ######################################################################
 ## Template Compiler
 ######################################################################
@@ -391,8 +458,9 @@
         be included in the index."""
 
         # URL for 'trees' page
-        if self.module_list: self._trees_url = 'module-tree.html'
-        else: self._trees_url = 'class-tree.html'
+##         if self.module_list: self._trees_url = 'module-tree.html'
+##         else: self._trees_url = 'class-tree.html'
+        self._trees_url = 'class-tree.html'
 
         # Construct the value for self.indexed_docs.
         self.indexed_docs += [d for d in valdocs
@@ -417,7 +485,8 @@
         # reporting).
         self.modules_with_sourcecode = set()
         for doc in self.module_list:
-            if isinstance(doc, ModuleDoc) and is_src_filename(doc.filename):
+            if (isinstance(doc, ModuleDoc) and is_src_filename(doc.filename) and
+                munger.want_source_code(doc.canonical_name)):
                 self.modules_with_sourcecode.add(doc)
         self._num_files = (len(self.class_list) + 2*len(self.module_list) +
                            11 + len(self.METADATA_INDICES))
@@ -526,75 +595,76 @@
         for (name, label, label2) in self.METADATA_INDICES:
             indices[name] = self.build_metadata_index(name)
 
-        # Write the identifier index.  If requested, split it into
-        # separate pages for each letter.
-        ident_by_letter = self._group_by_letter(indices['ident'])
-        if not self._split_ident_index:
-            self._write(self.write_link_index, directory,
-                        'identifier-index.html', indices,
-                        'Identifier Index', 'identifier-index.html',
-                        ident_by_letter)
-        else:
-            # Write a page for each section.
-            for letter in self.LETTERS:
-                filename = 'identifier-index-%s.html' % letter
-                self._write(self.write_link_index, directory, filename,
-                            indices, 'Identifier Index', filename,
-                            ident_by_letter, [letter],
-                            'identifier-index-%s.html')
-            # Use the first non-empty section as the main index page.
-            for letter in self.LETTERS:
-                if letter in ident_by_letter:
-                    filename = 'identifier-index.html'
-                    self._write(self.write_link_index, directory, filename,
-                                indices, 'Identifier Index', filename,
-                                ident_by_letter, [letter], 
-                                'identifier-index-%s.html')
-                    break
-
-        # Write the term index.
-        if indices['term']:
-            term_by_letter = self._group_by_letter(indices['term'])
-            self._write(self.write_link_index, directory, 'term-index.html',
-                        indices, 'Term Definition Index',
-                        'term-index.html', term_by_letter)
-        else:
-            self._files_written += 1 # (skipped)
-
-        # Write the metadata indices.
-        for (name, label, label2) in self.METADATA_INDICES:
-            if indices[name]:
-                self._write(self.write_metadata_index, directory,
-                            '%s-index.html' % name, indices, name,
-                            label, label2)
-            else:
-                self._files_written += 1 # (skipped)
-
-        # Write the trees file (package & class hierarchies)
-        if self.module_list:
-            self._write(self.write_module_tree, directory, 'module-tree.html')
-        else:
-            self._files_written += 1 # (skipped)
+##         # Write the identifier index.  If requested, split it into
+##         # separate pages for each letter.
+##         ident_by_letter = self._group_by_letter(indices['ident'])
+##         if not self._split_ident_index:
+##             self._write(self.write_link_index, directory,
+##                         'identifier-index.html', indices,
+##                         'Identifier Index', 'identifier-index.html',
+##                         ident_by_letter)
+##         else:
+##             # Write a page for each section.
+##             for letter in self.LETTERS:
+##                 filename = 'identifier-index-%s.html' % letter
+##                 self._write(self.write_link_index, directory, filename,
+##                             indices, 'Identifier Index', filename,
+##                             ident_by_letter, [letter],
+##                             'identifier-index-%s.html')
+##             # Use the first non-empty section as the main index page.
+##             for letter in self.LETTERS:
+##                 if letter in ident_by_letter:
+##                     filename = 'identifier-index.html'
+##                     self._write(self.write_link_index, directory, filename,
+##                                 indices, 'Identifier Index', filename,
+##                                 ident_by_letter, [letter], 
+##                                 'identifier-index-%s.html')
+##                     break
+
+##         # Write the term index.
+##         if indices['term']:
+##             term_by_letter = self._group_by_letter(indices['term'])
+##             self._write(self.write_link_index, directory, 'term-index.html',
+##                         indices, 'Term Definition Index',
+##                         'term-index.html', term_by_letter)
+##         else:
+##             self._files_written += 1 # (skipped)
+
+##         # Write the metadata indices.
+##         for (name, label, label2) in self.METADATA_INDICES:
+##             if indices[name]:
+##                 self._write(self.write_metadata_index, directory,
+##                             '%s-index.html' % name, indices, name,
+##                             label, label2)
+##             else:
+##                 self._files_written += 1 # (skipped)
+
+##         # Write the trees file (package & class hierarchies)
+##         if self.module_list:
+##             self._write(self.write_module_tree, directory, 'module-tree.html')
+##         else:
+##             self._files_written += 1 # (skipped)
         if self.class_list:
             self._write(self.write_class_tree, directory, 'class-tree.html')
         else:
             self._files_written += 1 # (skipped)
         
         # Write the help file.
-        self._write(self.write_help, directory,'help.html')
+##         self._write(self.write_help, directory,'help.html')
         
         # Write the frames-based table of contents.
-        self._write(self.write_frames_index, directory, 'frames.html')
-        self._write(self.write_toc, directory, 'toc.html')
-        self._write(self.write_project_toc, directory, 'toc-everything.html')
-        for doc in self.module_list:
-            filename = 'toc-%s' % urllib.unquote(self.url(doc))
-            self._write(self.write_module_toc, directory, filename, doc)
+##         self._write(self.write_frames_index, directory, 'frames.html')
+##         self._write(self.write_toc, directory, 'toc.html')
+##         self._write(self.write_project_toc, directory, 'toc-everything.html')
+##         for doc in self.module_list:
+##             filename = 'toc-%s' % urllib.unquote(self.url(doc))
+##             self._write(self.write_module_toc, directory, filename, doc)
 
         # Write the object documentation.
         for doc in self.module_list:
-            filename = urllib.unquote(self.url(doc))
-            self._write(self.write_module, directory, filename, doc)
+            if doc.is_package is True:
+                filename = urllib.unquote(self.url(doc))
+                self._write(self.write_module, directory, filename, doc)
         for doc in self.class_list:
             filename = urllib.unquote(self.url(doc))
             self._write(self.write_class, directory, filename, doc)
@@ -620,9 +690,9 @@
 
         # Write the index.html files.
         # (this must be done last, since it might copy another file)
-        self._files_written += 1
-        log.progress(self._files_written/self._num_files, 'index.html')
-        self.write_homepage(directory)
+##         self._files_written += 1
+##         log.progress(self._files_written/self._num_files, 'index.html')
+##         self.write_homepage(directory)
 
         # Report any failed crossreferences
         if self._failed_xrefs:
@@ -705,7 +775,7 @@
         self.write_standard_fields(out, doc)
 
         # If it's a package, then list the modules it contains.
-        if doc.is_package is True:
+        if 0:#doc.is_package is True:
             self.write_module_list(out, doc)
 
         # Write summary tables describing the variables that the
@@ -927,7 +997,7 @@
         self.write_header(out, title)
         self.write_navbar(out, 'trees')
         self.write_breadcrumbs(out, 'trees', url)
-        if self.class_list and self.module_list:
+        if 0:#self.class_list and self.module_list:
             out('<center><b>\n')
             out(' [ <a href="module-tree.html">Module Hierarchy</a>\n')
             out(' | <a href="class-tree.html">Class Hierarchy</a> ]\n')
@@ -1635,28 +1705,10 @@
           <!-- Tree link -->
         >>> if context == "trees":
               <th bgcolor="#70b0f0" class="navbar-select"
-                  >&nbsp;&nbsp;&nbsp;Trees&nbsp;&nbsp;&nbsp;</th>
-        >>> else:
-              <th>&nbsp;&nbsp;&nbsp;<a
-                href="$self._trees_url$">Trees</a>&nbsp;&nbsp;&nbsp;</th>
-        >>> #endif
-        
-          <!-- Index link -->
-        >>> if context == "indices":
-              <th bgcolor="#70b0f0" class="navbar-select"
-                  >&nbsp;&nbsp;&nbsp;Indices&nbsp;&nbsp;&nbsp;</th>
-        >>> else:
-              <th>&nbsp;&nbsp;&nbsp;<a
-                href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
-        >>> #endif
-        
-          <!-- Help link -->
-        >>> if context == "help":
-              <th bgcolor="#70b0f0" class="navbar-select"
-                  >&nbsp;&nbsp;&nbsp;Help&nbsp;&nbsp;&nbsp;</th>
+                  >&nbsp;&nbsp;&nbsp;Tree&nbsp;&nbsp;&nbsp;</th>
         >>> else:
               <th>&nbsp;&nbsp;&nbsp;<a
-                href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+                href="$self._trees_url$">Tree</a>&nbsp;&nbsp;&nbsp;</th>
         >>> #endif
         
         >>> if self._prj_link:
@@ -1715,10 +1767,6 @@
         >>> if self._show_private:
                 <tr><td align="right">$self.PRIVATE_LINK$</td></tr>
         >>> #endif
-                <tr><td align="right"><span class="options"
-                    >[<a href="frames.html" target="_top">frames</a
-                    >]&nbsp;|&nbsp;<a href="$context_url$"
-                    target="_top">no&nbsp;frames</a>]</span></td></tr>
               </table>
             </td>
           </tr>
@@ -1744,7 +1792,9 @@
             else:
                 label = self._crumb(container)
                 name = container.canonical_name
-                crumbs.insert(0, self.href(container, label)) # [xx] code=0??
+                #if self.doc_kind(container) != 'Module':
+                if not munger.private_name(name):
+                    crumbs.insert(0, self.href(container, label)) # [xx] code=0??
                 doc = container
         
     def _crumb(self, doc):
@@ -2453,7 +2503,7 @@
         else: s = ''
         for i in range(len(bases)-1, -1, -1):
             base = bases[i]
-            label = self.contextual_label(base, context)
+            label = munger.munge(self.contextual_label(base, context))
             s = (' '*(width-4-len(label)) + self.href(base, label)
                    +' --+'+postfix+'\n' + 
                    ' '*(width-4) +
@@ -2925,11 +2975,11 @@
         # Module: <canonical_name>-module.html
         if isinstance(obj, ModuleDoc):
             if obj not in self.module_set: return None
-            return urllib.quote('%s'%obj.canonical_name) + '-module.html'
+            return urllib.quote(munger.munge('%s'%obj.canonical_name)) + '-module.html'
         # Class: <canonical_name>-class.html
         elif isinstance(obj, ClassDoc):
             if obj not in self.class_set: return None
-            return urllib.quote('%s'%obj.canonical_name) + '-class.html'
+            return urllib.quote(munger.munge('%s'%obj.canonical_name)) + '-class.html'
         # Variable
         elif isinstance(obj, VariableDoc):
             val_doc = obj.value
@@ -2991,7 +3041,7 @@
         elif isinstance(api_doc, ModuleDoc):
             if api_doc in self.modules_with_sourcecode:
                 return ('%s-pysrc.html' %
-                       urllib.quote('%s' % api_doc.canonical_name))
+                       urllib.quote(munger.munge('%s' % api_doc.canonical_name)))
             else:
                 return None
         else:
@@ -3045,6 +3095,7 @@
             if label.startswith('??'):
                 label = '<i>unreachable</i>' + label[2:]
                 label = re.sub(r'-\d+$', '', label)
+            label = munger.munge(label)
 
         # Get the url for the target.
         url = self.url(target)


More information about the wwwsearch-commits mailing list