Martijn Faassen wrote:
Hi there,
I think we've had enough discussion to make a decision. Hopefully everybody is at least reasonably happy with this:
An "adapt()" method will be added to Interface. It takes the objects to adapt as *args, and optional but explicit 'default' and 'name' aguments.
A "utility()" method will be added to Interface. It takes optional but explicit 'default' and 'name' arguments.
On the adapter hook (__call__) we will deprecate the implicit second argument for defaults, with a deprecation warning. Instead, we will require people to write out 'default=' explicitly. Otherwise its behavior remains unchanged. I think we can motivate this change purely because IFoo(bar, baz) really is quite surprising compared to IFoo(bar, default=baz).
I tried to follow this discussion closely: however, I cannot say that I understand if doing multi-adaptation with IFoo(bar, baz, boo) has been rejected or postponed.
[steering group members, if you are really unhappy with this, please speak up now. Silence is assent. :)]
Hopefully we can move forward towards implementation.
Thomas Lotze, are you happy enough with this to still help with the implementation?
Thanks everybody for your participation in the discussion!
Regards,
Martijn
-- Godefroid Chapelle (aka __gotcha) http://bubblenet.be