-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Chris Withers wrote: > Marius Gedminas wrote: >> Now when you try to adapt anything to ITest, zope.component will call >> your ``adapter`` function and then check the return value. A return >> value of None means "the adapter is not available", and results in a >> TypeError you see here: > > Yes, apologies, both you and Philipp are correct, I was trying to show a > simple version of a problem and oversimplified. > > Here's what I really meant: > > >>> from zope.component import provideAdapter > >>> from zope.interface import Interface > >>> from zope.component import getMultiAdapter > >>> class ITest(Interface): pass > ... > >>> def adapter(*args): return args > ... > > >>> provideAdapter(adapter,adapts=(None,),provides=ITest) > >>> ITest(1) > (1,) > > Yay, as expected... > > >>> getMultiAdapter((1,),ITest) > (1,) > > Good, still works... > > >>> provideAdapter(adapter,adapts=(None,None),provides=ITest) > >>> getMultiAdapter((1,1),ITest) > Traceback (most recent call last): > ... > zope.component.interfaces.ComponentLookupError: > ((1, 1), <InterfaceClass __main__.ITest>, u'') > > Oh dear, what have I done wrong here?
The "order" of your adapter registration is *one*, but you are trying to look it up against *two* objects (like a view). Tres. - -- =================================================================== Tres Seaver +1 540-429-0999 [EMAIL PROTECTED] Palladion Software "Excellence by Design" http://palladion.com -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2.2 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFFsSp++gerLs4ltQ4RApjSAKCYZwOp8b7LlUYEdk5E54bMSStY+ACgzdRY 8ZKbrbRcpyGUhel5YXXeuw4= =nAls -----END PGP SIGNATURE----- _______________________________________________ Zope3-dev mailing list Zope3-dev@zope.org Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com