#1715: include sub-extension modules in pydoc text output.

This commit is contained in:
Georg Brandl 2008-01-21 21:05:49 +00:00
parent dd76e05dd9
commit f2dae0e14a
3 changed files with 21 additions and 1 deletions

View file

@ -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(