[Python-checkins] r60178 - in python/trunk: Lib/pydoc.py Lib/test/pydocfodder.py Misc/NEWS

georg.brandl python-checkins at python.org
Mon Jan 21 22:05:49 CET 2008


Author: georg.brandl
Date: Mon Jan 21 22:05:49 2008
New Revision: 60178
Modified:
 python/trunk/Lib/pydoc.py
 python/trunk/Lib/test/pydocfodder.py
 python/trunk/Misc/NEWS
Log:
#1715: include sub-extension modules in pydoc text output.
Modified: python/trunk/Lib/pydoc.py
==============================================================================
--- python/trunk/Lib/pydoc.py	(original)
+++ python/trunk/Lib/pydoc.py	Mon Jan 21 22:05:49 2008
@@ -1051,9 +1051,11 @@
 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 @@
 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(
Modified: python/trunk/Lib/test/pydocfodder.py
==============================================================================
--- python/trunk/Lib/test/pydocfodder.py	(original)
+++ python/trunk/Lib/test/pydocfodder.py	Mon Jan 21 22:05:49 2008
@@ -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 @@
 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""")
Modified: python/trunk/Misc/NEWS
==============================================================================
--- python/trunk/Misc/NEWS	(original)
+++ python/trunk/Misc/NEWS	Mon Jan 21 22:05:49 2008
@@ -372,6 +372,8 @@
 Library
 -------
 
+- #1715: include sub-extension modules in pydoc's text output.
+
 - #1836: fix an off-by-one bug in TimedRotatingHandler's rollover
 time calculation.
 


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /