Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions CHANGES
Original file line number Diff line number Diff line change
@@ -1,3 +1,22 @@
Released 3.4.7 2026-05-19

No code changes, correcting for the fact that the previous release artifacts
uploaded to PyPI contained unintended files.

----------------------------------------------------------------
Released 3.4.6 2026-05-14

Fixes:
* ``attrlist`` parameter is now properly checked before use, avoiding memory
errors due to type mismatches
* Fixed errors with requestName/requestValue in ``extop.dds``
* ``ldif`` and ``ldap.schema`` modules now actively close sockets as they're
finished with them

Infrastructure:
* Package no longer requires setuptools-scm

----------------------------------------------------------------
Released 3.4.5 2025-10-10

Security fixes:
Expand Down
2 changes: 1 addition & 1 deletion Lib/ldap/pkginfo.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
"""
meta attributes for packaging which does not import any dependencies
"""
__version__ = '3.4.5'
__version__ = '3.4.7'
__author__ = 'python-ldap project'
__license__ = 'Python style'
2 changes: 1 addition & 1 deletion Lib/ldapurl.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
See https://www.python-ldap.org/ for details.
"""

__version__ = '3.4.5'
__version__ = '3.4.7'

__all__ = [
# constants
Expand Down
2 changes: 1 addition & 1 deletion Lib/ldif.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

See https://www.python-ldap.org/ for details.
"""
__version__ = '3.4.5'
__version__ = '3.4.7'

__all__ = [
# constants
Expand Down
2 changes: 1 addition & 1 deletion Lib/slapdtest/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
See https://www.python-ldap.org/ for details.
"""

__version__ = '3.4.5'
__version__ = '3.4.7'

from slapdtest._slapdtest import SlapdObject, SlapdTestCase, SysLogHandler
from slapdtest._slapdtest import requires_ldapi, requires_sasl, requires_tls
Expand Down
6 changes: 0 additions & 6 deletions TODO
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,8 @@

General:
- Define common Python style license for all modules
- Support Python 3.2+

Modules/
- Specific support for more controls
- VLV control
- server-side sorting control
- Wrap libldif as faster drop-in replacement for module ldif?
- Extract response controls in SASL bind responses
- Attach response controls to LDAPError instances to deliver the
Expand All @@ -16,8 +12,6 @@ Modules/
when doing a search in case of ldap.FILTER_ERROR etc.

Lib/
- Unicode support for DNs, filter strings, etc. but not entry attributes!
(Everybody asking for the latter should check the mailing list archive first.)
- Caching of search requests for each LDAPObject instance
- LDIF parser for replication logs and change records

Expand Down
41 changes: 23 additions & 18 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,48 +1,57 @@
[build-system]
requires = [
"setuptools",
"setuptools>=69",
]
build-backend = "setuptools.build_meta"

[project]
name = "python-ldap"
license.text = "python-ldap" # Replace with 'license' once Python 3.8 is dropped
dynamic = ["version"]
description = "Python modules for implementing LDAP clients"

license = "MIT AND LicenseRef-python-ldap"
license-files = [
"LICENCE",
"LICENCE.MIT",
]

authors = [
{name = "python-ldap project", email = "python-ldap@python.org"},
{ name = "python-ldap project", email = "python-ldap@python.org" },
]
readme = "README"
requires-python = ">=3.6"
readme = { file = "README.rst", content-type = "text/x-rst" }

requires-python = ">=3.9"
keywords = ["ldap", "directory", "authentication"]

classifiers = [
"Development Status :: 5 - Production/Stable",
"Intended Audience :: Developers",
"Intended Audience :: System Administrators",
"Operating System :: OS Independent",

# "License :: OSI Approved :: Python Software Foundation License",

"Operating System :: MacOS :: MacOS X",
"Operating System :: Microsoft :: Windows",
"Operating System :: POSIX",

"Programming Language :: C",
"Programming Language :: Python",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.6",
"Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3 :: Only",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",

"Topic :: Database",
"Topic :: Internet",
"Topic :: Software Development :: Libraries :: Python Modules",
"Topic :: System :: Systems Administration :: Authentication/Directory :: LDAP",
"License :: OSI Approved :: Python Software Foundation License",
]

dependencies = [
"pyasn1 >= 0.3.7",
"pyasn1_modules >= 0.1.5",
"pyasn1>=0.3.7",
"pyasn1_modules>=0.1.5",
]

[project.urls]
Expand All @@ -51,13 +60,11 @@ Documentation = "https://python-ldap.readthedocs.io/"
Repository = "https://github.com/python-ldap/python-ldap"
Download = "https://pypi.org/project/python-ldap/"
Changelog = "https://github.com/python-ldap/python-ldap/blob/main/CHANGES"


Issues = "https://github.com/python-ldap/python-ldap/issues"

[tool.setuptools]
zip-safe = false
include-package-data = true
license-files = ["LICENCE", "LICENCE.MIT"]
# Explicitly list all Python modules
py-modules = ["ldapurl", "ldif"]

Expand Down Expand Up @@ -98,8 +105,6 @@ exclude_lines = [
"raise NotImplementedError",
"if 0:",
"if __name__ == .__main__.:",
"if PY2",
"if not PY2",
]

[tool.coverage.html]
Expand Down