[python-ldap] syncrepl fix for pyasn1 >= 0.3

Michael Ströder michael at stroeder.com
Wed Nov 8 06:19:07 EST 2017


Ilya Etingof wrote:
> Would it be possible to bump pyasn1 version requirement at python-ldap
> to 0.3+ and remove all these `if xxx is None` comparisons? I guess not
> because that might be against versioning policies.

Well, there is no versioning policy.
Therefore we can define whatever is most suitable. ;-)

Possible solution:
- set strict requirement for python-ldap 2.4.x to pyasn1 < 0.3.x
- set requirement for an upcoming python-ldap 2.5.x to pyasn1 >= 0.3.x

Therefore if we don't find another solution I could cut a 2.4.46 release
now containing recent minor changes and immediately start with 2.5.x
adding a modification of your patches. All people installing/upgrading
from PyPI would be happy with python-ldap 2.5.x and pyasn1 0.3.x.

Not sure about people installing from OS distro packages though. I don't
have an overview whether there's already a distro release with
incompatible combination.

@Ilya: Can you oversee which distros already ship with pyasn1 0.3.x?

> To my understanding the `is` operator can't be overloaded because it is
> a memory address comparison.

Yes.

> May be we could inject the `NoValue` class along with the `noValue`
> singleton object into  pyasn1 from the python-ldap code at import time:
> 
>     from pyasn1.type import univ
> 
>     try:
>         univ.noValue
> 
>     except AttributeError:
>         univ.NoValue = univ.noValue = None
> 
> What would let us remove all these nasty `if xxx is None or  ... `
> pieces from python-ldap code.
> 
> Would that work?

I thought of something like this. But what would the if condition look
like? With the above this if-expression would not work:

  if not cookie.hasValue():

Or am I missing something?

Ciao, Michael.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 3829 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://mail.python.org/pipermail/python-ldap/attachments/20171108/d301446f/attachment.bin>


More information about the python-ldap mailing list