[python-ldap] ANN: python-ldap 3.3.0

Petr Viktorin pviktori at redhat.com
Thu Jun 18 10:19:17 EDT 2020


After a long delay, you can find a new release of python-ldap here:

     https://pypi.python.org/pypi/python-ldap/3.3.0

Notable changes since 3.2.0 are:

* LDAPError now contains additional fields, such as ctrls, result, msgid
* passwd_s can now extract the newly generated password
* LDAP connections can now be made from a file descriptor

This is the last 3.x release of python-ldap to support CPython 2.7, 3.4 
and 3.5, which are past or near end-of-life. For information on 
supported CPython versions, see:

      https://devguide.python.org/#status-of-python-branches
      https://devguide.python.org/devcycle/#end-of-life-branches

If you find any issues, please report them either on this mailing list
or on the GitHub tracker:

      https://github.com/python-ldap/python-ldap/issues


Git tag hash for the release:
      python-ldap-3.3.0  e885b621562a3c987934be3fba3873d21026bf5c

The tag is signed by my GPG key with fingerprint:
AD4D FBDB 5D40 4CA8 0600  A5F4 0BA8 70E7 9E17 2F37

--------

About the project:

      python-ldap provides an object-oriented API to access LDAP directory
      servers from Python programs. It mainly wraps the OpenLDAP 2.x libs
      for that purpose. Additionally it contains modules for other
      LDAP-related stuff (e.g. processing LDIF, LDAP URLs and LDAPv3
      schema).

Project's web site:

      https://www.python-ldap.org/

--------

Released 3.3.0 2020-06-18

Highlights:
* ``LDAPError`` now contains additional fields, such as ctrls, result, msgid
* ``passwd_s`` can now extract the newly generated password
* LDAP connections can now be made from a file descriptor

This release is tested on Python 3.8, and the beta of Python 3.9.

The following undocumented functions are deprecated and scheduled for 
removal:
- ``ldap.cidict.strlist_intersection``
- ``ldap.cidict.strlist_minus``
- ``ldap.cidict.strlist_union``

Modules/
* Ensure ReconnectLDAPObject is not left in an inconsistent state after
   a reconnection timeout
* Syncrepl now correctly parses SyncInfoMessage when the message is a 
syncIdSet
* Release GIL around global get/set option call
* Do not leak serverctrls in result functions
* Don't overallocate memory in attrs_from_List()
* Fix thread support check for Python 3
* With OpenLDAP 2.4.48, use the new header openldap.h

Lib/
* Fix some edge cases regarding quoting in the schema tokenizer
* Fix escaping a single space in ldap.escape_dn_chars
* Fix string formatting in ldap.compare_ext_s
* Prefer iterating dict instead of calling dict.keys()

Doc/
* Clarify the relationship between initialize() and LDAPObject()
* Improve documentation of TLS options
* Update FAQ to include Samba AD-DC error message
   "Operation unavailable without authentication"
* Fix several incorrect examples and demos
   (but note that these are not yet tested)
* Update Debian installation instructions for Debian Buster
* Typo fixes in docs and docstrings

Test/
* Test and document error cases in ldap.compare_s
* Test if reconnection is done after connection loss
* Make test certificates valid for the far future
* Use slapd -Tt instead of slaptest

Infrastructure:
* Mark the LICENCE file as a license for setuptools
* Use "unittest discover" rather than "setup.py test" to run tests



More information about the python-ldap mailing list