ruff applies the same checks as pyflakes, but it has additional customizations and supports a wider range of rules, so let's replace pyflakes with the equivalent ruff checks.
Replacing pyflakes isn't so interesting because pyflakes is already pretty fast, but we'll get a nice speedup from replacing isort (see #1632) and consolidating dev tools.
ruff applies the same checks as pyflakes, but it has additional customizations and supports a wider range of rules, so let's replace pyflakes with the equivalent ruff checks.
Replacing pyflakes isn't so interesting because pyflakes is already pretty fast, but we'll get a nice speedup from replacing isort (see #1632) and consolidating dev tools.