Jeff, fwiw, to sidestep the problem with your current implementation,
and just try to address some possible solutions, we also replace the
standard contents view, but we do it generally--for the default
layer. There are at least a couple of ways to do that (zcml
overrides and custom folder instances with their own associated
views). Looking that way might get you past what sounds like a
possible time crunch.
That's not to dissuade you from continuing to explore your current
avenue: it's just offered as a possible practical way out, maybe
while you figure out your original approach.
On the other hand, to try to answer what I think was one of your
recent questions, directlyProvided interfaces are more important for
a match than interfaces from a class.
>>> from zope import interface
>>> class IFoo(interface.Interface):
>>> class IBar(IFoo):
>>> class IBaz(interface.Interface):
>>> class Bar(object):
>>> bar = Bar()
>>> interface.directlyProvides(bar, IBaz)
(<InterfaceClass __main__.IBaz>, <InterfaceClass __main__.IBar>,
<InterfaceClass __main__.IFoo>, <InterfaceClass
I believe that's pertinent. :-)
I'm pretty sure there's a proposal on the wiki somewhere with Jim's
full lookup algorithm that you want, but the iro for the pertinent
object(s) usually gets me far enough.
Zope3-dev mailing list