diff options
-rwxr-xr-x | Lib/pydoc.py | 14 | ||||
-rw-r--r-- | Lib/test/pydocfodder.py | 6 | ||||
-rw-r--r-- | Misc/NEWS | 2 |
3 files changed, 21 insertions, 1 deletions
diff --git a/Lib/pydoc.py b/Lib/pydoc.py index c2b2088..26cd55d 100755 --- a/Lib/pydoc.py +++ b/Lib/pydoc.py @@ -1051,9 +1051,11 @@ class TextDoc(Doc): if visiblename(key, all): data.append((key, value)) + modpkgs = [] + modpkgs_names = set() if hasattr(object, '__path__'): - modpkgs = [] for importer, modname, ispkg in pkgutil.iter_modules(object.__path__): + modpkgs_names.add(modname) if ispkg: modpkgs.append(modname + ' (package)') else: @@ -1063,6 +1065,16 @@ class TextDoc(Doc): result = result + self.section( 'PACKAGE CONTENTS', join(modpkgs, '\n')) + # Detect submodules as sometimes created by C extensions + submodules = [] + for key, value in inspect.getmembers(object, inspect.ismodule): + if value.__name__.startswith(name + '.') and key not in modpkgs_names: + submodules.append(key) + if submodules: + submodules.sort() + result = result + self.section( + 'SUBMODULES', join(submodules, '\n')) + if classes: classlist = map(lambda (key, value): value, classes) contents = [self.formattree( diff --git a/Lib/test/pydocfodder.py b/Lib/test/pydocfodder.py index becdf22..2cf1cbd 100644 --- a/Lib/test/pydocfodder.py +++ b/Lib/test/pydocfodder.py @@ -1,5 +1,7 @@ """Something just to look at via pydoc.""" +import types + class A_classic: "A classic class." def A_method(self): @@ -208,3 +210,7 @@ class FunkyProperties(object): del inst.desc[self.attr] x = property(get_desc('x'), set_desc('x'), del_desc('x'), 'prop x') + + +submodule = types.ModuleType(__name__ + '.submodule', + """A submodule, which should appear in its parent's summary""") @@ -372,6 +372,8 @@ Core and builtins Library ------- +- #1715: include sub-extension modules in pydoc's text output. + - #1836: fix an off-by-one bug in TimedRotatingHandler's rollover time calculation. |