)]}'
{
  "commit": "7c976dc570545b12cb4c4d9040b7ad1a1a3ddc50",
  "tree": "80e9f5eab7de8091fad2e166cf313691e64b1bcc",
  "parents": [
    "b44fb47f25d186ca5db60da560628b4c737a14f3",
    "a4531bf8655b16e1c018e843c1ffd7fde31c94df"
  ],
  "author": {
    "name": "Douglas Creager",
    "email": "dcreager@dcreager.net",
    "time": "Mon Apr 21 13:18:36 2025 -0400"
  },
  "committer": {
    "name": "Douglas Creager",
    "email": "dcreager@dcreager.net",
    "time": "Mon Apr 21 13:18:36 2025 -0400"
  },
  "message": "Merge branch \u0027main\u0027 into dcreager/function-enum\n\n* main:\n  Update pre-commit dependencies (#17506)\n  [red-knot] Simplify visibility constraint handling for `*`-import definitions (#17486)\n  [red-knot] Detect (some) invalid protocols (#17488)\n  [red-knot] Correctly identify protocol classes (#17487)\n  Update dependency ruff to v0.11.6 (#17516)\n  Update Rust crate shellexpand to v3.1.1 (#17512)\n  Update Rust crate proc-macro2 to v1.0.95 (#17510)\n  Update Rust crate rand to v0.9.1 (#17511)\n  Update Rust crate libc to v0.2.172 (#17509)\n  Update Rust crate jiff to v0.2.9 (#17508)\n  Update Rust crate clap to v4.5.37 (#17507)\n  Update astral-sh/setup-uv action to v5.4.2 (#17504)\n  Update taiki-e/install-action digest to 09dc018 (#17503)\n  [red-knot] infer attribute assignments bound in comprehensions (#17396)\n  [red-knot] simplify gradually-equivalent types out of unions and intersections (#17467)\n  [red-knot] pull primer projects to run from file (#17473)\n",
  "tree_diff": []
}
