feat: replace flake8 + plugins and isort with ruff #932
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
We have previously standardised on using
flake8
with a number of plugins, andpyproject-flake8
to enable us to configure all of our linting tools in one place (pyproject.toml
)Over the past months, there have been two major releases of
flake8
, and both have caused various issues with the various plugins and their dependencies, leading to instability in CI pipelines.I've been following ruff for a while. It's a Python linter, written in Rust, that combines a lot of the rules we were using from these other plugins. It's actively maintained, and all under one project, reducing the complexity of the dependency tree a little. It's got adoption from some pretty large projects like FastAPI and pydantic.
Proposing here for discussion.