mirror of https://github.com/astral-sh/ruff
## Summary This PR adds a new `lint` section to the configuration that groups all linter-specific settings. The existing top-level configurations continue to work without any warning because the `lint.*` settings are experimental. The configuration merges the top level and `lint.*` settings where the settings in `lint` have higher precedence (override the top-level settings). The reasoning behind this is that the settings in `lint.` are more specific and more specific settings should override less specific settings. I decided against showing the new `lint.*` options on our website because it would make the page extremely long (it's technically easy to do, just attribute `lint` with `[option_group`]). We may want to explore adding an `alias` field to the `option` attribute and show the alias on the website along with its regular name. ## Test Plan * I added new integration tests * I verified that the generated `options.md` is identical * Verified the default settings in the playground  |
||
|---|---|---|
| .. | ||
| examples | ||
| src | ||
| Cargo.toml | ||
| README.md | ||
| pyproject.toml | ||
README.md
flake8-to-ruff
Convert existing Flake8 configuration files (setup.cfg, tox.ini, or .flake8) for use with
Ruff.
Generates a Ruff-compatible pyproject.toml section.
Installation and Usage
Installation
Available as flake8-to-ruff on PyPI:
pip install flake8-to-ruff
Usage
To run flake8-to-ruff:
flake8-to-ruff path/to/setup.cfg
flake8-to-ruff path/to/tox.ini
flake8-to-ruff path/to/.flake8
flake8-to-ruff will print the relevant pyproject.toml sections to standard output, like so:
[tool.ruff]
exclude = [
'.svn',
'CVS',
'.bzr',
'.hg',
'.git',
'__pycache__',
'.tox',
'.idea',
'.mypy_cache',
'.venv',
'node_modules',
'_state_machine.py',
'test_fstring.py',
'bad_coding2.py',
'badsyntax_*.py',
]
select = [
'A',
'E',
'F',
'Q',
]
ignore = []
[tool.ruff.flake8-quotes]
inline-quotes = 'single'
[tool.ruff.pep8-naming]
ignore-names = [
'foo',
'bar',
]
Plugins
flake8-to-ruff will attempt to infer any activated plugins based on the settings provided in your
configuration file.
For example, if your .flake8 file includes a docstring-convention property, flake8-to-ruff
will enable the appropriate flake8-docstrings
checks.
Alternatively, you can manually specify plugins on the command-line:
flake8-to-ruff path/to/.flake8 --plugin flake8-builtins --plugin flake8-quotes
Limitations
- Ruff only supports a subset of the Flake configuration options.
flake8-to-ruffwill warn on and ignore unsupported options in the.flake8file (or equivalent). (Similarly, Ruff has a few configuration options that don't exist in Flake8.) - Ruff will omit any rule codes that are unimplemented or unsupported by Ruff, including rule codes from unsupported plugins. (See the documentation for the complete list of supported plugins.)
License
MIT
Contributing
Contributions are welcome and hugely appreciated. To get started, check out the contributing guidelines.