A pre-commit hook for Ruff.
Distributed as a standalone repository to enable installing Ruff via prebuilt wheels from PyPI.
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
:
- repo: https://github.com/astral-sh/ruff-pre-commit
# Ruff version.
rev: v0.2.2
hooks:
# Run the linter.
- id: ruff
# Run the formatter.
- id: ruff-format
To enable lint fixes, add the --fix
argument to the lint hook:
- repo: https://github.com/astral-sh/ruff-pre-commit
# Ruff version.
rev: v0.2.2
hooks:
# Run the linter.
- id: ruff
args: [ --fix ]
# Run the formatter.
- id: ruff-format
To run the hooks over Jupyter Notebooks too, add jupyter
to the list of allowed filetypes:
- repo: https://github.com/astral-sh/ruff-pre-commit
# Ruff version.
rev: v0.2.2
hooks:
# Run the linter.
- id: ruff
types_or: [ python, pyi, jupyter ]
args: [ --fix ]
# Run the formatter.
- id: ruff-format
types_or: [ python, pyi, jupyter ]
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
.)
MIT