{ "info": { "author": "Adri\u00e1n P\u00e9rez de Castro", "author_email": "aperez@igalia.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5" ], "description": "=====================\n Indicium LDAP Store\n=====================\n\n.. image:: https://img.shields.io/travis/aperezdc/indicium-ldap.svg?style=flat\n :target: https://travis-ci.org/aperezdc/indicium-ldap\n :alt: Build Status\n\n.. image:: https://img.shields.io/coveralls/aperezdc/indicium-ldap/master.svg?style=flat\n :target: https://coveralls.io/r/aperezdc/indicium-ldap?branch=master\n :alt: Code Coverage\n\nA LDAP-backed key-value store backend for `Indicium\n`_.\n\n\nUsage\n=====\n\n.. code-block:: python\n\n # Instantiate and write some data.\n from indicium.ldap import LDAPStore\n store = LDAPStore(\"ldap://localhost\")\n store.put(\"/dc=org/dc=test\", { \"dc\": \"test\", \"o\": \"My organization\",\n \"objectClass\": [\"top\", \"dcObject\", \"organization\"] })\n\n # Read the data back.\n org = store.get(\"/dc=org/dc=test\")\n\n # Using the DN directly is also possible.\n assert org == store.get(\"/dc=test,dc=org\")\n\nNote that a directory service accessed using LDAP is supposed to have a\ncertain structure, so depending on the schema and structure used by the\ndirectory server, and therefore the set of useable keys (and whether they are\nwriteable or not) will vary. In particular:\n\n* Path components of keys are mapped to the DN components of the LDAP\n entities, in reversed order.\n\n* When using ``.put()`` is is *mandatory* to specify an ``objectClass``\n attribute. Note that when writing to existing objects *it is possible*\n to specify a different ``objectClass`` value to mutate the object, but this\n is discouraged and may not work with some directory servers\u2014it may be needed\n to ``.delete()`` the entity first.\n\n* Using ``.put()`` to modify an existing object uses ``MODIFY_REPLACE``\n change operations, which means that values of attributes *will be replaced*,\n or *added*, but never removed. For now the only way of deleting entity\n attributes is to ``.delete()`` the entity first, and then re-create it.\n\n\nInstallation\n============\n\nAll stable releases are uploaded to `PyPI `_, so you\ncan install them and upgrade using ``pip``::\n\n pip install indicium-ldap\n\nAlternatively, you can install the latest development code \u2014at your own risk\u2014\ndirectly from the Git repository::\n\n pip install git://github.com/aperezdc/indicium-ldap\n\n\nDevelopment\n===========\n\nIf you want to contribute, please use the usual GitHub workflow:\n\n1. Clone the repository.\n2. Hack on your clone.\n3. Send a pull request for review.\n\nIf you do not have programming skills, you can still contribute by `reporting\nissues `__ that you may\nencounter. Contributions to the documentation are very welcome, too!\n", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/aperezdc/indicium-ldap", "keywords": null, "license": "GPLv3,Apache-2.0", "maintainer": null, "maintainer_email": null, "name": "indicium-ldap", "package_url": "https://pypi.org/project/indicium-ldap/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/indicium-ldap/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/aperezdc/indicium-ldap" }, "release_url": "https://pypi.org/project/indicium-ldap/0.1.0a0/", "requires_dist": null, "requires_python": null, "summary": "Generic key-value interface to a LDAP directory", "version": "0.1.0a0" }, "last_serial": 2033841, "releases": { "0.1.0a0": [ { "comment_text": "", "digests": { "md5": "71a9f5fde58a94874e371af1edd95bab", "sha256": "70388a69c6cdf20f2e247978cc15c8c3dbc6e70cd09391b7915b150b19f0a290" }, "downloads": -1, "filename": "indicium-ldap-0.1.0a0.tar.gz", "has_sig": false, "md5_digest": "71a9f5fde58a94874e371af1edd95bab", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5650, "upload_time": "2016-03-29T13:25:02", "url": "https://files.pythonhosted.org/packages/ce/ee/d3abebfbabec0f6e8d8753be0f2b94bb976212b608620a739781c624d906/indicium-ldap-0.1.0a0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "71a9f5fde58a94874e371af1edd95bab", "sha256": "70388a69c6cdf20f2e247978cc15c8c3dbc6e70cd09391b7915b150b19f0a290" }, "downloads": -1, "filename": "indicium-ldap-0.1.0a0.tar.gz", "has_sig": false, "md5_digest": "71a9f5fde58a94874e371af1edd95bab", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5650, "upload_time": "2016-03-29T13:25:02", "url": "https://files.pythonhosted.org/packages/ce/ee/d3abebfbabec0f6e8d8753be0f2b94bb976212b608620a739781c624d906/indicium-ldap-0.1.0a0.tar.gz" } ] }