{"id":16875652,"url":"https://github.com/kilo59/glom-dict","last_synced_at":"2025-07-12T19:35:12.901Z","repository":{"id":37991566,"uuid":"403142281","full_name":"Kilo59/glom-dict","owner":"Kilo59","description":"Custom dictionary which can be accessed with glom-like paths","archived":false,"fork":false,"pushed_at":"2025-02-11T00:01:21.000Z","size":424,"stargazers_count":2,"open_issues_count":3,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-15T06:13:43.413Z","etag":null,"topics":["dict","dictionaries","glom","nested-structures","python"],"latest_commit_sha":null,"homepage":"https://kilo59.github.io/glom-dict/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Kilo59.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-09-04T19:41:02.000Z","updated_at":"2022-08-21T09:14:02.000Z","dependencies_parsed_at":"2023-01-28T05:31:03.426Z","dependency_job_id":"5e17700d-395c-414e-b393-0abd9b4c37ab","html_url":"https://github.com/Kilo59/glom-dict","commit_stats":{"total_commits":21,"total_committers":3,"mean_commits":7.0,"dds":0.1428571428571429,"last_synced_commit":"c7527939d068552ee4580db3358ed6af038b0023"},"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kilo59%2Fglom-dict","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kilo59%2Fglom-dict/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kilo59%2Fglom-dict/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kilo59%2Fglom-dict/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Kilo59","download_url":"https://codeload.github.com/Kilo59/glom-dict/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244925178,"owners_count":20532873,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dict","dictionaries","glom","nested-structures","python"],"created_at":"2024-10-13T15:36:41.703Z","updated_at":"2025-03-22T07:31:45.182Z","avatar_url":"https://github.com/Kilo59.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# glom-dict\n\n[![ci](https://github.com/Kilo59/glom-dict/workflows/ci/badge.svg)](https://github.com/Kilo59/glom-dict/actions)\n[![documentation](https://img.shields.io/badge/docs-mkdocs%20material-blue.svg?style=flat)](https://glom_dict.github.io/glom-dict/)\n[![pypi version](https://img.shields.io/pypi/v/glom-dict.svg)](https://pypi.org/project/glom-dict/)\n\nCustom Dictionary with glom path compatible get, set and delete methods.\n\nhttps://glom.readthedocs.io/en/latest/\n\nFor easy access to and operations on nested data.\n\n## Installation\n\n```bash\npython -m pip install glom-dict\n```\n\n## Examples\n\n```python\n\u003e\u003e\u003e from glom_dict import GlomDict\n\u003e\u003e\u003e d = GlomDict(my_dict={\"a\": {\"b\": \"c\"}})\n\u003e\u003e\u003e d[\"my_dict.a.b\"]\n 'c'\n\n\u003e\u003e\u003e d[\"my_dict.a.b\"] = \"C\"\n\u003e\u003e\u003e d[\"my_dict.a.b\"]\n 'C'\n```\n\n### Better error messages.\n\n```python\n\u003e\u003e\u003e d = GlomDict({'a': {'b': None}})\n\u003e\u003e\u003e d[\"a.b.c\"]\nTraceback (most recent call last):\n...\nPathAccessError: could not access 'c', index 2 in path Path('a', 'b', 'c'), got error: ...\n```\n\n### Glom Paths\n\n```python\nfrom glom_dict import GlomDict, Path\n\u003e\u003e\u003e my_path = Path(\"a\", \"b\", 1)\n\u003e\u003e\u003e d = GlomDict({\"a\": {\"b\": [\"it\", \"works\", \"with\", \"lists\", \"too\"]}})\n\u003e\u003e\u003e d[my_path]\n'works'\n```\n\nFor more examples refer to the excellent `glom` tutorial.\n\nhttps://glom.readthedocs.io/en/latest/tutorial.html\n\n## Details\n\nBased on `collections.UserDict`\n\nImplemented methods\n\n- [x] `__getitem__` - `glom.glom()`\n- [x] `__setitem__` - `glom.assign()`\n- [x] `__delitem__` - `glom.delete()`\n- [x] `assign` - `glom.assign()` - can pass `missing` callable to automatically backfill missing structures.\n- [ ] `update` - Works but no special behavior\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkilo59%2Fglom-dict","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkilo59%2Fglom-dict","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkilo59%2Fglom-dict/lists"}