[Zope-dev] improving the utility and adapter lookup APIs
marius at gedmin.as
Fri Nov 27 06:27:02 EST 2009
On Thu, Nov 26, 2009 at 11:09:35AM -0500, Benji York wrote:
> On Thu, Nov 26, 2009 at 9:04 AM, Leonardo Rochael Almeida
> <leorochael at gmail.com> wrote:
> > On Thu, Nov 26, 2009 at 14:34, Benji York <benji at zope.com> wrote:
> >> On Wed, Nov 25, 2009 at 11:17 AM, Matthew Wilkes
> >>> I know it's probably a spurious use case, but what if I want to adapt a
> >>> tuple?
> >> There could be an optional keyword argument to be explicit.
> >> This would be a single-adapter lookup:
> >> IFoo(from=my_tuple)
> > You probably already realized it by now, but this is a syntax error
> > (remember: "from module import name").
> Nope, it hadn't occurred to me. Some other argument name could be used
Why do you need an argument when you can wrap the tuple in a tuple?
This is what people currently have to do when they use
"Here's an object I know nothing about: %r" % (obj, )
(Personally, I find that ugly and always use "text: %s" % repr(obj))
> >> While this would be a multi-adapter lookup:
> >> IFoo(my_tuple)
> > To take my stab at this bikeshed painting, and since it doesn't seem
> > likely we'd want to break backward compatibility, I think I'd prefer
> > the other way around:
> > IFoo(multi=my_tuple)
> > and leave the first parameter for single adaptation, although what I'd
> > really prefer is multi-adaptation on multiple positional parameter.
> I'd rather have the common case (of adapting a non-tuple) be the simpler
> form and the exception (adapting a tuple) require more verbiage.
That would be fine if you always knew what objects you were adapting.
Now, to be safe, you always have to use the "special" verbose syntax in
-1 for making generic code ugly.
http://pov.lt/ -- Zope 3 consulting and development
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Size: 189 bytes
Desc: Digital signature
Url : http://mail.zope.org/pipermail/zope-dev/attachments/20091127/fff6915d/attachment.bin
More information about the Zope-Dev