[PEAK] Default value lost in binding.Obtain()

PJ Eby pje at telecommunity.com
Fri Oct 30 14:59:31 EDT 2015


Does this patch work for you?

On Wed, Oct 28, 2015 at 8:45 AM, Alexey Smishlayev <alexey at xtech2.lv> wrote:
> Hi!
> How can I get an svn checkout to incorporate described changes and propose
> another patch? This is essential for our software and I'd like to see it
> merged in upstream as soon as possible.
>
> Best regards,
> Alexey
>
>
> On 30/09/15 01:53, PJ Eby wrote:
>>
>> Thanks for reporting the problem.  Unfortunately your patch will mask
>> any other sort of name error, including one that happens indirectly as
>> a side effect of the lookup.  I think the correct fix is going to be
>> to change the nameNotFound() method of config.IConfigurationRoot to
>> include a default (defaulting to NOT_GIVEN), and have
>> acquireComponent() take a default and pass it along to nameNotFound().
>> This would handle the case of a direct lookup failing by returning the
>> default, but still raise an error for any other part of the process
>> getting a naming error.
>>
>> On Tue, Sep 29, 2015 at 9:03 AM, Alexey Smishlayev <alexey at xtech2.lv>
>> wrote:
>>>
>>> Hello!
>>>
>>> Today, fiddling with the binding.Obtain() I noticed that the default
>>> value
>>> gets lost.
>>>
>>> In my application, I have a component tree and I want an attribute to be
>>> defined in any component in that tree, so I created binding:
>>>
>>>>      callback = binding.Obtain("callbackFunction", default=lambda arg:
>>>> None)
>>>>
>>> So, in case that no component defines a callbackFunction, the lambda
>>> function would be used as a fallback.
>>> Unfortunately, "default" option is ignored unless target name contains
>>> slashes (e.g. "/callbackFunction", "./callBackFunction",
>>> "../callbackFunction")
>>>
>>> I went to the peak/binding/components.py trying to fix it and propose the
>>> attached patch.
>>> The problem is that default value was not propagated to the
>>> acquireComponent() call, so an exception occurred.
>>>
>>>
>>> Best regards,
>>> Alexey Smishlayev
>>>
>>> _______________________________________________
>>> PEAK mailing list
>>> PEAK at eby-sarna.com
>>> http://www.eby-sarna.com/mailman/listinfo/peak
>
>
> _______________________________________________
> PEAK mailing list
> PEAK at eby-sarna.com
> http://www.eby-sarna.com/mailman/listinfo/peak
-------------- next part --------------
A non-text attachment was scrubbed...
Name: obtain.patch
Type: application/octet-stream
Size: 3282 bytes
Desc: not available
Url : http://www.eby-sarna.com/pipermail/peak/attachments/20151030/f815b8ef/obtain.obj


More information about the PEAK mailing list