Fix references to specific settings in README.md (#2982)

This commit is contained in:
Charlie Marsh 2023-02-17 08:07:37 -05:00 committed by GitHub
parent f5adbbebc5
commit 50ee14a418
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -29,6 +29,7 @@ An extremely fast Python linter, written in Rust.
* 🛠️ `pyproject.toml` support * 🛠️ `pyproject.toml` support
* 📦 Built-in caching, to avoid re-analyzing unchanged files * 📦 Built-in caching, to avoid re-analyzing unchanged files
* 🔧 Autofix support, for automatic error correction (e.g., automatically remove unused imports) * 🔧 Autofix support, for automatic error correction (e.g., automatically remove unused imports)
* 📏 Over [400 built-in rules](https://beta.ruff.rs/docs/rules/) (and growing)
* ⚖️ [Near-parity](#how-does-ruff-compare-to-flake8) with the built-in Flake8 rule set * ⚖️ [Near-parity](#how-does-ruff-compare-to-flake8) with the built-in Flake8 rule set
* 🔌 Native re-implementations of dozens of Flake8 plugins, like [flake8-bugbear](https://pypi.org/project/flake8-bugbear/) * 🔌 Native re-implementations of dozens of Flake8 plugins, like [flake8-bugbear](https://pypi.org/project/flake8-bugbear/)
* ⌨️ First-party editor integrations for [VS Code](https://github.com/charliermarsh/ruff-vscode) and [more](https://github.com/charliermarsh/ruff-lsp) * ⌨️ First-party editor integrations for [VS Code](https://github.com/charliermarsh/ruff-vscode) and [more](https://github.com/charliermarsh/ruff-lsp)
@ -494,7 +495,7 @@ There are a few exceptions to these rules:
Unlike [ESLint](https://eslint.org/docs/latest/user-guide/configuring/configuration-files#cascading-and-hierarchy), Unlike [ESLint](https://eslint.org/docs/latest/user-guide/configuring/configuration-files#cascading-and-hierarchy),
Ruff does not merge settings across configuration files; instead, the "closest" configuration file Ruff does not merge settings across configuration files; instead, the "closest" configuration file
is used, and any parent configuration files are ignored. In lieu of this implicit cascade, Ruff is used, and any parent configuration files are ignored. In lieu of this implicit cascade, Ruff
supports an [`extend`](#extend) field, which allows you to inherit the settings from another supports an [`extend`](https://beta.ruff.rs/docs/settings#extend) field, which allows you to inherit the settings from another
`pyproject.toml` file, like so: `pyproject.toml` file, like so:
```toml ```toml
@ -510,19 +511,22 @@ and `pyproject.toml` file, it will defer to the `ruff.toml`.
### Python file discovery ### Python file discovery
When passed a path on the command-line, Ruff will automatically discover all Python files in that When passed a path on the command-line, Ruff will automatically discover all Python files in that
path, taking into account the [`exclude`](#exclude) and [`extend-exclude`](#extend-exclude) settings path, taking into account the [`exclude`](https://beta.ruff.rs/docs/settings#exclude) and
in each directory's `pyproject.toml` file. [`extend-exclude`](https://beta.ruff.rs/docs/settings#extend-exclude) settings in each directory's
`pyproject.toml` file.
By default, Ruff will also skip any files that are omitted via `.ignore`, `.gitignore`, By default, Ruff will also skip any files that are omitted via `.ignore`, `.gitignore`,
`.git/info/exclude`, and global `gitignore` files (see: [`respect-gitignore`](#respect-gitignore)). `.git/info/exclude`, and global `gitignore` files (see: [`respect-gitignore`](https://beta.ruff.rs/docs/settings#respect-gitignore)).
Files that are passed to `ruff` directly are always linted, regardless of the above criteria. Files that are passed to `ruff` directly are always linted, regardless of the above criteria.
For example, `ruff check /path/to/excluded/file.py` will always lint `file.py`. For example, `ruff check /path/to/excluded/file.py` will always lint `file.py`.
### Rule resolution ### Rule resolution
The set of enabled rules is controlled via the [`select`](#select) and [`ignore`](#ignore) settings, The set of enabled rules is controlled via the [`select`](https://beta.ruff.rs/docs/settings#select)
along with the [`extend-select`](#extend-select) and [`extend-ignore`](#extend-ignore) modifiers. and [`ignore`](https://beta.ruff.rs/docs/settings#ignore) settings, along with the
[`extend-select`](https://beta.ruff.rs/docs/settings#extend-select) and
[`extend-ignore`](https://beta.ruff.rs/docs/settings#extend-ignore) modifiers.
To resolve the enabled rule set, Ruff may need to reconcile `select` and `ignore` from a variety To resolve the enabled rule set, Ruff may need to reconcile `select` and `ignore` from a variety
of sources, including the current `pyproject.toml`, any inherited `pyproject.toml` files, and the of sources, including the current `pyproject.toml`, any inherited `pyproject.toml` files, and the
@ -548,8 +552,9 @@ the exception of `F401`.
### Suppressing errors ### Suppressing errors
To omit a lint rule entirely, add it to the "ignore" list via [`ignore`](#ignore) or To omit a lint rule entirely, add it to the "ignore" list via [`ignore`](https://beta.ruff.rs/docs/settings#ignore)
[`extend-ignore`](#extend-ignore), either on the command-line or in your `pyproject.toml` file. or [`extend-ignore`](https://beta.ruff.rs/docs/settings#extend-ignore), either on the command-line
or in your `pyproject.toml` file.
To ignore a violation inline, Ruff uses a `noqa` system similar to [Flake8](https://flake8.pycqa.org/en/3.1.1/user/ignoring-errors.html). To ignore a violation inline, Ruff uses a `noqa` system similar to [Flake8](https://flake8.pycqa.org/en/3.1.1/user/ignoring-errors.html).
To ignore an individual violation, add `# noqa: {code}` to the end of the line, like so: To ignore an individual violation, add `# noqa: {code}` to the end of the line, like so:
@ -588,8 +593,8 @@ like so:
# ruff: noqa: F841 # ruff: noqa: F841
``` ```
Or see the [`per-file-ignores`](#per-file-ignores) configuration setting, which enables the same Or see the [`per-file-ignores`](https://beta.ruff.rs/docs/settings#per-file-ignores) configuration
functionality via a `pyproject.toml` file. setting, which enables the same functionality via a `pyproject.toml` file.
Note that Ruff will also respect Flake8's `# flake8: noqa` directive, and will treat it as Note that Ruff will also respect Flake8's `# flake8: noqa` directive, and will treat it as
equivalent to `# ruff: noqa`. equivalent to `# ruff: noqa`.
@ -665,7 +670,9 @@ autoload -Uz compinit && compinit
<!-- Begin section: Rules --> <!-- Begin section: Rules -->
Regardless of the rule's origin, Ruff re-implements every rule in Rust as a first-party feature. Ruff supports over 400 lint rules, many of which are inspired by popular tools like Flake8, isort,
pyupgrade, and others. Regardless of the rule's origin, Ruff re-implements every rule in
Rust as a first-party feature.
By default, Ruff enables Flake8's `E` and `F` rules. Ruff supports all rules from the `F` category, By default, Ruff enables Flake8's `E` and `F` rules. Ruff supports all rules from the `F` category,
and a [subset](#error-e) of the `E` category, omitting those stylistic rules made obsolete by the and a [subset](#error-e) of the `E` category, omitting those stylistic rules made obsolete by the
@ -673,7 +680,8 @@ use of an autoformatter, like [Black](https://github.com/psf/black).
<!-- End section: Rules --> <!-- End section: Rules -->
See the [list of all rules](https://beta.ruff.rs/docs/rules/). For a complete enumeration, see the [list of rules](https://beta.ruff.rs/docs/rules/) in the
Ruff documentation.
## Editor Integrations ## Editor Integrations
@ -1114,8 +1122,8 @@ and in how Ruff and isort treat inline comments in some cases (see: [#1381](http
Like isort, Ruff's import sorting is compatible with Black. Like isort, Ruff's import sorting is compatible with Black.
Ruff does not yet support all of isort's configuration options, though it does support many of Ruff does not yet support all of isort's configuration options, though it does support many of
them. You can find the supported settings in the [API reference](#isort). For example, you can set them. You can find the supported settings in the [API reference](https://beta.ruff.rs/docs/settings/#isort).
`known-first-party` like so: For example, you can set `known-first-party` like so:
```toml ```toml
[tool.ruff] [tool.ruff]
@ -1230,8 +1238,9 @@ have _complete_ certainty when making changes to code, even for the seemingly tr
In the future, Ruff will support enabling autofix behavior based on the safety of the patch. In the future, Ruff will support enabling autofix behavior based on the safety of the patch.
In the meantime, if you find that the autofix is too aggressive, you can disable it on a per-rule or In the meantime, if you find that the autofix is too aggressive, you can disable it on a per-rule or
per-category basis using the [`unfixable`](#unfixable) mechanic. For example, to disable autofix per-category basis using the [`unfixable`](https://beta.ruff.rs/docs/settings/#unfixable) mechanic.
for some possibly-unsafe rules, you could add the following to your `pyproject.toml`: For example, to disable autofix for some possibly-unsafe rules, you could add the following to your
`pyproject.toml`:
```toml ```toml
[tool.ruff] [tool.ruff]