Merge branch 'main' into dcreager/function-enum
* main:
Update pre-commit dependencies (#17506)
[red-knot] Simplify visibility constraint handling for `*`-import definitions (#17486)
[red-knot] Detect (some) invalid protocols (#17488)
[red-knot] Correctly identify protocol classes (#17487)
Update dependency ruff to v0.11.6 (#17516)
Update Rust crate shellexpand to v3.1.1 (#17512)
Update Rust crate proc-macro2 to v1.0.95 (#17510)
Update Rust crate rand to v0.9.1 (#17511)
Update Rust crate libc to v0.2.172 (#17509)
Update Rust crate jiff to v0.2.9 (#17508)
Update Rust crate clap to v4.5.37 (#17507)
Update astral-sh/setup-uv action to v5.4.2 (#17504)
Update taiki-e/install-action digest to 09dc018 (#17503)
[red-knot] infer attribute assignments bound in comprehensions (#17396)
[red-knot] simplify gradually-equivalent types out of unions and intersections (#17467)
[red-knot] pull primer projects to run from file (#17473)