Dave Burton <ncdave4l...@gmail.com> added the comment: Well, the exception is NotImplementedError. It's raised explicitly in pygame\__init__.py
I uncommented my commented-out print statement in inspect.py, and added a traceback print, and ran pydoc like this: c:\python32\python.exe c:\python32\Lib\pydoc.py -p 7464 The I viewed http://localhost:7464/pygame.html in a web browser, and the pydoc server printed: Server ready at http://localhost:7464/ Server commands: [b]rowser, [q]uit server> c:\python32\Lib\inspect.py:105: RuntimeWarning: use scrap: No module named scrap (ImportError: No module named scrap) result = (hasattr(object, "__get__") dbg: ismethoddescriptor(<pygame.MissingModule object at 0x03763F90>) failed, exception=NotImplementedError('scrap module not available\n(ImportError: No module named scrap)',) Traceback (most recent call last): File "c:\python32\Lib\inspect.py", line 105, in ismethoddescriptor result = (hasattr(object, "__get__") File "c:\python32\lib\site-packages\pygame\__init__.py", line 74, in __getattr__ raise NotImplementedError(MissingPygameModule) NotImplementedError: scrap module not available (ImportError: No module named scrap) ------------------------------------------------------------ c:\python32\Lib\inspect.py:105: RuntimeWarning: use sndarray: no module named numpy or Numeric found (ImportError: no module named numpy or Numeric found) result = (hasattr(object, "__get__") dbg: ismethoddescriptor(<pygame.MissingModule object at 0x0376EFF0>) failed, exception=NotImplementedError('sndarray module not available\n(ImportError: no module named numpy or Numeric found)',) Traceback (most recent call last): ...(etc.) Here's the modified ismethoddescriptor() in inspect.py: def ismethoddescriptor(object): """Return true if the object is a method descriptor. But not if ismethod() or isclass() or isfunction() are true. This is new in Python 2.2, and, for example, is true of int.__add__. An object passing this test has a __get__ attribute but not a __set__ attribute, but beyond that the set of attributes varies. __name__ is usually sensible, and __doc__ often is. Methods implemented via descriptors that also pass one of the other tests return false from the ismethoddescriptor() test, simply because the other tests promise more -- you can, e.g., count on having the __func__ attribute (etc) when an object passes ismethod().""" import traceback try: result = (hasattr(object, "__get__") and not hasattr(object, "__set__") # else it's a data descriptor and not ismethod(object) # mutual exclusion and not isfunction(object) and not isclass(object)) except Exception as whichone: print('dbg: ismethoddescriptor('+repr(object)+') failed, exception='+repr(whichone)) traceback.print_exc(file=sys.stdout) print("-"*60 + '\n') result = False return result ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue14367> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com