{"adoption": {"forks": 77, "observed_at": "2026-08-28T04:06:21.164076+00:00", "stars": 2163}, "canonical_url": "https://ross.abutalabs.com/products/glom", "card": {"archived": false, "artifact_type": "library", "description": "☄️ Python's nested data operator (and CLI), for all your declarative restructuring needs. Got data? Glom it! ☄️", "domain": ["developer-tools", "apis"], "enriched": true, "function": ["serialization", "cli", "developer-tools"], "health_score": 76, "homepage": "https://glom.readthedocs.io", "language": "Python", "license": "NOASSERTION", "license_family": "other", "maturity": "active", "member_repos": ["mahmoud/glom"], "name": "mahmoud/glom", "platform": ["python", "cli", "cross-platform"], "pushed_at": "2026-07-17T18:49:45+00:00", "repo": "mahmoud/glom", "stars": 2163, "tags": ["nested-data", "data-transformation", "declarative", "path-access", "yaml", "toml", "data-engineering", "command-line"], "topics": ["declarative", "data", "recursion", "python", "utilities", "cli", "nested-structures", "data-transformation", "apis", "dictionaries"], "urls": [], "use_cases": ["extract nested fields from  api responses", "transform deeply nested dictionaries in python", "query  files from the command line", "restructure nested data declaratively", "get better error messages when accessing missing nested keys", "flatten and reshape nested config data", "debug and explore nested data structures interactively"], "what_it_is": "glom is a Python library and CLI for declaratively accessing, transforming, and restructuring nested data structures like dicts, lists, and objects. It provides path-based access with readable error messages and a command-line tool for working with JSON, YAML, TOML, and Python data.", "when_to_avoid": ["your data is flat or only one level deep - plain dict access is simpler", "you need high-performance bulk ETL over huge datasets", "you prefer schema validation libraries like pydantic for structuring data", "you're working outside the Python ecosystem"], "when_to_choose": ["you frequently access or reshape deeply nested dicts, lists, or objects in Python", "you want declarative, reusable data transformation specs instead of chained indexing", "you need a quick CLI to query and transform JSON/YAML/TOML files", "unclear errors from nested key access are slowing you down"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/glom", "repo": "mahmoud/glom", "role": "main", "score": 74}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:21.164076+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:50:12.274458+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "297644ae10a54347a4cf5a2e204615c89b27537b9aee84d7a75c1e9b0b6b6e49", "fetched_at": "2026-08-28T04:06:21.164076+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mahmoud/glom"}, {"content_hash": "3372e83d542d504c8a0a9a1c920b012041ecfc225c019f39801f1325e7359e94", "fetched_at": "2026-08-29T10:30:25.001364+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/glom/json"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:21.164076+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:50:12.274458+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "297644ae10a54347a4cf5a2e204615c89b27537b9aee84d7a75c1e9b0b6b6e49", "fetched_at": "2026-08-28T04:06:21.164076+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mahmoud/glom"}, {"content_hash": "3372e83d542d504c8a0a9a1c920b012041ecfc225c019f39801f1325e7359e94", "fetched_at": "2026-08-29T10:30:25.001364+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/glom/json"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:50:12.274458+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "297644ae10a54347a4cf5a2e204615c89b27537b9aee84d7a75c1e9b0b6b6e49", "fetched_at": "2026-08-28T04:06:21.164076+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mahmoud/glom"}, {"content_hash": "3372e83d542d504c8a0a9a1c920b012041ecfc225c019f39801f1325e7359e94", "fetched_at": "2026-08-29T10:30:25.001364+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/glom/json"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:06:21.164076+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:21.164076+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:21.164076+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:50:12.274458+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "297644ae10a54347a4cf5a2e204615c89b27537b9aee84d7a75c1e9b0b6b6e49", "fetched_at": "2026-08-28T04:06:21.164076+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mahmoud/glom"}, {"content_hash": "3372e83d542d504c8a0a9a1c920b012041ecfc225c019f39801f1325e7359e94", "fetched_at": "2026-08-29T10:30:25.001364+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/glom/json"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:21.164076+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:21.164076+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:50:12.274458+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "297644ae10a54347a4cf5a2e204615c89b27537b9aee84d7a75c1e9b0b6b6e49", "fetched_at": "2026-08-28T04:06:21.164076+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mahmoud/glom"}, {"content_hash": "3372e83d542d504c8a0a9a1c920b012041ecfc225c019f39801f1325e7359e94", "fetched_at": "2026-08-29T10:30:25.001364+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/glom/json"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:21.164076+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:21.164076+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:21.164076+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:50:12.274458+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "297644ae10a54347a4cf5a2e204615c89b27537b9aee84d7a75c1e9b0b6b6e49", "fetched_at": "2026-08-28T04:06:21.164076+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mahmoud/glom"}, {"content_hash": "3372e83d542d504c8a0a9a1c920b012041ecfc225c019f39801f1325e7359e94", "fetched_at": "2026-08-29T10:30:25.001364+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/glom/json"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:21.164076+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:21.164076+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:50:12.274458+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "297644ae10a54347a4cf5a2e204615c89b27537b9aee84d7a75c1e9b0b6b6e49", "fetched_at": "2026-08-28T04:06:21.164076+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mahmoud/glom"}, {"content_hash": "3372e83d542d504c8a0a9a1c920b012041ecfc225c019f39801f1325e7359e94", "fetched_at": "2026-08-29T10:30:25.001364+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/glom/json"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:50:12.274458+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "297644ae10a54347a4cf5a2e204615c89b27537b9aee84d7a75c1e9b0b6b6e49", "fetched_at": "2026-08-28T04:06:21.164076+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mahmoud/glom"}, {"content_hash": "3372e83d542d504c8a0a9a1c920b012041ecfc225c019f39801f1325e7359e94", "fetched_at": "2026-08-29T10:30:25.001364+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/glom/json"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:50:12.274458+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "297644ae10a54347a4cf5a2e204615c89b27537b9aee84d7a75c1e9b0b6b6e49", "fetched_at": "2026-08-28T04:06:21.164076+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mahmoud/glom"}, {"content_hash": "3372e83d542d504c8a0a9a1c920b012041ecfc225c019f39801f1325e7359e94", "fetched_at": "2026-08-29T10:30:25.001364+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/glom/json"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:50:12.274458+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "297644ae10a54347a4cf5a2e204615c89b27537b9aee84d7a75c1e9b0b6b6e49", "fetched_at": "2026-08-28T04:06:21.164076+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mahmoud/glom"}, {"content_hash": "3372e83d542d504c8a0a9a1c920b012041ecfc225c019f39801f1325e7359e94", "fetched_at": "2026-08-29T10:30:25.001364+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/glom/json"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 93, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases", "no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3059, "days_push": 47, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 74, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}