[Python-Dev] Sneaky 'super' instances

Brett C. drifty@alum.berkeley.edu
Wed, 11 Jun 2003 13:26:50 -0700


Raymond Hettinger wrote:
>>>Bug 729103 discovered an interesting little issue; 'super' instances 
>>>cause inspect.isroutine to return True since it also poses as a non-data 
>>>descriptor.  Now this is bad because pydoc then tries to get a __name__ 
>>>attribute out of it which it lacks because it is an instance of a class 
>>>and not really a function or method.
>>>
>>>So, should I change inspect.isroutine to check to see if its argument is 
>>>an instance of 'super'?  
> 
> 
> That is a reasonable short-term solution but it should go 
> one layer down in ismethoddescriptor().  Append the line:
> 
>     and not isinstance(object, super)
>

Even though it is a non-data descriptor?  It seems to have a __get__ 
instead of a __call__ method.  The problem is that pydoc just classifies 
it as a descriptor first and assumes __name__ will be there.

-Brett