@@ -342,12 +342,13 @@ def namelink(self, name, *dicts):
342
342
return '<a href="%s">%s</a>' % (dict [name ], name )
343
343
return name
344
344
345
- def classlink (self , object , modname , * dicts ):
345
+ def classlink (self , object , modname ):
346
346
"""Make a link for a class."""
347
347
name = classname (object , modname )
348
- for dict in dicts :
349
- if dict .has_key (object ):
350
- return '<a href="%s">%s</a>' % (dict [object ], name )
348
+ if sys .modules .has_key (object .__module__ ) and \
349
+ getattr (sys .modules [object .__module__ ], object .__name__ ) is object :
350
+ return '<a href="%s.html#%s">%s</a>' % (
351
+ object .__module__ , object .__name__ , name )
351
352
return name
352
353
353
354
def modulelink (self , object ):
@@ -405,23 +406,23 @@ def markup(self, text, escape=None, funcs={}, classes={}, methods={}):
405
406
406
407
# ---------------------------------------------- type-specific routines
407
408
408
- def formattree (self , tree , modname , classes = {}, parent = None ):
409
+ def formattree (self , tree , modname , parent = None ):
409
410
"""Produce HTML for a class tree as given by inspect.getclasstree()."""
410
411
result = ''
411
412
for entry in tree :
412
413
if type (entry ) is type (()):
413
414
c , bases = entry
414
415
result = result + '<dt><font face="helvetica, arial"><small>'
415
- result = result + self .classlink (c , modname , classes )
416
+ result = result + self .classlink (c , modname )
416
417
if bases and bases != (parent ,):
417
418
parents = []
418
419
for base in bases :
419
- parents .append (self .classlink (base , modname , classes ))
420
+ parents .append (self .classlink (base , modname ))
420
421
result = result + '(' + join (parents , ', ' ) + ')'
421
422
result = result + '\n </small></font></dt>'
422
423
elif type (entry ) is type ([]):
423
424
result = result + '<dd>\n %s</dd>\n ' % self .formattree (
424
- entry , modname , classes , c )
425
+ entry , modname , c )
425
426
return '<dl>\n %s</dl>\n ' % result
426
427
427
428
def docmodule (self , object , name = None , mod = None ):
@@ -505,8 +506,8 @@ def docmodule(self, object, name=None, mod=None):
505
506
506
507
if classes :
507
508
classlist = map (lambda (key , value ): value , classes )
508
- contents = [self . formattree (
509
- inspect .getclasstree (classlist , 1 ), name , cdict )]
509
+ contents = [
510
+ self . formattree ( inspect .getclasstree (classlist , 1 ), name )]
510
511
for key , value in classes :
511
512
contents .append (self .document (value , key , name , fdict , cdict ))
512
513
result = result + self .bigsection (
@@ -558,8 +559,7 @@ def docclass(self, object, name=None, mod=None, funcs={}, classes={}):
558
559
if bases :
559
560
parents = []
560
561
for base in bases :
561
- parents .append (
562
- self .classlink (base , object .__module__ , classes ))
562
+ parents .append (self .classlink (base , object .__module__ ))
563
563
title = title + '(%s)' % join (parents , ', ' )
564
564
doc = self .markup (
565
565
getdoc (object ), self .preformat , funcs , classes , mdict )
@@ -583,16 +583,14 @@ def docroutine(self, object, name=None, mod=None,
583
583
imclass = object .im_class
584
584
if cl :
585
585
if imclass is not cl :
586
- url = '%s.html#%s-%s' % (
587
- imclass .__module__ , imclass .__name__ , name )
588
- note = ' from <a href="%s">%s</a>' % (
589
- url , classname (imclass , mod ))
586
+ note = ' from ' + self .classlink (imclass , mod )
590
587
skipdocs = 1
591
588
else :
592
- inst = object .im_self
593
- note = (inst and
594
- ' method of %s instance' % classname (inst .__class__ , mod ) or
595
- ' unbound %s method' % classname (imclass , mod ))
589
+ if object .im_self :
590
+ note = ' method of %s instance' % self .classlink (
591
+ object .im_self .__class__ , mod )
592
+ else :
593
+ note = ' unbound %s method' % self .classlink (imclass ,mod )
596
594
object = object .im_func
597
595
598
596
if name == realname :
@@ -848,10 +846,11 @@ def docroutine(self, object, name=None, mod=None, cl=None):
848
846
note = ' from ' + classname (imclass , mod )
849
847
skipdocs = 1
850
848
else :
851
- inst = object .im_self
852
- note = (inst and
853
- ' method of %s instance' % classname (inst .__class__ , mod ) or
854
- ' unbound %s method' % classname (imclass , mod ))
849
+ if object .im_self :
850
+ note = ' method of %s instance' % classname (
851
+ object .im_self .__class__ , mod )
852
+ else :
853
+ note = ' unbound %s method' % classname (imclass ,mod )
855
854
object = object .im_func
856
855
857
856
if name == realname :
0 commit comments