import io import ldif def parse_ldif(ldif_input): """ Helper function that parses the passed-in LDIF string. This is a simple wrapper around the Python LDAP ldif.LDIFRecordList class. Entries are returned as list of (dn, attributes) tuples. Attributes are represented by a dictionary mapping attribute names to list of associated values. :param ldif_input: LDIF to parse. :type ldif_input: str :returns: List of parsed entries. :rtype: list[tuple(str, dict{str: list[str]})] Returns: """ parser = ldif.LDIFRecordList(io.StringIO(ldif_input)) try: parser.parse() except Exception as e: raise ValueError("Failed to parse input: %s" % str(e)) return parser.all_records