标签: ruff

Ruff 不会自动修复行太长的违规行为

我有一个 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 中是不可能的吗?请帮忙。

我尝试通过文档来查找任何内容,但我不知道在这里该怎么做。

python lint python-3.x ruff

8
推荐指数
1
解决办法
5367
查看次数

使用 Ruff 忽略特定目录中的特定规则

我在用Ruff,这是一个用于 Python 代码的格式化程序或 linter 工具。

\n

我想忽略一些特定的规则,并将该配置写入pyproject.toml.

\n

我的包结构如下。

\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\n
Run Code Online (Sandbox Code Playgroud)\n

而且,我想忽略规则pydocstyle (D)tests/

\n

python ruff

8
推荐指数
1
解决办法
1408
查看次数

在控制台中使用 python ruff linter 时如何忽略环境目录

我正在尝试粗绒毛。我有一个如下所示的文件结构

\n
project_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\n
Run Code Online (Sandbox Code Playgroud)\n

我正在尝试使用这段代码

\n

我激活了project_folder内的环境并运行了下面的脚本

\n
project_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\n
Run Code Online (Sandbox Code Playgroud)\n

但 ruff 还检查了 env 文件。\n Image.png

\n

如何忽略 env 文件,如下面的 Linux 脚本

\n
ruff check .\n
Run Code Online (Sandbox Code Playgroud)\n

python linter ruff

7
推荐指数
1
解决办法
2235
查看次数

尝试更改 Ruff 默认行长度

最近我向 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 忽略行长度。

lint python-3.x ruff

7
推荐指数
0
解决办法
2996
查看次数

ruff :匹配/大小写语法上的 E999 SyntaxError

当我使用匹配/大小写语法时,我遇到了 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

python-3.x linter python-3.10 ruff

2
推荐指数
1
解决办法
1721
查看次数

标签 统计

ruff ×5

python ×3

python-3.x ×3

lint ×2

linter ×2

python-3.10 ×1