{"adoption": {"forks": 228, "observed_at": "2026-08-28T04:05:57.274613+00:00", "stars": 1939}, "canonical_url": "https://ross.abutalabs.com/products/libcst", "card": {"archived": false, "artifact_type": "library", "description": "A concrete syntax tree parser and serializer library for Python that preserves many aspects of Python's abstract syntax tree", "domain": ["parsers", "developer-tools", "programming-languages"], "enriched": true, "function": ["parser", "serialization", "developer-tools"], "health_score": 98, "homepage": "https://libcst.readthedocs.io/", "language": "Python", "license": "NOASSERTION", "license_family": "other", "maturity": "active", "member_repos": ["Instagram/LibCST"], "name": "Instagram/LibCST", "platform": ["python", "cross-platform"], "pushed_at": "2026-08-11T05:22:09+00:00", "repo": "Instagram/LibCST", "stars": 1939, "tags": ["concrete-syntax-tree", "code-analysis", "codemod", "python-source-transformation", "ast"], "topics": [], "urls": [], "use_cases": ["parse python source code into a syntax tree", "write codemods to refactor python codebases", "build custom linters for python", "automatically rewrite python files while preserving formatting", "analyze python code for static analysis tools"], "what_it_is": "LibCST is a concrete syntax tree (CST) parser and serializer library for Python that preserves formatting details like whitespace and comments. It enables lossless programmatic reading, analysis, and transformation of Python source code.", "when_to_avoid": ["you only need the abstract syntax tree without formatting details (use ast)", "you are parsing languages other than python", "you need extremely fast parsing with no tree fidelity requirements"], "when_to_choose": ["you need lossless round-tripping of python source including comments and whitespace", "you are building codemods, linters, or refactoring tools for python", "you need typed tree nodes with visitor and transformer patterns"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/libcst", "repo": "Instagram/LibCST", "role": "main", "score": 93}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:57.274613+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:08:10.545218+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5b9ce80c1ab9095402705ceba82b42d1c1ba727f18f7c7c91b5b8c02962932ec", "fetched_at": "2026-08-28T04:05:57.274613+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Instagram/LibCST"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:57.274613+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:08:10.545218+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5b9ce80c1ab9095402705ceba82b42d1c1ba727f18f7c7c91b5b8c02962932ec", "fetched_at": "2026-08-28T04:05:57.274613+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Instagram/LibCST"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:08:10.545218+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5b9ce80c1ab9095402705ceba82b42d1c1ba727f18f7c7c91b5b8c02962932ec", "fetched_at": "2026-08-28T04:05:57.274613+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Instagram/LibCST"}], "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:05:57.274613+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:57.274613+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:57.274613+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:08:10.545218+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5b9ce80c1ab9095402705ceba82b42d1c1ba727f18f7c7c91b5b8c02962932ec", "fetched_at": "2026-08-28T04:05:57.274613+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Instagram/LibCST"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:57.274613+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:57.274613+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:08:10.545218+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5b9ce80c1ab9095402705ceba82b42d1c1ba727f18f7c7c91b5b8c02962932ec", "fetched_at": "2026-08-28T04:05:57.274613+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Instagram/LibCST"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:57.274613+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:57.274613+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:57.274613+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:08:10.545218+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5b9ce80c1ab9095402705ceba82b42d1c1ba727f18f7c7c91b5b8c02962932ec", "fetched_at": "2026-08-28T04:05:57.274613+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Instagram/LibCST"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:57.274613+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:57.274613+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:08:10.545218+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5b9ce80c1ab9095402705ceba82b42d1c1ba727f18f7c7c91b5b8c02962932ec", "fetched_at": "2026-08-28T04:05:57.274613+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Instagram/LibCST"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:08:10.545218+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5b9ce80c1ab9095402705ceba82b42d1c1ba727f18f7c7c91b5b8c02962932ec", "fetched_at": "2026-08-28T04:05:57.274613+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Instagram/LibCST"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:08:10.545218+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5b9ce80c1ab9095402705ceba82b42d1c1ba727f18f7c7c91b5b8c02962932ec", "fetched_at": "2026-08-28T04:05:57.274613+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Instagram/LibCST"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:08:10.545218+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5b9ce80c1ab9095402705ceba82b42d1c1ba727f18f7c7c91b5b8c02962932ec", "fetched_at": "2026-08-28T04:05:57.274613+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Instagram/LibCST"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 97, "longevity": 100, "rhythm": 83}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2584, "days_push": 22, "days_rel": 35, "gap_med": 45.0, "n_releases_24m": 11}, "score": 93, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}