%global _empty_manifest_terminate_build 0 Name: python-ldif Version: 4.2.0 Release: 1 Summary: generate and parse LDIF data (see RFC 2849). License: BSD URL: https://github.com/abilian/ldif Source0: https://mirrors.aliyun.com/pypi/web/packages/c1/04/2db7fb27b3f98dba07f744b50a2496da8aad3f09edee5c98cc07a75b71c5/ldif-4.2.0.tar.gz BuildArch: noarch Requires: python3-pip %description # ldif - parse and generate LDIF data (see [RFC 2849](https://tools.ietf.org/html/rfc2849)). ![Commit activity](https://img.shields.io/github/commit-activity/m/abilian/ldif) ![Code size in bytes](https://img.shields.io/github/languages/code-size/abilian/ldif) ![License](https://img.shields.io/github/license/abilian/ldif) ![Latest version](https://img.shields.io/pypi/v/ldif) ![PyPI Downloads](https://img.shields.io/pypi/dm/ldif) This is a fork of the `ldif` module from [python-ldap](http://www.python-ldap.org/) 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](https://github.com/abilian/ldif/blob/main/CHANGES.rst) for a more complete list of differences. This package only support Python 3 (\>= 3.7, actually). ## Usage Parse LDIF from a file (or `BytesIO`): ```python 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`): ```python 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. %package -n python3-ldif Summary: generate and parse LDIF data (see RFC 2849). Provides: python-ldif BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-ldif # ldif - parse and generate LDIF data (see [RFC 2849](https://tools.ietf.org/html/rfc2849)). ![Commit activity](https://img.shields.io/github/commit-activity/m/abilian/ldif) ![Code size in bytes](https://img.shields.io/github/languages/code-size/abilian/ldif) ![License](https://img.shields.io/github/license/abilian/ldif) ![Latest version](https://img.shields.io/pypi/v/ldif) ![PyPI Downloads](https://img.shields.io/pypi/dm/ldif) This is a fork of the `ldif` module from [python-ldap](http://www.python-ldap.org/) 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](https://github.com/abilian/ldif/blob/main/CHANGES.rst) for a more complete list of differences. This package only support Python 3 (\>= 3.7, actually). ## Usage Parse LDIF from a file (or `BytesIO`): ```python 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`): ```python 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. %package help Summary: Development documents and examples for ldif Provides: python3-ldif-doc %description help # ldif - parse and generate LDIF data (see [RFC 2849](https://tools.ietf.org/html/rfc2849)). ![Commit activity](https://img.shields.io/github/commit-activity/m/abilian/ldif) ![Code size in bytes](https://img.shields.io/github/languages/code-size/abilian/ldif) ![License](https://img.shields.io/github/license/abilian/ldif) ![Latest version](https://img.shields.io/pypi/v/ldif) ![PyPI Downloads](https://img.shields.io/pypi/dm/ldif) This is a fork of the `ldif` module from [python-ldap](http://www.python-ldap.org/) 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](https://github.com/abilian/ldif/blob/main/CHANGES.rst) for a more complete list of differences. This package only support Python 3 (\>= 3.7, actually). ## Usage Parse LDIF from a file (or `BytesIO`): ```python 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`): ```python 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. %prep %autosetup -n ldif-4.2.0 %build %py3_build %install %py3_install install -d -m755 %{buildroot}/%{_pkgdocdir} if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi pushd %{buildroot} if [ -d usr/lib ]; then find usr/lib -type f -printf "\"/%h/%f\"\n" >> filelist.lst fi if [ -d usr/lib64 ]; then find usr/lib64 -type f -printf "\"/%h/%f\"\n" >> filelist.lst fi if [ -d usr/bin ]; then find usr/bin -type f -printf "\"/%h/%f\"\n" >> filelist.lst fi if [ -d usr/sbin ]; then find usr/sbin -type f -printf "\"/%h/%f\"\n" >> filelist.lst fi touch doclist.lst if [ -d usr/share/man ]; then find usr/share/man -type f -printf "\"/%h/%f.gz\"\n" >> doclist.lst fi popd mv %{buildroot}/filelist.lst . mv %{buildroot}/doclist.lst . %files -n python3-ldif -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Fri Jun 09 2023 Python_Bot - 4.2.0-1 - Package Spec generated