GitHub - astral-sh/ruff-pre-commit: A pre-commit hook for Ruff. (original) (raw)
ruff-pre-commit
A pre-commit hook for Ruff.
Distributed as a standalone repository to enable installing Ruff via prebuilt wheels fromPyPI.
Using Ruff with pre-commit
To run Ruff's linter and formatter(available as of Ruff v0.0.289) via pre-commit, add the following to your .pre-commit-config.yaml
:
repos:
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.11.8 hooks: Ruff version.
Run the linter.
- id: ruff
Run the formatter.
- id: ruff-format
To enable lint fixes, add the --fix
argument to the lint hook:
repos:
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.11.8 hooks: Ruff version.
Run the linter.
- id: ruff args: [ --fix ]
Run the formatter.
- id: ruff-format
To avoid running on Jupyter Notebooks, remove jupyter
from the list of allowed filetypes:
repos:
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.11.8 hooks: Ruff version.
Run the linter.
- id: ruff types_or: [ python, pyi ] args: [ --fix ]
Run the formatter.
- id: ruff-format types_or: [ python, pyi ]
When running with --fix
, Ruff's lint hook should be placed before Ruff's formatter hook, and_before_ Black, isort, and other formatting tools, as Ruff's fix behavior can output code changes that require reformatting.
When running without --fix
, Ruff's formatter hook can be placed before or after Ruff's lint hook.
(As long as your Ruff configuration avoids any linter-formatter incompatibilities,ruff format
should never introduce new lint errors, so it's safe to run Ruff's format hook after ruff check --fix
.)
License
ruff-pre-commit is licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or https://opensource.org/licenses/MIT)
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in ruff-pre-commit by you, as defined in the Apache-2.0 license, shall be dually licensed as above, without any additional terms or conditions.