diff options
author | Tim Peters <tim.peters@gmail.com> | 2001-09-23 21:29:55 (GMT) |
---|---|---|
committer | Tim Peters <tim.peters@gmail.com> | 2001-09-23 21:29:55 (GMT) |
commit | 28355496c1dbd56dd3038b614e507462d7ca8ecc (patch) | |
tree | 77af17f779f422747ffd43de28e2f2e3d40fcb8d /Parser | |
parent | 894258cebef18a985001151c7ab46ad18c4ef58c (diff) | |
download | cpython-28355496c1dbd56dd3038b614e507462d7ca8ecc.zip cpython-28355496c1dbd56dd3038b614e507462d7ca8ecc.tar.gz cpython-28355496c1dbd56dd3038b614e507462d7ca8ecc.tar.bz2 |
Part of a partial solution to SF bugs 463378, 463381, 463383, 463384.
This almost entirely replaces how pydoc pumps out class docs, but only
in text mode (like help(whatever) from a Python shell), not in GUI mode.
A class C's attrs are now grouped by the class in which they're defined,
attrs defined by C first, then inherited attrs grouped by alphabetic order
of the defining classes' names.
Within each of those groups, the attrs are subgrouped according to whether
they're plain methods, class methods, static methods, properties, or data.
Note that pydoc never dumped class data attrs before. If a class data
attr is implemented via a data descriptor, the data docstring (if any)
is also displayed (e.g., file.softspace).
Within a subgroup, the attrs are listed alphabetically.
This is a friggin' mess, and there are bound to be glitches. Please
beat on it and complain! Here are three glitches:
1. __new__ gets classifed as 'data', for some reason. This will
have to get fixed in inspect.py, but since the latter is already
looking for any clue that something is a method, pydoc will
almost certainly not know what to do with it when its classification
changes.
2. properties are special-cased to death. Unlike any other kind of
function or method, they don't have a __name__ attr, so none of
pydoc's usual code can deal with them. Worse, the getter and
setter and del'er methods associated with a property don't appear
to be discoverable from Python, so there's really nothing I can
think of to do here beyond just listing their names.
Note that a property can't be given a docstring, either (or at least
I've been unable to sneak one in) -- perhaps the property()
constructor could take an optional doc argument?
3. In a nested-scopes world, pydoc still doesn't know anything about
nesting, so e.g. classes nested in functions are effectively invisible.
Diffstat (limited to 'Parser')
0 files changed, 0 insertions, 0 deletions