[Zope-dev] KeywordIndex and PersistentList (Bug?)

Thomas Guettler Thomas Guettler <thomas@thomas-guettler.de>
Wed, 20 Nov 2002 18:57:08 +0100


Hi!

In KeywordIndex the newKeywords get called
if they are "callable":
    def _get_object_keywords(self,obj):
        newKeywords = getattr(obj, self.id, ())
        if callable(newKeywords):               # (*) 
			newKeywords = newKeywords()
        if hasattr(newKeywords,'capitalize'): # is it string-like ?
            newKeywords = (newKeywords, )
        return newKeywords

This fails if the newKeywords are stored in a PersistentList. 

Callable is true, but there is no __call__ attribute.

I changed the line marked with (*) to 
 if hasattr(newKeyword, "__call__"):

and this seems to work

I think this does not break anything and could be included in the
original.

Am I the first how uses PersistentList for an indexed attribute? Is
there a reason not to do so?

 thomas

Please CC to me I am not on the list yet

 


-- 
Thomas Guettler <guettli@thomas-guettler.de>
http://www.thomas-guettler.de