mirror of
https://github.com/astral-sh/ruff.git
synced 2025-09-26 20:09:22 +00:00
![]() ## 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
 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-ruff
will warn on and ignore unsupported options in the.flake8
file (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.