Skip to main content

A pure-Python ORM-esque LDAP client.

Project description

https://travis-ci.org/ashafer01/laurelin.svg?branch=master

View documentation on ReadTheDocs. You might also like to read the introduction.

pip install laurelin-ldap or clone the repo to get started.

Please star the repo on GitHub if you like the project!

Named for one of the Two Trees of Valinor in Tolkien lore.

Laurelin, which means ‘Golden-song’ in the Quenya tongue, bore shining golden leaves, the Light from which mingled with the Silver Flowers of the Elder Tree to illuminate the land of the Valar.

Features Overview

  • Fully compliant with RFC 4510 and its children, as well as several other related standards.

  • Tested against CPython 2.7, 3.4 - 3.7, PyPy, and PyPy3.

  • Simplified filter syntax (optional, standard filter syntax is fully supported and used by default)

  • Pythonic attributes input and presentation. It’s just a dictionary.

  • Exceedingly easy relative searching. All objects have a suite of search methods which will automatically pass the object’s DN as the search base. In many cases, you wont have to pass any arguments to search methods.

  • Similarly, all objects have a suite of modify methods which allow you to change attributes on already-queried objects without having to pass their DN again.

  • You never have to type the full absolute DN.

  • Intelligent modification will never send existing attribute values to the server, nor will it request deletion of attribute values that do not exist. This prevents many unnecessary server errors. Laurelin will go as far as to query the object for you before modifying it to ensure you don’t see pointless errors (if you want it to).

  • Full support for configuring laurelin and connecting to a server from a config file

  • Custom validation. You can define validators which check new objects and modify operations for correctness before sending them to the server. Since you control this code, this can be anything from a simple regex check against a particular attribute value, to a complex approval queue mechanism.

  • Highly extensible. New methods can easily and safely be bound to base classes.

  • Seamless integration of controls. Once defined, these are just new keyword arguments on particular methods, and additional attributes on the response object.

  • Includes Python implementations of standard schema elements.

Dependent Info

Laurelin follows SemVer. When you add laurelin-ldap to your requirements, I strongly suggest using the compatible release operator with the major.minor that you use initially. For example:

% pip install laurelin-ldap
...
Successfully installed laurelin-ldap-1.5.0 ...
                                     ^^^

Since 1.5.0 was installed, add the following to your requirements.txt and/or install_requires list:

laurelin-ldap~=1.5

But of course use whatever version you actually installed. You’re also welcome to pip freeze, but patch and minor releases will always be compatible. Patch releases tend to contain important fixes, too. If you’re sure you don’t want new features coming in and only fixes, you can still use the compatible release operator like so (again subbing in your actual installed version):

laurelin-ldap~=1.5.0

Feel free to open a GitHub issue with any questions or concerns.

Download files

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

Source Distribution

laurelin-ldap-1.5.3.tar.gz (104.3 kB view details)

Uploaded Source

Built Distribution

laurelin_ldap-1.5.3-py2.py3-none-any.whl (114.3 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file laurelin-ldap-1.5.3.tar.gz.

File metadata

  • Download URL: laurelin-ldap-1.5.3.tar.gz
  • Upload date:
  • Size: 104.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.9.1 pkginfo/1.4.1 requests/2.18.4 setuptools/32.2.0 requests-toolbelt/0.8.0 tqdm/4.19.5 CPython/3.6.1

File hashes

Hashes for laurelin-ldap-1.5.3.tar.gz
Algorithm Hash digest
SHA256 9f6c8f1fe44c484a8103393c1af1348bae1fa61dc0c9aa05537dfcdbda122cd7
MD5 a3f65b5dcefaf60c7b404eaa86d9d376
BLAKE2b-256 d1b5ac1a38726f9c0b49c0b1d147385ff8cb6c5d1424ad318d37993f7d1589a4

See more details on using hashes here.

File details

Details for the file laurelin_ldap-1.5.3-py2.py3-none-any.whl.

File metadata

  • Download URL: laurelin_ldap-1.5.3-py2.py3-none-any.whl
  • Upload date:
  • Size: 114.3 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.9.1 pkginfo/1.4.1 requests/2.18.4 setuptools/32.2.0 requests-toolbelt/0.8.0 tqdm/4.19.5 CPython/3.6.1

File hashes

Hashes for laurelin_ldap-1.5.3-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 d39bfd2864e8192f69b22db1dd9a7855421ba4778108ec10259be863676fab9d
MD5 e5a6ce8a6e5d6f4985f3db03880ceb53
BLAKE2b-256 db4af6fb8e6793f0207f02a5fed14f533d46769e12161627f5dc6e3c7c4b0dce

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