Builds on top of #6614, which should be reviewed and merged first.
I've pushed this as a separate PR for easier review. Marking this as draft until then.
Most of the changes here come from a new rule RUF022
unsorted-dunder-all (RUF022)
Derived from the **Ruff-specific rules** linter.
Fix is sometimes available.
## What it does
Checks for `__all__` definitions that are not ordered
according to an "isort-style" sort.
An isort-style sort orders items first according to their casing:
SCREAMING_SNAKE_CASE names (conventionally used for global constants)
come first, followed by CamelCase names (conventionally used for
classes), followed by anything else. Within each category,
a [natural sort](https://en.wikipedia.org/wiki/Natural_sort_order)
is used to order the elements.
Builds on top of #6614, which should be reviewed and merged first.
I've pushed this as a separate PR for easier review. Marking this as draft until then.
Most of the changes here come from a new rule RUF022