This release includes the Beta version of the Ruff formatter — an extremely fast, Black-compatible Python formatter.
Try it today with ruff format.
Changes
Preview features
[pylint] Implement non-...
As many people are working on the same codebase simultaneously, reformatting the whole thing will create many conflicts
There are still some places where Black’s formatting in undesired (especially in DS/ML code where you may find data structures formatted as a matrix) and we’d want to exclude those either via configuration, or with the # fmt: off/on comment directives, but I’ll only see those when I review them in a PR. If I reformat the entire project in one commit it will be harder to spot.
As Black is evolving so may the formatting, or maybe we’ll change some default configuration in the future (like string normalization) and then I’d have to reformat the whole thing again.
Works, yes. But I’m talking about formatting that just looks wrong with black. Try format something like a long enough numpy matrix, pandas dataframe, or just a list of lists, and you’ll see how black just makes things unreadable.
There are several reasons:
# fmt: off/on
comment directives, but I’ll only see those when I review them in a PR. If I reformat the entire project in one commit it will be harder to spot.Surely, no one would do a change like adding
black
to an existing project without checking that everything still works afterwards?Works, yes. But I’m talking about formatting that just looks wrong with black. Try format something like a long enough numpy matrix, pandas dataframe, or just a list of lists, and you’ll see how black just makes things unreadable.