[Python-checkins] CVS: python/dist/src/Lib pydoc.py,1.29,1.30

Ka-Ping Yee ping@users.sourceforge.net
Thu, 12 Apr 2001 13:39:16 -0700


Update of /cvsroot/python/python/dist/src/Lib
In directory usw-pr-cvs1:/tmp/cvs-serv10514

Modified Files:
	pydoc.py 
Log Message:
Fix linking to classes (in class tree, and add links on unbound methods).


Index: pydoc.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/pydoc.py,v
retrieving revision 1.29
retrieving revision 1.30
diff -C2 -r1.29 -r1.30
*** pydoc.py	2001/04/12 20:27:31	1.29
--- pydoc.py	2001/04/12 20:39:14	1.30
***************
*** 343,352 ****
          return name
  
!     def classlink(self, object, modname, *dicts):
          """Make a link for a class."""
          name = classname(object, modname)
!         for dict in dicts:
!             if dict.has_key(object):
!                 return '<a href="%s">%s</a>' % (dict[object], name)
          return name
  
--- 343,353 ----
          return name
  
!     def classlink(self, object, modname):
          """Make a link for a class."""
          name = classname(object, modname)
!         if sys.modules.has_key(object.__module__) and \
!             getattr(sys.modules[object.__module__], object.__name__) is object:
!             return '<a href="%s.html#%s">%s</a>' % (
!                 object.__module__, object.__name__, name)
          return name
  
***************
*** 406,410 ****
      # ---------------------------------------------- type-specific routines
  
!     def formattree(self, tree, modname, classes={}, parent=None):
          """Produce HTML for a class tree as given by inspect.getclasstree()."""
          result = ''
--- 407,411 ----
      # ---------------------------------------------- type-specific routines
  
!     def formattree(self, tree, modname, parent=None):
          """Produce HTML for a class tree as given by inspect.getclasstree()."""
          result = ''
***************
*** 413,426 ****
                  c, bases = entry
                  result = result + '<dt><font face="helvetica, arial"><small>'
!                 result = result + self.classlink(c, modname, classes)
                  if bases and bases != (parent,):
                      parents = []
                      for base in bases:
!                         parents.append(self.classlink(base, modname, classes))
                      result = result + '(' + join(parents, ', ') + ')'
                  result = result + '\n</small></font></dt>'
              elif type(entry) is type([]):
                  result = result + '<dd>\n%s</dd>\n' % self.formattree(
!                     entry, modname, classes, c)
          return '<dl>\n%s</dl>\n' % result
  
--- 414,427 ----
                  c, bases = entry
                  result = result + '<dt><font face="helvetica, arial"><small>'
!                 result = result + self.classlink(c, modname)
                  if bases and bases != (parent,):
                      parents = []
                      for base in bases:
!                         parents.append(self.classlink(base, modname))
                      result = result + '(' + join(parents, ', ') + ')'
                  result = result + '\n</small></font></dt>'
              elif type(entry) is type([]):
                  result = result + '<dd>\n%s</dd>\n' % self.formattree(
!                     entry, modname, c)
          return '<dl>\n%s</dl>\n' % result
  
***************
*** 506,511 ****
          if classes:
              classlist = map(lambda (key, value): value, classes)
!             contents = [self.formattree(
!                 inspect.getclasstree(classlist, 1), name, cdict)]
              for key, value in classes:
                  contents.append(self.document(value, key, name, fdict, cdict))
--- 507,512 ----
          if classes:
              classlist = map(lambda (key, value): value, classes)
!             contents = [
!                 self.formattree(inspect.getclasstree(classlist, 1), name)]
              for key, value in classes:
                  contents.append(self.document(value, key, name, fdict, cdict))
***************
*** 559,564 ****
              parents = []
              for base in bases:
!                 parents.append(
!                     self.classlink(base, object.__module__, classes))
              title = title + '(%s)' % join(parents, ', ')
          doc = self.markup(
--- 560,564 ----
              parents = []
              for base in bases:
!                 parents.append(self.classlink(base, object.__module__))
              title = title + '(%s)' % join(parents, ', ')
          doc = self.markup(
***************
*** 584,597 ****
              if cl:
                  if imclass is not cl:
!                     url = '%s.html#%s-%s' % (
!                         imclass.__module__, imclass.__name__, name)
!                     note = ' from <a href="%s">%s</a>' % (
!                         url, classname(imclass, mod))
                      skipdocs = 1
              else:
!                 inst = object.im_self
!                 note = (inst and
!                     ' method of %s instance' % classname(inst.__class__, mod) or
!                     ' unbound %s method' % classname(imclass, mod))
              object = object.im_func
  
--- 584,595 ----
              if cl:
                  if imclass is not cl:
!                     note = ' from ' + self.classlink(imclass, mod)
                      skipdocs = 1
              else:
!                 if object.im_self:
!                     note = ' method of %s instance' % self.classlink(
!                         object.im_self.__class__, mod)
!                 else:
!                     note = ' unbound %s method' % self.classlink(imclass,mod)
              object = object.im_func
  
***************
*** 849,856 ****
                      skipdocs = 1
              else:
!                 inst = object.im_self
!                 note = (inst and
!                     ' method of %s instance' % classname(inst.__class__, mod) or
!                     ' unbound %s method' % classname(imclass, mod))
              object = object.im_func
  
--- 847,855 ----
                      skipdocs = 1
              else:
!                 if object.im_self:
!                     note = ' method of %s instance' % classname(
!                         object.im_self.__class__, mod)
!                 else:
!                     note = ' unbound %s method' % classname(imclass,mod)
              object = object.im_func