Re: [Zope3-dev] wildcard adapter
Marius Gedminas wrote: There's a slight difference, I think. In the Zope 3 world, there's usually one style that is considered to be the best way of doing stuff. Only it varies with time and with individual Zope 3 developers. ;-) I do wish it would stop varying... If you pass the adapts/provides arguments to provideAdapter (or the ZCML directive), the values you specify override the defaults declared by the adapter itself. Right, so provideAdapter is still king? ;-) Does your favoured methodology actually register the adapter? cheers, Chris -- Simplistix - Content Management, Zope & Python Consulting - http://www.simplistix.co.uk ___ Zope3-dev mailing list Zope3-dev@zope.org Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com
Re: [Zope3-dev] wildcard adapter
On Thu, Jan 18, 2007 at 08:55:17AM +, Chris Withers wrote: > Marius Gedminas wrote: > >BTW passing interfaces to provideAdapter/ is out of fashion. > > This stuff is getting almost perl-ish in it's "there's many ways to do > it, pick the style you like" nature.. There's a slight difference, I think. In the Zope 3 world, there's usually one style that is considered to be the best way of doing stuff. Only it varies with time and with individual Zope 3 developers. ;-) > >I > >prefer using zope.component.adapts and zope.interface.implements (or > >zope.component.adapter and zope.interface.implementer, when my adapter > >is a function rather than a class). > > I often register the same adapter factory for several different types or > objects / interfaces. How would I do that with your favoured spelling? If you pass the adapts/provides arguments to provideAdapter (or the ZCML directive), the values you specify override the defaults declared by the adapter itself. Marius Gedminas -- Some people have told me they don't think a fat penguin really embodies the grace of Linux, which just tells me they have never seen a angry penguin charging at them in excess of 100mph. They'd be a lot more careful about what they say if they had. -- Linus Torvalds, announcing Linux v2.0 signature.asc Description: Digital signature ___ Zope3-dev mailing list Zope3-dev@zope.org Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com
Re: [Zope3-dev] wildcard adapter
Marius Gedminas wrote: BTW passing interfaces to provideAdapter/ is out of fashion. This stuff is getting almost perl-ish in it's "there's many ways to do it, pick the style you like" nature.. I prefer using zope.component.adapts and zope.interface.implements (or zope.component.adapter and zope.interface.implementer, when my adapter is a function rather than a class). I often register the same adapter factory for several different types or objects / interfaces. How would I do that with your favoured spelling? cheers, Chris -- Simplistix - Content Management, Zope & Python Consulting - http://www.simplistix.co.uk ___ Zope3-dev mailing list Zope3-dev@zope.org Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com
Re: [Zope3-dev] wildcard adapter
On Wed, Jan 17, 2007 at 06:37:52AM -0800, Martin Aspeli wrote: > Chris Withers wrote: > > I was wondering if someone could give me a definitive explanation of > > what the following means: > > > > > for="* ISomething *" > > ... > > > > ...means? > > > > Is the following equivalent: > > > > provideAdapter(...,adapts=(None,ISomething,None),...) > > No, but this is: > > provideAdapter(...,adapts=(Interface, ISomething, Interface),...) As far as I know provideAdapter treats None the same way as Interface. I've used this pattern a few times: from zope.adapter import adapts, provideAdapter from zope.interface import implements ... class SomeAdapter(object): adapts(None) implements(IFoo) ... provideAdapter(SomeAdapter) BTW passing interfaces to provideAdapter/ is out of fashion. I prefer using zope.component.adapts and zope.interface.implements (or zope.component.adapter and zope.interface.implementer, when my adapter is a function rather than a class). Marius Gedminas -- America and England are two countries separated by a common language. signature.asc Description: Digital signature ___ Zope3-dev mailing list Zope3-dev@zope.org Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com
Re: [Zope3-dev] wildcard adapter
Chris Withers wrote: > > Hi All, > > I was wondering if someone could give me a definitive explanation of > what the following means: > > for="* ISomething *" > ... > > ...means? > > Is the following equivalent: > > provideAdapter(...,adapts=(None,ISomething,None),...) > No, but this is: provideAdapter(...,adapts=(Interface, ISomething, Interface),...) > If it is, then which of the following should I use to register a generic > adapter for any single object to an interface: > > provideAdapter(...,adapts=(None,),...) > provideAdapter(...,adapts=None,...) > > I'm not having a lot of joy registering generic adapters so I thought > I'd come and check my understanding here ;-) > provideAdapter(adapts=(Interface,), ...) Martin -- View this message in context: http://www.nabble.com/wildcard-adapter-tf3027563.html#a8411297 Sent from the Zope3 - dev mailing list archive at Nabble.com. ___ Zope3-dev mailing list Zope3-dev@zope.org Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com
[Zope3-dev] wildcard adapter
Hi All, I was wondering if someone could give me a definitive explanation of what the following means: If it is, then which of the following should I use to register a generic adapter for any single object to an interface: provideAdapter(...,adapts=(None,),...) provideAdapter(...,adapts=None,...) I'm not having a lot of joy registering generic adapters so I thought I'd come and check my understanding here ;-) cheers, Chris -- Simplistix - Content Management, Zope & Python Consulting - http://www.simplistix.co.uk ___ Zope3-dev mailing list Zope3-dev@zope.org Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com