Bonsai
======
.. image:: https://img.shields.io/pypi/v/bonsai.svg?style=flat-square
:target: https://pypi.python.org/pypi/bonsai/
:alt: PyPI Version
.. image:: https://img.shields.io/endpoint.svg?url=https%3A%2F%2Factions-badge.atrox.dev%2Fnoirello%2Fbonsai%2Fbadge%3Fref%3Ddev&style=flat-square
:target: https://actions-badge.atrox.dev/noirello/bonsai/goto?ref=dev
:alt: GitHub Action Build Status
.. image:: https://dev.azure.com/noirello/bonsai/_apis/build/status/noirello.bonsai?branchName=dev
:target: https://dev.azure.com/noirello/bonsai/_build
:alt: Azure Pipelines Status
.. image:: https://img.shields.io/appveyor/ci/noirello/bonsai/dev.svg?style=flat-square
:target: https://ci.appveyor.com/project/noirello/bonsai
:alt: AppVeyor CI Build Status
.. image:: https://codecov.io/gh/noirello/bonsai/branch/dev/graph/badge.svg?token=gPAMdWATgj
:target: https://app.codecov.io/gh/noirello/bonsai/tree/dev/src
:alt: Coverage Status
.. image:: https://readthedocs.org/projects/bonsai/badge/?version=latest&style=flat-square
:target: http://bonsai.readthedocs.org/en/latest/
:alt: Documentation Status
.. image:: https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square
:target: https://raw.githubusercontent.com/noirello/bonsai/master/LICENSE
:alt: GitHub License
This is a module for handling LDAP operations in Python. Uses libldap2 on Unix platforms and
WinLDAP on Microsoft Windows. LDAP entries are mapped to a special Python case-insensitive
dictionary, tracking the changes of the dictionary to modify the entry on the server easily.
Supports only Python 3.8 or newer, and LDAPv3.
Features
--------
- Uses LDAP libraries (OpenLDAP and WinLDAP) written in C for faster
processing.
- Simple pythonic design.
- Implements an own dictionary-like object for mapping LDAP entries
that makes easier to add and modify them.
- Works with various asynchronous library (like asyncio, gevent).
Requirements for building
-------------------------
- python3.8-dev or newer
- libldap2-dev
- libsasl2-dev
- libkrb5-dev or heimdal-dev (optional)
Documentation
-------------
Documentation is available `online`_ with a simple tutorial.
Example
-------
Simple search and modify:
.. code:: python
import bonsai
client = bonsai.LDAPClient("ldap://localhost")
client.set_credentials("SIMPLE", user="cn=admin,dc=bonsai,dc=test", password="secret")
with client.connect() as conn:
res = conn.search("ou=nerdherd,dc=bonsai,dc=test", 2, "(cn=chuck)")
res[0]['givenname'] = "Charles"
res[0]['sn'] = "Carmichael"
res[0].modify()
Using with asyncio:
.. code:: python3
import asyncio
import bonsai
async def do():
client = bonsai.LDAPClient("ldap://localhost")
client.set_credentials("DIGEST-MD5", user="admin", password="secret")
async with client.connect(is_async=True) as conn:
res = await conn.search("ou=nerdherd,dc=bonsai,dc=test", 2)
print(res)
who = await conn.whoami()
print(who)
asyncio.run(do())
Changelog
---------
The changelog is available `here`_ and included in the documentation as well.
Contribution
------------
Any contributions and advices are welcome. Please report any issues at
the `GitHub page`_.
.. _online: http://bonsai.readthedocs.org/en/latest/
.. _here: https://github.com/noirello/bonsai/blob/master/CHANGELOG.rst
.. _GitHub page: https://github.com/noirello/bonsai/issues
Raw data
{
"_id": null,
"home_page": null,
"name": "bonsai",
"maintainer": null,
"docs_url": null,
"requires_python": "<4.0,>=3.9",
"maintainer_email": null,
"keywords": "python3, ldap, ldap3, python-ldap, libldap, winldap, asyncio, gevent, tornado, trio",
"author": "noirello",
"author_email": "noirello <noirello@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/dd/4f/3fa00051aeb0a0ef9a4c6b628bfcb83f939ba2b1c2c4746d74e5f2029570/bonsai-1.5.4.tar.gz",
"platform": null,
"description": "Bonsai\n======\n\n.. image:: https://img.shields.io/pypi/v/bonsai.svg?style=flat-square\n :target: https://pypi.python.org/pypi/bonsai/\n :alt: PyPI Version\n\n.. image:: https://img.shields.io/endpoint.svg?url=https%3A%2F%2Factions-badge.atrox.dev%2Fnoirello%2Fbonsai%2Fbadge%3Fref%3Ddev&style=flat-square\n :target: https://actions-badge.atrox.dev/noirello/bonsai/goto?ref=dev\n :alt: GitHub Action Build Status\n\n.. image:: https://dev.azure.com/noirello/bonsai/_apis/build/status/noirello.bonsai?branchName=dev\n :target: https://dev.azure.com/noirello/bonsai/_build\n :alt: Azure Pipelines Status\n\n.. image:: https://img.shields.io/appveyor/ci/noirello/bonsai/dev.svg?style=flat-square\n :target: https://ci.appveyor.com/project/noirello/bonsai\n :alt: AppVeyor CI Build Status\n\n.. image:: https://codecov.io/gh/noirello/bonsai/branch/dev/graph/badge.svg?token=gPAMdWATgj\n :target: https://app.codecov.io/gh/noirello/bonsai/tree/dev/src\n :alt: Coverage Status\n\n.. image:: https://readthedocs.org/projects/bonsai/badge/?version=latest&style=flat-square\n :target: http://bonsai.readthedocs.org/en/latest/\n :alt: Documentation Status\n\n.. image:: https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square\n :target: https://raw.githubusercontent.com/noirello/bonsai/master/LICENSE\n :alt: GitHub License\n\nThis is a module for handling LDAP operations in Python. Uses libldap2 on Unix platforms and\nWinLDAP on Microsoft Windows. LDAP entries are mapped to a special Python case-insensitive\ndictionary, tracking the changes of the dictionary to modify the entry on the server easily.\n\nSupports only Python 3.8 or newer, and LDAPv3.\n\nFeatures\n--------\n\n- Uses LDAP libraries (OpenLDAP and WinLDAP) written in C for faster\n processing.\n- Simple pythonic design.\n- Implements an own dictionary-like object for mapping LDAP entries\n that makes easier to add and modify them.\n- Works with various asynchronous library (like asyncio, gevent).\n\nRequirements for building\n-------------------------\n\n- python3.8-dev or newer\n- libldap2-dev\n- libsasl2-dev\n- libkrb5-dev or heimdal-dev (optional)\n\nDocumentation\n-------------\n\nDocumentation is available `online`_ with a simple tutorial.\n\nExample\n-------\n\nSimple search and modify:\n\n.. code:: python\n\n import bonsai\n\n client = bonsai.LDAPClient(\"ldap://localhost\")\n client.set_credentials(\"SIMPLE\", user=\"cn=admin,dc=bonsai,dc=test\", password=\"secret\")\n with client.connect() as conn:\n res = conn.search(\"ou=nerdherd,dc=bonsai,dc=test\", 2, \"(cn=chuck)\")\n res[0]['givenname'] = \"Charles\"\n res[0]['sn'] = \"Carmichael\"\n res[0].modify()\n\nUsing with asyncio:\n\n.. code:: python3\n\n import asyncio\n import bonsai\n\n async def do():\n client = bonsai.LDAPClient(\"ldap://localhost\")\n client.set_credentials(\"DIGEST-MD5\", user=\"admin\", password=\"secret\")\n async with client.connect(is_async=True) as conn:\n res = await conn.search(\"ou=nerdherd,dc=bonsai,dc=test\", 2)\n print(res)\n who = await conn.whoami()\n print(who)\n\n asyncio.run(do())\n\nChangelog\n---------\n\nThe changelog is available `here`_ and included in the documentation as well.\n\nContribution\n------------\n\nAny contributions and advices are welcome. Please report any issues at\nthe `GitHub page`_.\n\n.. _online: http://bonsai.readthedocs.org/en/latest/\n.. _here: https://github.com/noirello/bonsai/blob/master/CHANGELOG.rst\n.. _GitHub page: https://github.com/noirello/bonsai/issues\n",
"bugtrack_url": null,
"license": null,
"summary": "Python 3 module for accessing LDAP directory servers.",
"version": "1.5.4",
"project_urls": {
"Documentation": "https://bonsai.readthedocs.io",
"Homepage": "https://github.com/noirello/bonsai",
"Repository": "https://github.com/noirello/bonsai.git"
},
"split_keywords": [
"python3",
" ldap",
" ldap3",
" python-ldap",
" libldap",
" winldap",
" asyncio",
" gevent",
" tornado",
" trio"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "6b5408cd662c42943a9fa7730dbb6b13b5b2ceb6ab7b6a211bfdda603dcb0c6d",
"md5": "bf62f8cc4f9a3dc6611174a47ea118b0",
"sha256": "4ab91fc2d9353ecd5e021366f22cd5c25206ecf796c87bfb01e57242bbfefb7d"
},
"downloads": -1,
"filename": "bonsai-1.5.4-cp310-cp310-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "bf62f8cc4f9a3dc6611174a47ea118b0",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": "<4.0,>=3.9",
"size": 81434,
"upload_time": "2025-07-20T12:49:25",
"upload_time_iso_8601": "2025-07-20T12:49:25.331488Z",
"url": "https://files.pythonhosted.org/packages/6b/54/08cd662c42943a9fa7730dbb6b13b5b2ceb6ab7b6a211bfdda603dcb0c6d/bonsai-1.5.4-cp310-cp310-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "5038748d5c0a01e3cebd15cda9e05ce645ef47bde5f1b38642425d6c0821cd48",
"md5": "9becd63532b002266efe4677c7e782d8",
"sha256": "0e7d4dd8477a8892a4d506faac236133e771436fcf5b408a77ba90ed157988c9"
},
"downloads": -1,
"filename": "bonsai-1.5.4-cp310-cp310-macosx_13_0_x86_64.whl",
"has_sig": false,
"md5_digest": "9becd63532b002266efe4677c7e782d8",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": "<4.0,>=3.9",
"size": 2625488,
"upload_time": "2025-07-20T12:49:27",
"upload_time_iso_8601": "2025-07-20T12:49:27.863450Z",
"url": "https://files.pythonhosted.org/packages/50/38/748d5c0a01e3cebd15cda9e05ce645ef47bde5f1b38642425d6c0821cd48/bonsai-1.5.4-cp310-cp310-macosx_13_0_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "6a2fd4e8b0a15ee32c8b66500cd050fe81ed3e892b8346ffcef1c2d9b7befa5b",
"md5": "404e3703b660923275ec5e292785ba1d",
"sha256": "0cd7a28c2cf2aea30d49a0f1cea103d7d6704b60ea0063c8e04e58e8f0adb1b8"
},
"downloads": -1,
"filename": "bonsai-1.5.4-cp310-cp310-win32.whl",
"has_sig": false,
"md5_digest": "404e3703b660923275ec5e292785ba1d",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": "<4.0,>=3.9",
"size": 81434,
"upload_time": "2025-07-20T12:49:29",
"upload_time_iso_8601": "2025-07-20T12:49:29.082924Z",
"url": "https://files.pythonhosted.org/packages/6a/2f/d4e8b0a15ee32c8b66500cd050fe81ed3e892b8346ffcef1c2d9b7befa5b/bonsai-1.5.4-cp310-cp310-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "b876f36a979c4c5add46097eb1ef346330f1d32fa394a3511f0a146fd59609b4",
"md5": "6f05c9778bcb1d09b800c2f81f6d9cd9",
"sha256": "7575d00300aaec00883e6e2bcc8da1ed980edb6bfcc3542e48954d274438e5a4"
},
"downloads": -1,
"filename": "bonsai-1.5.4-cp310-cp310-win_amd64.whl",
"has_sig": false,
"md5_digest": "6f05c9778bcb1d09b800c2f81f6d9cd9",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": "<4.0,>=3.9",
"size": 87269,
"upload_time": "2025-07-20T12:49:30",
"upload_time_iso_8601": "2025-07-20T12:49:30.410636Z",
"url": "https://files.pythonhosted.org/packages/b8/76/f36a979c4c5add46097eb1ef346330f1d32fa394a3511f0a146fd59609b4/bonsai-1.5.4-cp310-cp310-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "cbaa9facb4c736dd1d65c48daf7ab8f48b58495235ca164dd9a94ab6471fba73",
"md5": "d4df001b787835df649bc271022d1138",
"sha256": "545518d3e4c98b82fd7a1d8cf34f8d92c730245f039712ac59f85d80bdfea34c"
},
"downloads": -1,
"filename": "bonsai-1.5.4-cp311-cp311-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "d4df001b787835df649bc271022d1138",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": "<4.0,>=3.9",
"size": 81439,
"upload_time": "2025-07-20T12:49:31",
"upload_time_iso_8601": "2025-07-20T12:49:31.896949Z",
"url": "https://files.pythonhosted.org/packages/cb/aa/9facb4c736dd1d65c48daf7ab8f48b58495235ca164dd9a94ab6471fba73/bonsai-1.5.4-cp311-cp311-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "5bf3873375c7a68e67fc3b216cb2c445ce101a55f0c881f212bb283221e1f8be",
"md5": "a8b5d46bc96b3ba1896e2e58ce20fdb3",
"sha256": "58b89576c89aa0869ffb43772da42e889f655d7be6eacad19b90d574c20dabba"
},
"downloads": -1,
"filename": "bonsai-1.5.4-cp311-cp311-macosx_13_0_x86_64.whl",
"has_sig": false,
"md5_digest": "a8b5d46bc96b3ba1896e2e58ce20fdb3",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": "<4.0,>=3.9",
"size": 2625699,
"upload_time": "2025-07-20T12:49:33",
"upload_time_iso_8601": "2025-07-20T12:49:33.748900Z",
"url": "https://files.pythonhosted.org/packages/5b/f3/873375c7a68e67fc3b216cb2c445ce101a55f0c881f212bb283221e1f8be/bonsai-1.5.4-cp311-cp311-macosx_13_0_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "920ff12a38931ed78e21e6659292805b87ce846b29b38eff8f4607a6da0556a9",
"md5": "e8131a748e009f7b350ecef555615a8e",
"sha256": "f0f6a5b60cd27a9813843288f04cb6f2c0357a7105b36a13a8a30ed688cd6078"
},
"downloads": -1,
"filename": "bonsai-1.5.4-cp311-cp311-win32.whl",
"has_sig": false,
"md5_digest": "e8131a748e009f7b350ecef555615a8e",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": "<4.0,>=3.9",
"size": 81438,
"upload_time": "2025-07-20T12:49:35",
"upload_time_iso_8601": "2025-07-20T12:49:35.188657Z",
"url": "https://files.pythonhosted.org/packages/92/0f/f12a38931ed78e21e6659292805b87ce846b29b38eff8f4607a6da0556a9/bonsai-1.5.4-cp311-cp311-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "f3a7c5bb56129833d49f4cd2d5415e8d4a62aee8dc69ea1d8fd1d2a005151693",
"md5": "1a03643471d45764da0313d3cf939cf2",
"sha256": "1f99f3c9fdebf8e1b2861a31b845c2427e91a898c7e93e995b950f29c7b7c62e"
},
"downloads": -1,
"filename": "bonsai-1.5.4-cp311-cp311-win_amd64.whl",
"has_sig": false,
"md5_digest": "1a03643471d45764da0313d3cf939cf2",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": "<4.0,>=3.9",
"size": 87270,
"upload_time": "2025-07-20T12:49:36",
"upload_time_iso_8601": "2025-07-20T12:49:36.362171Z",
"url": "https://files.pythonhosted.org/packages/f3/a7/c5bb56129833d49f4cd2d5415e8d4a62aee8dc69ea1d8fd1d2a005151693/bonsai-1.5.4-cp311-cp311-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "dab61babf75ea44b0fc523c17fdea3a9eca53ceecb23b319350ab785943a96b8",
"md5": "653aef97920015e6319d7428ceb02e2d",
"sha256": "31c84c5fd72750eae96d211180746d1f92a8fd2fae9d65cc98560830b3fbe08d"
},
"downloads": -1,
"filename": "bonsai-1.5.4-cp312-cp312-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "653aef97920015e6319d7428ceb02e2d",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": "<4.0,>=3.9",
"size": 81575,
"upload_time": "2025-07-20T12:49:37",
"upload_time_iso_8601": "2025-07-20T12:49:37.912777Z",
"url": "https://files.pythonhosted.org/packages/da/b6/1babf75ea44b0fc523c17fdea3a9eca53ceecb23b319350ab785943a96b8/bonsai-1.5.4-cp312-cp312-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "34f142d490513911a29818088ad4238c83a92e9d265606cf562f5c762d7f7996",
"md5": "51af99e8050625921affb8b0745ed49e",
"sha256": "b7f9d5d2e204388014a185e378bda6abe9ff85a56713e7eea81c058173cf57ca"
},
"downloads": -1,
"filename": "bonsai-1.5.4-cp312-cp312-macosx_13_0_x86_64.whl",
"has_sig": false,
"md5_digest": "51af99e8050625921affb8b0745ed49e",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": "<4.0,>=3.9",
"size": 2625816,
"upload_time": "2025-07-20T12:49:40",
"upload_time_iso_8601": "2025-07-20T12:49:40.194657Z",
"url": "https://files.pythonhosted.org/packages/34/f1/42d490513911a29818088ad4238c83a92e9d265606cf562f5c762d7f7996/bonsai-1.5.4-cp312-cp312-macosx_13_0_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "9d9ea092fb6581fdf8ef2560662de4310dc02193a4bdd42d98d7416da6ae7a2e",
"md5": "5bd8692dff5bf6c17cb20ea06b4af752",
"sha256": "88d59ea66cb0427bb29cbecfd0da94dba1bffbd3f974a77fd68902205eefd761"
},
"downloads": -1,
"filename": "bonsai-1.5.4-cp312-cp312-win32.whl",
"has_sig": false,
"md5_digest": "5bd8692dff5bf6c17cb20ea06b4af752",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": "<4.0,>=3.9",
"size": 81934,
"upload_time": "2025-07-20T12:49:41",
"upload_time_iso_8601": "2025-07-20T12:49:41.753524Z",
"url": "https://files.pythonhosted.org/packages/9d/9e/a092fb6581fdf8ef2560662de4310dc02193a4bdd42d98d7416da6ae7a2e/bonsai-1.5.4-cp312-cp312-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "4e804ea332689e0a74b92e68906e3e81ac25bbd750654f6c2ee20ab97a489bb7",
"md5": "4865182960864b24999f5584d87ce212",
"sha256": "00b84f05c733699deb6d29d97c7749e110bf3a8036d6bf60c9d9ed548ad65b29"
},
"downloads": -1,
"filename": "bonsai-1.5.4-cp312-cp312-win_amd64.whl",
"has_sig": false,
"md5_digest": "4865182960864b24999f5584d87ce212",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": "<4.0,>=3.9",
"size": 87612,
"upload_time": "2025-07-20T12:49:42",
"upload_time_iso_8601": "2025-07-20T12:49:42.855868Z",
"url": "https://files.pythonhosted.org/packages/4e/80/4ea332689e0a74b92e68906e3e81ac25bbd750654f6c2ee20ab97a489bb7/bonsai-1.5.4-cp312-cp312-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "a48c58dec7d9bd4a44e65f1bb32b19d82bf5fd05d90da541ba8654abf190876b",
"md5": "b7bc18a2870f3468f2c95b8eb1df962f",
"sha256": "0326d069adc8b0636addb61c1f69f6538c532dc604ff39b9082f2ec6ccc4ff5b"
},
"downloads": -1,
"filename": "bonsai-1.5.4-cp313-cp313-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "b7bc18a2870f3468f2c95b8eb1df962f",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": "<4.0,>=3.9",
"size": 81533,
"upload_time": "2025-07-20T12:49:44",
"upload_time_iso_8601": "2025-07-20T12:49:44.411922Z",
"url": "https://files.pythonhosted.org/packages/a4/8c/58dec7d9bd4a44e65f1bb32b19d82bf5fd05d90da541ba8654abf190876b/bonsai-1.5.4-cp313-cp313-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "03fabc82f962534c538764c1420bbe34acc4ace0fc057e17367677da60994de2",
"md5": "2dee378e5273e6de6166e32816ee9ade",
"sha256": "4ffe9ceadba12d95f7d944811c6783fb7e1084341ffbcdb8dc44d33ae3857682"
},
"downloads": -1,
"filename": "bonsai-1.5.4-cp313-cp313-macosx_13_0_x86_64.whl",
"has_sig": false,
"md5_digest": "2dee378e5273e6de6166e32816ee9ade",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": "<4.0,>=3.9",
"size": 2625757,
"upload_time": "2025-07-20T12:49:46",
"upload_time_iso_8601": "2025-07-20T12:49:46.872127Z",
"url": "https://files.pythonhosted.org/packages/03/fa/bc82f962534c538764c1420bbe34acc4ace0fc057e17367677da60994de2/bonsai-1.5.4-cp313-cp313-macosx_13_0_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "30d8347cb0a440f90ddd3eedef1da8092a2c283bfea0e2d4bdaac42ccfb15bfd",
"md5": "f368b31b6ecc6d021c10e71e5e3e1899",
"sha256": "c53481b2f60b278dcb0b60b3079969d5e8f441e3f0abc115ec615c88aa5f5c59"
},
"downloads": -1,
"filename": "bonsai-1.5.4-cp313-cp313-win32.whl",
"has_sig": false,
"md5_digest": "f368b31b6ecc6d021c10e71e5e3e1899",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": "<4.0,>=3.9",
"size": 81926,
"upload_time": "2025-07-20T12:49:48",
"upload_time_iso_8601": "2025-07-20T12:49:48.405792Z",
"url": "https://files.pythonhosted.org/packages/30/d8/347cb0a440f90ddd3eedef1da8092a2c283bfea0e2d4bdaac42ccfb15bfd/bonsai-1.5.4-cp313-cp313-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "ba241b9ffccc3495ae8039a8a003a2fbe11fe06e01f7e9ba33e7869f2f4fd7bc",
"md5": "e0f5ab989b7728dd67a93468edcf9cd6",
"sha256": "0893810bcabbeeb86f794bc9d5289676f16b4c6490c12722f2cfbc08137b7ae0"
},
"downloads": -1,
"filename": "bonsai-1.5.4-cp313-cp313-win_amd64.whl",
"has_sig": false,
"md5_digest": "e0f5ab989b7728dd67a93468edcf9cd6",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": "<4.0,>=3.9",
"size": 87600,
"upload_time": "2025-07-20T12:49:49",
"upload_time_iso_8601": "2025-07-20T12:49:49.606205Z",
"url": "https://files.pythonhosted.org/packages/ba/24/1b9ffccc3495ae8039a8a003a2fbe11fe06e01f7e9ba33e7869f2f4fd7bc/bonsai-1.5.4-cp313-cp313-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "9c9aef86f59e74ebb5bd55d189d0b9b07d1a3c9543118792a104d14e2d76c8f8",
"md5": "d2b40dda37e3f7a440ae90958b03e013",
"sha256": "40423ffdec878ab5bcc74d918290c9c50e8d00bc64f937f51cb3ab24b5b09a4b"
},
"downloads": -1,
"filename": "bonsai-1.5.4-cp39-cp39-macosx_13_0_x86_64.whl",
"has_sig": false,
"md5_digest": "d2b40dda37e3f7a440ae90958b03e013",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": "<4.0,>=3.9",
"size": 2625494,
"upload_time": "2025-07-20T12:49:51",
"upload_time_iso_8601": "2025-07-20T12:49:51.985023Z",
"url": "https://files.pythonhosted.org/packages/9c/9a/ef86f59e74ebb5bd55d189d0b9b07d1a3c9543118792a104d14e2d76c8f8/bonsai-1.5.4-cp39-cp39-macosx_13_0_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "2162772a4d6572923596c35e453ebdfb128bf8e2c00ff6e3e9098a1fc60359b5",
"md5": "6bf4f997b3e17b726419b422b2574d97",
"sha256": "d9b6a5783aba45c0aff71a2464af564add9724f5a3966ea6b170f36fbfbeaeea"
},
"downloads": -1,
"filename": "bonsai-1.5.4-cp39-cp39-win32.whl",
"has_sig": false,
"md5_digest": "6bf4f997b3e17b726419b422b2574d97",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": "<4.0,>=3.9",
"size": 81443,
"upload_time": "2025-07-20T12:49:53",
"upload_time_iso_8601": "2025-07-20T12:49:53.562524Z",
"url": "https://files.pythonhosted.org/packages/21/62/772a4d6572923596c35e453ebdfb128bf8e2c00ff6e3e9098a1fc60359b5/bonsai-1.5.4-cp39-cp39-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "c028b5d7966a174466b61a3745c207b96b672fceddc765db2302f4536201afb1",
"md5": "ce01777505fc47891e3b0166669d24b7",
"sha256": "da7182a56463304a4925168eea85316f26a90ad8125697dbf81e4f98f6461660"
},
"downloads": -1,
"filename": "bonsai-1.5.4-cp39-cp39-win_amd64.whl",
"has_sig": false,
"md5_digest": "ce01777505fc47891e3b0166669d24b7",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": "<4.0,>=3.9",
"size": 87307,
"upload_time": "2025-07-20T12:49:54",
"upload_time_iso_8601": "2025-07-20T12:49:54.574139Z",
"url": "https://files.pythonhosted.org/packages/c0/28/b5d7966a174466b61a3745c207b96b672fceddc765db2302f4536201afb1/bonsai-1.5.4-cp39-cp39-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "dd4f3fa00051aeb0a0ef9a4c6b628bfcb83f939ba2b1c2c4746d74e5f2029570",
"md5": "d4858766857d21729590c30db9eb4fb2",
"sha256": "52a7fe9a23f57c84dc745a5f2831d11c668734b139a2ff7df04c0ff22676a2c7"
},
"downloads": -1,
"filename": "bonsai-1.5.4.tar.gz",
"has_sig": false,
"md5_digest": "d4858766857d21729590c30db9eb4fb2",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.9",
"size": 150601,
"upload_time": "2025-07-20T12:49:55",
"upload_time_iso_8601": "2025-07-20T12:49:55.764452Z",
"url": "https://files.pythonhosted.org/packages/dd/4f/3fa00051aeb0a0ef9a4c6b628bfcb83f939ba2b1c2c4746d74e5f2029570/bonsai-1.5.4.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-20 12:49:55",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "noirello",
"github_project": "bonsai",
"travis_ci": false,
"coveralls": true,
"github_actions": true,
"appveyor": true,
"lcname": "bonsai"
}