diff options
author | Tim Peters <tim.peters@gmail.com> | 2001-09-25 00:01:06 (GMT) |
---|---|---|
committer | Tim Peters <tim.peters@gmail.com> | 2001-09-25 00:01:06 (GMT) |
commit | 3e767d19e00690435a0edc257f2ac33fc7fca860 (patch) | |
tree | d513b35c146b1c00f1a9b7abe34ed3e1b51f5ec2 | |
parent | f4aad8eb28606a7cfa0266a1f2c28c003e8cd36e (diff) | |
download | cpython-3e767d19e00690435a0edc257f2ac33fc7fca860.zip cpython-3e767d19e00690435a0edc257f2ac33fc7fca860.tar.gz cpython-3e767d19e00690435a0edc257f2ac33fc7fca860.tar.bz2 |
GUI mode now displays useful stuff for properties. This is usually better
than text mode, since here we can hyperlink from the getter etc methods
back to their definitions.
-rwxr-xr-x | Lib/pydoc.py | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/Lib/pydoc.py b/Lib/pydoc.py index 4bf1940..c3f33a0 100755 --- a/Lib/pydoc.py +++ b/Lib/pydoc.py @@ -636,16 +636,26 @@ TT { font-family: lucidatypewriter, lucida console, courier } push('\n') return attrs - # pydoc can't make any reasonable sense of properties on its own, - # and it doesn't appear that the getter, setter and del'er methods - # are discoverable. For now, just pump out their names. def spillproperties(msg, attrs, predicate): ok, attrs = _split_list(attrs, predicate) if ok: hr.maybe() push(msg) for name, kind, homecls, value in ok: - push('<dl><dt><strong>%s</strong></dl>\n' % name) + push('<dl><dt><strong>%s</strong></dt>\n' % name) + if value.__doc__ is not None: + doc = self.markup(value.__doc__, self.preformat, + funcs, classes, mdict) + push('<dd><small><tt>%s</tt></small></dd>\n' % doc) + for attr, tag in [("fset", " setter"), + ("fget", " getter"), + ("fdel", " deleter")]: + func = getattr(value, attr) + if func is not None: + base = self.document(func, name + tag, mod, + funcs, classes, mdict, object) + push('<dd>%s</dd>\n' % base) + push('</dl>\n') return attrs def spilldata(msg, attrs, predicate): |