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:
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(
"""Something just to look at via pydoc."""
+import types
+
class A_classic:
"A classic class."
def A_method(self):
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""")