[python-ldap] syncrepl fix for pyasn1 >= 0.3
michael at stroeder.com
Sat Nov 11 16:03:46 EST 2017
Ilya Etingof wrote:
> On 11 Nov 2017, at 20:56, Michael Ströder <michael at stroeder.com> wrote:
>> I've decided to start 2.5.0 incorporating this patch without the
>> backward-compability expressions. But I have some doubts.
>> For example in class SSSResponseControl I now see this code:
>> attribute_type_error = p.getComponentByName('attributeType')
>> if attribute_type_error.hasValue():
>> self.attribute_type_error = attribute_type_error
>> This does not set class attribute attribute_type_error at all in case
>> there was no error. So this also changes the API for the calling
>> application because instead of checking for
>> foo_sss.attribute_type_error is None
>> it has to check for
>> hasattr(foo_sss, ‘attribute_type_error')
> I might be looking at the wrong patch:
> But there the instance attribute `attribute_type_error` is always set to either `None` or a value object.
Seems the back-port following patch sent to the list was incomplete.
Nevermind. I've corrected it.
>> But frankly it would be more nice if pyasn1 method getComponentByName()
>> would take another optional parameter for default value returned in case
>> of .hasValue()==False.
>> So I could simply define a default value (here None)
>> p.getComponentByName('attributeType', None)
>> and be done with it. This would avoid a lot of if-statements with
>> .hasValue() and the ResponseControl.__getattr__() workaround.
> Makes sense! Let me come up with an implementation shortly.
Would be awesome. Looking forward to it.
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 3829 bytes
Desc: S/MIME Cryptographic Signature
More information about the python-ldap