[Python-checkins] CVS: python/dist/src/Lib pydoc.py,1.50,1.51
Tim Peters
tim_one@users.sourceforge.net
Wed, 26 Sep 2001 14:31:53 -0700
- Previous message: [Python-checkins] CVS: python/dist/src/Lib/test test_profilehooks.py,1.3,1.4
- Next message: [Python-checkins] CVS: python/dist/src/Doc/lib email.tex,1.2,1.3 emailencoders.tex,1.1,1.2 emailexc.tex,1.1,1.2 emailgenerator.tex,1.1,1.2 emailiter.tex,1.1,1.2 emailmessage.tex,1.1,1.2 emailparser.tex,1.1,1.2 emailutil.tex,1.1,1.2
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Update of /cvsroot/python/python/dist/src/Lib
In directory usw-pr-cvs1:/tmp/cvs-serv10730/python/Lib
Modified Files:
pydoc.py
Log Message:
Display a class's method resolution order, if it's non-trivial. "Trivial"
here means it has no more than one base class to rummage through (in which
cases there's no potential confusion about resolution order).
Index: pydoc.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/pydoc.py,v
retrieving revision 1.50
retrieving revision 1.51
diff -C2 -d -r1.50 -r1.51
*** pydoc.py 2001/09/25 06:30:51 1.50
--- pydoc.py 2001/09/26 21:31:51 1.51
***************
*** 625,628 ****
--- 625,638 ----
hr = HorizontalRule()
+ # List the mro, if non-trivial.
+ mro = inspect.getmro(object)
+ if len(mro) > 2:
+ hr.maybe()
+ push('<dl><dt>Method resolution order:</dt>\n')
+ for base in mro:
+ push('<dd>%s</dd>\n' % self.classlink(base,
+ object.__module__))
+ push('</dl>\n')
+
def spill(msg, attrs, predicate):
ok, attrs = _split_list(attrs, predicate)
***************
*** 739,742 ****
--- 749,753 ----
doc = self.markup(getdoc(object), self.preformat, funcs, classes, mdict)
doc = doc and '<tt>%s<br> </tt>' % doc or ' '
+
return self.section(title, '#000000', '#ffc8d8', contents, 5, doc)
***************
*** 986,989 ****
--- 997,1003 ----
bases = object.__bases__
+ def makename(c, m=object.__module__):
+ return classname(c, m)
+
if name == realname:
title = 'class ' + self.bold(realname)
***************
*** 991,995 ****
title = self.bold(name) + ' = class ' + realname
if bases:
- def makename(c, m=object.__module__): return classname(c, m)
parents = map(makename, bases)
title = title + '(%s)' % join(parents, ', ')
--- 1005,1008 ----
***************
*** 998,1001 ****
--- 1011,1022 ----
contents = doc and [doc + '\n'] or []
push = contents.append
+
+ # List the mro, if non-trivial.
+ mro = inspect.getmro(object)
+ if len(mro) > 2:
+ push("Method resolution order:")
+ for base in mro:
+ push(' ' + makename(base))
+ push('')
# Cute little class to pump out a horizontal rule between sections.
- Previous message: [Python-checkins] CVS: python/dist/src/Lib/test test_profilehooks.py,1.3,1.4
- Next message: [Python-checkins] CVS: python/dist/src/Doc/lib email.tex,1.2,1.3 emailencoders.tex,1.1,1.2 emailexc.tex,1.1,1.2 emailgenerator.tex,1.1,1.2 emailiter.tex,1.1,1.2 emailmessage.tex,1.1,1.2 emailparser.tex,1.1,1.2 emailutil.tex,1.1,1.2
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]