Skip to main content

generate and parse LDIF data (see RFC 2849).

Project description

ldif - parse and generate LDIF data (see RFC 2849).

Commit activity Code size in bytes License Latest version PyPI Downloads

This is a fork of the ldif module from python-ldap with python3/unicode support.

One of its benefits is that it's a pure-python package (you don't depend on the libldap2-dev (or similar) package that needs to be installed on your laptop / test machine / production server).

See the last entry in changelog for a more complete list of differences.

This package only support Python 3 (>= 3.7, actually).

Usage

Parse LDIF from a file (or BytesIO):

from ldif import LDIFParser
from pprint import pprint

parser = LDIFParser(open("data.ldif", "rb"))
for dn, record in parser.parse():
    print('got entry record: %s' % dn)
    pprint(record)

Write LDIF to a file (or BytesIO):

from ldif import LDIFWriter

writer = LDIFWriter(open("data.ldif", "wb"))
writer.unparse("mail=alice@example.com", {
    "cn": ["Alice Alison"],
    "mail": ["alice@example.com"],
    "objectclass": ["top", "person"],
})

Unicode support

The stream object that is passed to parser or writer must be an ascii byte stream.

The spec allows to include arbitrary data in base64 encoding or via URL. There is no way of knowing the encoding of this data. To handle this, there are two modes:

By default, the LDIFParser will try to interpret all values as UTF-8 and leave only the ones that fail to decode as bytes. But you can also pass an encoding of None to the constructor, in which case the parser will not try to do any conversion and return bytes directly.

Changelog

See here

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ldif-4.2.5.tar.gz (6.7 kB view details)

Uploaded Source

Built Distribution

ldif-4.2.5-py3-none-any.whl (6.8 kB view details)

Uploaded Python 3

File details

Details for the file ldif-4.2.5.tar.gz.

File metadata

  • Download URL: ldif-4.2.5.tar.gz
  • Upload date:
  • Size: 6.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for ldif-4.2.5.tar.gz
Algorithm Hash digest
SHA256 d254b4815b7756856d513726673f26c41b9627ae1a7de87fc0b98c57935a5344
MD5 1be61ae6414e1ab5a15d651f3c3c505f
BLAKE2b-256 b10450859f7ca7dc1d126c852e649061f024f921b24c5918c0d575a1abb3f348

See more details on using hashes here.

File details

Details for the file ldif-4.2.5-py3-none-any.whl.

File metadata

  • Download URL: ldif-4.2.5-py3-none-any.whl
  • Upload date:
  • Size: 6.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for ldif-4.2.5-py3-none-any.whl
Algorithm Hash digest
SHA256 cf88d5ae5d232e082fc1cafe17d41b2504e4ff82f4ec3f4fe8b1b8e951fe677e
MD5 b2c3bbf046f897094a977bb769b02b76
BLAKE2b-256 5909c0bf2f0a0d5742a03b634402f6e115c34239a8f6974176767265115076f6

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page