Pyproject.toml 的强盗问题

Ric*_*ckD 6 python bandit-python

我正在尝试使用pyproject.toml排除venv/目录。但它不承认这个选项。

[tool.bandit]
exclude = "/venv"

[tool.black]
exclude = "(venv)"

[tool.isort]
profile = "black"
skip = "venv"
balanced_wrapping = true
atomic = true
Run Code Online (Sandbox Code Playgroud)

如果我像这样使用 CLI 选项:

$ bandit -v -r . --exclude "/venv"
Run Code Online (Sandbox Code Playgroud)

该目录被排除。但如果我只是运行 bandit,它不会排除该目录,即使我将它放在pyproject.toml.

我的强盗版本是:1.7.1。

bar*_*rni 10

exclude不适合我,所以我查看了官方文档并发现了这个:

在此输入图像描述

我们可以指定要以列表格式排除的目录(以及文件)

pyproject.toml:

[tool.bandit]
exclude_dirs = ["venv",]
Run Code Online (Sandbox Code Playgroud)

这个文档:

“您还可以通过 pyproject.toml 文件配置 bandit。在这种情况下,您也可以通过 -c 显式指定配置路径。”

因此,CLI 选项如下所示:

bandit -v -r . -c "pyproject.toml"
Run Code Online (Sandbox Code Playgroud)

(不带引号也可以工作)


在此输入图像描述


我以前从未使用过 bandit,所以如果我弄错了你的问题 - 请随时回信,我们会解决这个问题:D

  • 对于粗心的人来说,还有一个细节是陷阱:如果您使用 3.11 之前的 Python,则需要安装 `toml` 模块或使用 `bandit[toml]` 来引入可选依赖项。https://github.com/PyCQA/bandit/issues/318 涉及到显式“-c”参数的需要。 (5认同)