我有一个 python 项目,我正在为该项目配置最新版本的 ruff,以用于 linting 和格式化目的。我的文件中有以下设置pyproject.toml:
[tool.ruff]
select = ["E", "F", "W", "Q", "I"]
ignore = ["E203"]
# Allow autofix for all enabled rules (when `--fix`) is provided.
fixable = ["ALL"]
unfixable = []
# restrict Line length to 99
line-length = 99
Run Code Online (Sandbox Code Playgroud)
ruff check具有 ruff 的自动修复功能 ( ) 的命令会--fix识别出行很长且有E501错误,但它不会将该代码格式化为换行到下一行以维持行长度限制。我需要启用或执行某些操作来确保 ruff 修复此问题吗?或者说目前这在 ruff 中是不可能的吗?请帮忙。
我尝试通过文档来查找任何内容,但我不知道在这里该怎么做。
我在用Ruff,这是一个用于 Python 代码的格式化程序或 linter 工具。
\n我想忽略一些特定的规则,并将该配置写入pyproject.toml.
我的包结构如下。
\n.\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 LICENSE\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 pyproject.toml\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 README.md\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 src\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 mypackage/mymodule.py\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 tests\n \xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 doc.md\n \xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 test_mymodule.py\nRun Code Online (Sandbox Code Playgroud)\n而且,我想忽略规则pydocstyle (D)tests/。
我正在尝试粗绒毛。我有一个如下所示的文件结构
\nproject_folder\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 env # Python enviroment [python -m venv env]\n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 Include\n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 Lib\n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 Scripts\n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 ...\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 __init__.py\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 numbers.py\nRun Code Online (Sandbox Code Playgroud)\n我正在尝试使用这段代码
\n我激活了project_folder内的环境并运行了下面的脚本
\nproject_folder\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 env # Python enviroment [python -m venv env]\n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 Include\n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 Lib\n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 Scripts\n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 ...\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 __init__.py\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 numbers.py\nRun Code Online (Sandbox Code Playgroud)\n但 ruff 还检查了 env 文件。\n Image.png
\n如何忽略 env 文件,如下面的 Linux 脚本
\nruff check .\nRun Code Online (Sandbox Code Playgroud)\n 最近我向 Ruff 介绍了一个 python linter。我有一个包含大量文件的现有目录。我想尝试一下,并在目录中创建了一个 pyproject.toml 文件。我想将行长设置为高(150)以显示更少的错误,但默认值(88)不断出现。我还尝试了忽略选项,但这似乎也不起作用。我需要输入命令来启动 pyproject.toml 的使用吗?
来自 pyproject.toml 的代码
[tool.ruff]
extend-select = ["C4", "NPY", "PD", "SIM", "TCH"]
ignore = ["E501"]
show-fixes = true
# target-version = "py310"
# change the default line length number or characters.
line-length = 150
Run Code Online (Sandbox Code Playgroud)
另一种选择是让 linter 忽略行长度。
当我使用匹配/大小写语法时,我遇到了 ruff (0.0.209) 和 python 3.10.9 解释器的奇怪问题。例如,这个简单的代码:
from http import HTTPStatus
http_status = HTTPStatus.OK
match http_status:
case HTTPStatus.OK:
print("OK!")
case HTTPStatus.BAD_REQUEST:
print("Bad, bad Zoot!")
case _:
print("Just a flesh wound.")
Run Code Online (Sandbox Code Playgroud)
提出一个5:8: E999 SyntaxError: invalid syntax. Got unexpected token 'http_status'
同时,ruff 辩称它现在支持 python3.11。谁在说谎?:)
我尝试用最新版本更新 ruff