{ "info": { "author": null, "author_email": "Jeremy Gibson , Luc Sanchez , Ryan Semmler ", "bugtrack_url": null, "classifiers": [], "description": "# Access Control Systems Library\n\n\n

\n\n \"Release\n\n\n\nA library for interacting with Access Control Systems like Genetec or Ccure9k. This is a work in progress and is not ready for production use.\n\nCurrently development is heavily influenced by Ccure9k, but the goal is to abstract the differences between the two systems and provide a common\ninterface for interacting with them.\n\n\n

\n\n\n\n* Free software: MIT\n* Documentation: \n\n\n## Features\n\n* Currently supports CRUD operations for `Personnel`, `Clearances`, `Credentials`, and `ClearanceItem` in Ccure9k, and all other Ccure object types.\n* Supports search by custom fields.\n\n## Usage\n\n### Personnel\n\n#### Find a person by name\n\n```python\nfrom acslib import CcureAPI\n\nccure = CcureAPI()\nresponse = ccure.personnel.search(\"Roddy Piper\".split())\n```\n\n#### Find a person by custom field\n\n```python\nfrom acslib import CcureAPI\nfrom acslib.ccure.filters import PersonnelFilter, FUZZ\n\nccure = CcureAPI()\nsearch_filter = PersonnelFilter(lookups={\"Text1\": FUZZ})\nresponse = ccure.personnel.search([\"PER0892347\"], search_filter=search_filter)\n```\n\n#### Update a personnel record\n\n```python\nfrom acslib import CcureAPI\n\n# change MiddleName and Text14 for the person with CCure ID 5001\nccure = CcureAPI()\nccure.personnel.update(5001, {\"Text14\": \"new text here\", \"MiddleName\": \"Shaquille\"})\n```\n\n#### Add new personnel record\n\n```python\nfrom acslib import CcureAPI\nfrom acslib.ccure.data_models import PersonnelCreateData as pcd\n\nccure = CcureAPI()\nnew_person_data = pcd(FirstName=\"Kenny\", LastName=\"Smith\", Text1=\"001132808\")\nccure.personnel.create(new_person_data)\n```\n\n#### Delete a personnel record\n\n```python\nfrom acslib import CcureAPI\n\n# delete the personnel record with the CCure ID 6008\nccure = CcureAPI()\nccure.personnel.delete(6008)\n```\n\n### Clearance\n\n#### Find a Clearance by name\n\n```python\nfrom acslib import CcureAPI\n\nccure = CcureAPI()\nresponse = ccure.clearance.search([\"suite\", \"door\"])\n```\n\n#### Find a Clearance by other field\n\n```python\nfrom acslib import CcureAPI\nfrom acslib.ccure.filters import ClearanceFilter, NFUZZ\n\n# search by ObjectID\nccure = CcureAPI()\nsearch_filter = ClearanceFilter(lookups={\"ObjectID\": NFUZZ})\nresponse = ccure.clearance.search([8897], search_filter=search_filter)\n```\n\n### Credential\n\n#### Find all credentials\n\n```python\nfrom acslib import CcureAPI\n\nccure = CcureAPI()\nresponse = ccure.credential.search()\n```\n\n#### Find a credential by name\n\n```python\nfrom acslib import CcureAPI\n\n# fuzzy search by name\nccure = CcureAPI()\nresponse = ccure.credential.search([\"charles\", \"barkley\"])\n```\n\n#### Find a credential by other field\n\n```python\nfrom acslib import CcureAPI\nfrom acslib.ccure.filters import CredentialFilter, NFUZZ\n\n# search by ObjectID\nccure = CcureAPI()\nsearch_filter = CredentialFilter(lookups={\"ObjectID\": NFUZZ})\nresponse = ccure.credential.search([5001], search_filter=search_filter)\n```\n\n#### Update a credential\n\n```python\nfrom acslib import CcureAPI\n\n# update CardInt1 for the credential with ObjectID 5001\nccure = CcureAPI()\nresponse = ccure.credential.update(5001, {\"CardInt1\": 12345})\n```\n\n### ClearanceItem\n\nClearance items include \"door\" and \"elevator.\"\n\n#### Find ClearanceItem by name\n\n```python\nfrom acslib import CcureAPI\nfrom acslib.ccure.types import ObjectType\n\n# fuzzy search for doors by name\nccure = CcureAPI()\nresponse = ccure.clearance_item.search(ObjectType.DOOR.complete, [\"hall\", \"interior\"])\n```\n\n#### Find ClearanceItem by other field\n\n```python\nfrom acslib import CcureAPI\nfrom acslib.ccure.filters import ClearanceItemFilter, NFUZZ\nfrom acslib.ccure.types import ObjectType\n\n# search elevators by ObjectID\nccure = CcureAPI()\nsearch_filter = ClearanceItemFilter(lookups={\"ObjectID\": NFUZZ})\nresponse = ccure.clearance_item.search(ObjectType.ELEVATOR.complete, [5000], search_filter=search_filter)\n```\n\n#### Update ClearanceItem\n\n```python\nfrom acslib import CcureAPI\nfrom acslib.ccure.types import ObjectType\n# change a door's name\nccure = CcureAPI()\nresponse = ccure.clearance_item.update(ObjectType.DOOR.complete, 5000, update_data={\"Name\": \"new door name 123\"})\n```\n\n#### Create ClearanceItem\n\n```python\nfrom acslib import CcureAPI\nfrom acslib.ccure.data_models import ClearanceItemCreateData\nfrom acslib.ccure.types import ObjectType\n\n# create a new elevator\nccure = CcureAPI()\nnew_elevator_data = ClearanceItemCreateData(\n Name=\"New elevator 1\",\n Description=\"newest elevator in town\",\n ParentID=5000,\n ParentType=\"SoftwareHouse.NextGen.Common.SecurityObjects.iStarController\",\n ControllerID=5000,\n ControllerClassType=\"SoftwareHouse.NextGen.Common.SecurityObjects.iStarController\"\n)\nresponse = ccure.clearance_item.create(ObjectType.ELEVATOR.complete, create_data=new_elevator_data)\n```\n\n#### Delete ClearanceItem\n\n```python\nfrom acslib import CcureAPI\nfrom acslib.ccure.types import ObjectType\n\n# delete a door\nccure = CcureAPI()\nresponse = ccure.clearance_item.delete(ObjectType.DOOR.complete, 5000)\n```\n\n### Other item types\n\n#### Search for CCure item\n\n```python\nfrom acslib import CcureAPI\nfrom acslib.ccure.filters import CcureFilter, NFUZZ\n\n# search for schedule objects by ObjectID\nccure = CcureAPI()\nschedule_type_full = \"SoftwareHouse.CrossFire.Common.Objects.TimeSpec\"\nsearch_filter = CcureFilter()\nresponse = ccure.ccure_object.search(\n object_type=schedule_type_full,\n search_filter=search_filter,\n terms=[5001]\n)\n```\n\n### Other common actions\n\nUse `ccure.action` to perform some common tasks like assigning or revoking clearances or getting personnel images.\n\n#### Assign a clearance\n\n```python\nfrom acslib import CcureAPI\n\n# assign clearances 5002 and 5003 to person 5005\nccure = CcureAPI()\nresponse = ccure.action.personnel.assign_clearances(\n personnel_id=5005,\n clearance_ids=[5002, 5003],\n)\n```\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": null, "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "dynamic": null, "home_page": null, "keywords": null, "license": null, "maintainer": null, "maintainer_email": null, "name": "acslib", "package_url": "https://pypi.org/project/acslib/", "platform": null, "project_url": "https://pypi.org/project/acslib/", "project_urls": { "Homepage": "https://github.ncsu.edu/SAT/acslib" }, "provides_extra": [ "dev" ], "release_url": "https://pypi.org/project/acslib/0.1.10/", "requires_dist": [ "pydantic<3.0.0,>=2.5.3", "sat-utils<2.0.0,>=1.1.12", "pytest<7.0.0,>=6.2.5; extra == \"dev\"", "pytest-cov<5.0.0,>=4.0.0; extra == \"dev\"", "pytest-mock<4.0.0,>=3.10.0; extra == \"dev\"", "coverage[toml]>=6.2; extra == \"dev\"", "black<24.0.0,>=23.3.0; extra == \"dev\"", "ruff==0.1.1; extra == \"dev\"", "mkdocs-material<10.0.0,>=9.4.6; extra == \"dev\"", "pymdown-extensions<11.0.0,>=10.3.1; extra == \"dev\"", "mkdocs-include-markdown-plugin<7.0.0,>=6.0.3; extra == \"dev\"", "mkdocstrings<1.0.0,>=0.23.0; extra == \"dev\"", "mkdocstrings-python<2.0.0,>=1.7.3; extra == \"dev\"", "Pygments<3.0.0,>=2.10.0; extra == \"dev\"", "bandit<2.0.0,>=1.7.4; extra == \"dev\"", "bandit[toml]<2.0.0,>=1.7.4; extra == \"dev\"", "pre-commit<3.0.0,>=2.16.0; extra == \"dev\"", "isort<6.0.0,>=5.10.1; extra == \"dev\"", "pyupgrade<3.0.0,>=2.29.1; extra == \"dev\"", "flit<4.0.0,>=3.8.0; extra == \"dev\"", "Faker<21.0.0,>=20.0.0; extra == \"dev\"" ], "requires_python": ">=3.10", "summary": "A library for interacting with Access Control Systems like Genetec or Ccure9k", "version": "0.1.10", "yanked": false, "yanked_reason": null }, "last_serial": 23883645, "releases": { "0.1.0": [ { "comment_text": null, "digests": { "blake2b_256": "1ff8f23634b5eb2e298e7fcfc2a77f39f589c3c65657a142ce6c671f9fbdc186", "md5": "05a5e3b588d42ee3a3a3f746d1fb517c", "sha256": "4797c4c7648dc7ef5e7f0ecd57b3fe38884e7eab2829fa622080651697a267e2" }, "downloads": -1, "filename": "acslib-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "05a5e3b588d42ee3a3a3f746d1fb517c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.10", "size": 18437, "upload_time": "2024-01-11T18:55:26", "upload_time_iso_8601": "2024-01-11T18:55:26.104328Z", "url": "https://files.pythonhosted.org/packages/1f/f8/f23634b5eb2e298e7fcfc2a77f39f589c3c65657a142ce6c671f9fbdc186/acslib-0.1.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": null, "digests": { "blake2b_256": "2e74f97daa1bdd905aff6928128820d7e9436684be08b714018184e3275dff6b", "md5": "acafb38f7fb0421c1bf02edaecbd0d53", "sha256": "ae74cead8cb69aef1ea3ba329db66a7aeabf295ca791c0d5b9038a6fb97b203b" }, "downloads": -1, "filename": "acslib-0.1.0.tar.gz", "has_sig": false, "md5_digest": "acafb38f7fb0421c1bf02edaecbd0d53", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.10", "size": 21982, "upload_time": "2024-01-11T18:55:29", "upload_time_iso_8601": "2024-01-11T18:55:29.096495Z", "url": "https://files.pythonhosted.org/packages/2e/74/f97daa1bdd905aff6928128820d7e9436684be08b714018184e3275dff6b/acslib-0.1.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.10": [ { "comment_text": null, "digests": { "blake2b_256": "d4e300a7d81f8d4f39d04a1d74555a312e38d814f5a34c5007210b1a8f9c31ef", "md5": "8cd7adb489170d1d3163e83a1c9564b3", "sha256": "e291d914a147a3988bec6deea48f8620bd896fa3d44b12c7b01455a7bcb3e9af" }, "downloads": -1, "filename": "acslib-0.1.10-py3-none-any.whl", "has_sig": false, "md5_digest": "8cd7adb489170d1d3163e83a1c9564b3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.10", "size": 25263, "upload_time": "2024-06-27T19:50:53", "upload_time_iso_8601": "2024-06-27T19:50:53.876558Z", "url": "https://files.pythonhosted.org/packages/d4/e3/00a7d81f8d4f39d04a1d74555a312e38d814f5a34c5007210b1a8f9c31ef/acslib-0.1.10-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": null, "digests": { "blake2b_256": "eb6742328de741beb50a23597523cc9e40b08cbd83d1968dc9a8029775e61190", "md5": "2877841501eca24f2b9d5a4e08b73f4e", "sha256": "7ec2016518f992c9435f0fba1fad4645f9a7e6b3a24cb675edad4b61f41ad458" }, "downloads": -1, "filename": "acslib-0.1.10.tar.gz", "has_sig": false, "md5_digest": "2877841501eca24f2b9d5a4e08b73f4e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.10", "size": 31473, "upload_time": "2024-06-27T19:50:55", "upload_time_iso_8601": "2024-06-27T19:50:55.565588Z", "url": "https://files.pythonhosted.org/packages/eb/67/42328de741beb50a23597523cc9e40b08cbd83d1968dc9a8029775e61190/acslib-0.1.10.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.2": [ { "comment_text": null, "digests": { "blake2b_256": "cfcd5566a8e3ecbc2faf91368f385d41abf425071f60829f42e9b5464b8368b5", "md5": "ffe73073491d0e32eee5d4e770197b1e", "sha256": "8bffabc02536719f83f80373fe2160c4992eb247d93d8adff823863d0b2a8397" }, "downloads": -1, "filename": "acslib-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "ffe73073491d0e32eee5d4e770197b1e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.10", "size": 20073, "upload_time": "2024-04-04T21:08:33", "upload_time_iso_8601": "2024-04-04T21:08:33.482852Z", "url": "https://files.pythonhosted.org/packages/cf/cd/5566a8e3ecbc2faf91368f385d41abf425071f60829f42e9b5464b8368b5/acslib-0.1.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": null, "digests": { "blake2b_256": "f0ceb41eeb29f12d6108c39c52ccfbf7d43828638ef9c8101037442c2ff1748a", "md5": "351eaeac8376a801bc9d3b6cbd5c28e5", "sha256": "2b54aadd7d7b44afe3dc9a573f56111e202138ed006766ca0d4273a0a75ffcd9" }, "downloads": -1, "filename": "acslib-0.1.2.tar.gz", "has_sig": false, "md5_digest": "351eaeac8376a801bc9d3b6cbd5c28e5", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.10", "size": 23390, "upload_time": "2024-04-04T21:08:35", "upload_time_iso_8601": "2024-04-04T21:08:35.212761Z", "url": "https://files.pythonhosted.org/packages/f0/ce/b41eeb29f12d6108c39c52ccfbf7d43828638ef9c8101037442c2ff1748a/acslib-0.1.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.3": [ { "comment_text": null, "digests": { "blake2b_256": "ab4614ff33df54f3ef59f97ec4dc0523d8c5bfa50e4c16824dd463db69909f2c", "md5": "b775c4aa7921308d58c312e1429fdde5", "sha256": "a3bc9160c72df8d2d20692ffe96f1dfd33e9429145f148926595b39074a2f300" }, "downloads": -1, "filename": "acslib-0.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "b775c4aa7921308d58c312e1429fdde5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.10", "size": 21327, "upload_time": "2024-04-05T19:29:34", "upload_time_iso_8601": "2024-04-05T19:29:34.961598Z", "url": "https://files.pythonhosted.org/packages/ab/46/14ff33df54f3ef59f97ec4dc0523d8c5bfa50e4c16824dd463db69909f2c/acslib-0.1.3-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": null, "digests": { "blake2b_256": "21edf3fe34e143d9e8f65e4f2457419b238ff4981412042ec66f9af4d0557bb0", "md5": "baa02f111affbbba9fb90bef1739a978", "sha256": "c1b391d7418e9a6b41bae8f364f5977b71af56f6c24de80ab49caab21d851c5e" }, "downloads": -1, "filename": "acslib-0.1.3.tar.gz", "has_sig": false, "md5_digest": "baa02f111affbbba9fb90bef1739a978", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.10", "size": 28749, "upload_time": "2024-04-05T19:29:36", "upload_time_iso_8601": "2024-04-05T19:29:36.923892Z", "url": "https://files.pythonhosted.org/packages/21/ed/f3fe34e143d9e8f65e4f2457419b238ff4981412042ec66f9af4d0557bb0/acslib-0.1.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.4": [ { "comment_text": null, "digests": { "blake2b_256": "64c2b3701a2dd2381120dee1effab05281f973ddcd850fa8c2dd84acc1fd166b", "md5": "61cbe076bdeab6694d512b7f33dfd1fa", "sha256": "64155ec923d8752f1230b47a6a556d57ee42b98a279fc0000d0d4a1f44543aa2" }, "downloads": -1, "filename": "acslib-0.1.4-py3-none-any.whl", "has_sig": false, "md5_digest": "61cbe076bdeab6694d512b7f33dfd1fa", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.10", "size": 21405, "upload_time": "2024-04-10T13:51:46", "upload_time_iso_8601": "2024-04-10T13:51:46.751164Z", "url": "https://files.pythonhosted.org/packages/64/c2/b3701a2dd2381120dee1effab05281f973ddcd850fa8c2dd84acc1fd166b/acslib-0.1.4-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": null, "digests": { "blake2b_256": "28986778495d2294be732ca4cb3b06b8e08454815356edac99b8b103115cf8a2", "md5": "2c3ea4501c211c3f0556b6db1ddd7fde", "sha256": "8c026e7c27a8809ca5d0f0c4a37cd3eff79b13e67fc3ed91053357c8bdde8693" }, "downloads": -1, "filename": "acslib-0.1.4.tar.gz", "has_sig": false, "md5_digest": "2c3ea4501c211c3f0556b6db1ddd7fde", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.10", "size": 28084, "upload_time": "2024-04-10T13:51:48", "upload_time_iso_8601": "2024-04-10T13:51:48.113194Z", "url": "https://files.pythonhosted.org/packages/28/98/6778495d2294be732ca4cb3b06b8e08454815356edac99b8b103115cf8a2/acslib-0.1.4.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.6": [ { "comment_text": null, "digests": { "blake2b_256": "6d84cf507403e9cdeeddb436c388c4245247e603d81578c4fa815377caf9e023", "md5": "4239a03cd8a219e3c34a83adedd3a081", "sha256": "ecb71b0f9c94c68613abd0e85836ef372f0880943903222fe448c480bc19c9af" }, "downloads": -1, "filename": "acslib-0.1.6-py3-none-any.whl", "has_sig": false, "md5_digest": "4239a03cd8a219e3c34a83adedd3a081", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.10", "size": 22307, "upload_time": "2024-04-16T13:04:43", "upload_time_iso_8601": "2024-04-16T13:04:43.015111Z", "url": "https://files.pythonhosted.org/packages/6d/84/cf507403e9cdeeddb436c388c4245247e603d81578c4fa815377caf9e023/acslib-0.1.6-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": null, "digests": { "blake2b_256": "a0547e81e7bdd21e291bc756f03a617fc3e3e9fd412c025098568ce207d735da", "md5": "46116e32a8b2a6cda67d4cbd3d8d00cb", "sha256": "68a8b1a07638c50888328a6e9cd64adc5ed541b306ef4ea7c1c5ead77c1b0d0c" }, "downloads": -1, "filename": "acslib-0.1.6.tar.gz", "has_sig": false, "md5_digest": "46116e32a8b2a6cda67d4cbd3d8d00cb", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.10", "size": 28992, "upload_time": "2024-04-16T13:04:44", "upload_time_iso_8601": "2024-04-16T13:04:44.492018Z", "url": "https://files.pythonhosted.org/packages/a0/54/7e81e7bdd21e291bc756f03a617fc3e3e9fd412c025098568ce207d735da/acslib-0.1.6.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.7": [ { "comment_text": null, "digests": { "blake2b_256": "a9d7dd5586bc298bf2cb4d9535552971ec6b20887e8c0f82a0a6a821f018901d", "md5": "815153367168be48cf91d2775b1da3a9", "sha256": "ffb7ab0d9c7c38d79e86c8828147855e84c9c9ee8f0e311366d1483e1469533e" }, "downloads": -1, "filename": "acslib-0.1.7-py3-none-any.whl", "has_sig": false, "md5_digest": "815153367168be48cf91d2775b1da3a9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.10", "size": 22406, "upload_time": "2024-04-25T17:43:05", "upload_time_iso_8601": "2024-04-25T17:43:05.055273Z", "url": "https://files.pythonhosted.org/packages/a9/d7/dd5586bc298bf2cb4d9535552971ec6b20887e8c0f82a0a6a821f018901d/acslib-0.1.7-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": null, "digests": { "blake2b_256": "d0c18454b2933d525c7c096de4abf1051614568331dc41cd3212c96ec9051337", "md5": "7903e0914ccafb4a00e5c8c1867c25f0", "sha256": "4a8cf050f1e665d20cc5659cb3b7331fdaad7550ebfff7bfee022d83e8b7c33c" }, "downloads": -1, "filename": "acslib-0.1.7.tar.gz", "has_sig": false, "md5_digest": "7903e0914ccafb4a00e5c8c1867c25f0", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.10", "size": 29044, "upload_time": "2024-04-25T17:43:08", "upload_time_iso_8601": "2024-04-25T17:43:08.208249Z", "url": "https://files.pythonhosted.org/packages/d0/c1/8454b2933d525c7c096de4abf1051614568331dc41cd3212c96ec9051337/acslib-0.1.7.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.8": [ { "comment_text": null, "digests": { "blake2b_256": "b7439ff308af26e35f0f46dbe32562e9427f9a022ecc7a58444b1dbb6a7c6b47", "md5": "d803d8305240acf261c329c175dfbf8b", "sha256": "ae1c3ec78a9c3758024075bccb312896e9296c81938f36244352130cb223b252" }, "downloads": -1, "filename": "acslib-0.1.8-py3-none-any.whl", "has_sig": false, "md5_digest": "d803d8305240acf261c329c175dfbf8b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.10", "size": 23119, "upload_time": "2024-05-01T13:38:22", "upload_time_iso_8601": "2024-05-01T13:38:22.456340Z", "url": "https://files.pythonhosted.org/packages/b7/43/9ff308af26e35f0f46dbe32562e9427f9a022ecc7a58444b1dbb6a7c6b47/acslib-0.1.8-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": null, "digests": { "blake2b_256": "2af3f889cdc8a8d24d2f515e719a0781d04ae55f8fd62f2dad0120ced81d9a17", "md5": "602c3e29a17e1d7cf550f82571f5e6eb", "sha256": "298b7a121cde054693e3e663f32f50f36118025849da7aa866f29f26abbba830" }, "downloads": -1, "filename": "acslib-0.1.8.tar.gz", "has_sig": false, "md5_digest": "602c3e29a17e1d7cf550f82571f5e6eb", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.10", "size": 29737, "upload_time": "2024-05-01T13:38:24", "upload_time_iso_8601": "2024-05-01T13:38:24.811854Z", "url": "https://files.pythonhosted.org/packages/2a/f3/f889cdc8a8d24d2f515e719a0781d04ae55f8fd62f2dad0120ced81d9a17/acslib-0.1.8.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.9": [ { "comment_text": null, "digests": { "blake2b_256": "93670955489b84f0215858b4c364fdba6858c430a4fdc21452ba62e978ccee78", "md5": "bc3c77c050e1336443411dfb045967b7", "sha256": "554f74753519488de206f1508eb6bc2deae2f84fd2bedc89db5df5500c98dd0f" }, "downloads": -1, "filename": "acslib-0.1.9-py3-none-any.whl", "has_sig": false, "md5_digest": "bc3c77c050e1336443411dfb045967b7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.10", "size": 25202, "upload_time": "2024-05-15T13:38:58", "upload_time_iso_8601": "2024-05-15T13:38:58.645756Z", "url": "https://files.pythonhosted.org/packages/93/67/0955489b84f0215858b4c364fdba6858c430a4fdc21452ba62e978ccee78/acslib-0.1.9-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": null, "digests": { "blake2b_256": "cafe80669e0932d4c47bca448975ab7d5419881686afb3479cf8174670d9ad77", "md5": "a402d352f64353d55df53e8aafe4401c", "sha256": "e00ff860d792713ad0482e257565e994cdc70bc250ca9a9a4b52ab73653b5f6d" }, "downloads": -1, "filename": "acslib-0.1.9.tar.gz", "has_sig": false, "md5_digest": "a402d352f64353d55df53e8aafe4401c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.10", "size": 31425, "upload_time": "2024-05-15T13:39:00", "upload_time_iso_8601": "2024-05-15T13:39:00.116585Z", "url": "https://files.pythonhosted.org/packages/ca/fe/80669e0932d4c47bca448975ab7d5419881686afb3479cf8174670d9ad77/acslib-0.1.9.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": null, "digests": { "blake2b_256": "d4e300a7d81f8d4f39d04a1d74555a312e38d814f5a34c5007210b1a8f9c31ef", "md5": "8cd7adb489170d1d3163e83a1c9564b3", "sha256": "e291d914a147a3988bec6deea48f8620bd896fa3d44b12c7b01455a7bcb3e9af" }, "downloads": -1, "filename": "acslib-0.1.10-py3-none-any.whl", "has_sig": false, "md5_digest": "8cd7adb489170d1d3163e83a1c9564b3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.10", "size": 25263, "upload_time": "2024-06-27T19:50:53", "upload_time_iso_8601": "2024-06-27T19:50:53.876558Z", "url": "https://files.pythonhosted.org/packages/d4/e3/00a7d81f8d4f39d04a1d74555a312e38d814f5a34c5007210b1a8f9c31ef/acslib-0.1.10-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": null, "digests": { "blake2b_256": "eb6742328de741beb50a23597523cc9e40b08cbd83d1968dc9a8029775e61190", "md5": "2877841501eca24f2b9d5a4e08b73f4e", "sha256": "7ec2016518f992c9435f0fba1fad4645f9a7e6b3a24cb675edad4b61f41ad458" }, "downloads": -1, "filename": "acslib-0.1.10.tar.gz", "has_sig": false, "md5_digest": "2877841501eca24f2b9d5a4e08b73f4e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.10", "size": 31473, "upload_time": "2024-06-27T19:50:55", "upload_time_iso_8601": "2024-06-27T19:50:55.565588Z", "url": "https://files.pythonhosted.org/packages/eb/67/42328de741beb50a23597523cc9e40b08cbd83d1968dc9a8029775e61190/acslib-0.1.10.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }