问题标签 [python-black]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
16046 浏览

pre-commit - 使用预提交排除一些运行黑色的文件

我想在预提交中配置黑色并从检查任何迁移文件夹中排除预提交。

我的 pyproject.toml 看起来像这样

我还配置了预提交。但是在运行pre-commit run --all-files 黑色格式迁移文件夹时,我如何配置黑色

0 投票
2 回答
2075 浏览

python - 在映射理解中禁用 dict 表达式的黑色格式

我目前正在研究将Black作为我们的默认格式化程序,但是,我遇到了一些无法很好格式化的边缘情况,我想知道是否有办法获得我想要的结果。

Black的文档部分探讨了我的问题,我有一个水平分布的字典表达式,我希望保持这种状态,因为我希望添加行,例如:

但在我的情况下,字典在列表理解中:

无论尾随逗号如何,哪个黑方崩溃,如下所示:

有没有办法告诉黑方在这些情况下保持水平结构?

0 投票
1 回答
6583 浏览

python - 即使在我暂存以前修改过的文件之后,Git 预提交挂钩也会继续修改文件

我正在运行 git pre-commit并运行 black 作为钩子之一。

现在,当我运行时commit,黑色失败并说:

我查看了重新格式化的文件,我对它们很好。所以我暂存这些文件并尝试commit再次运行,但我不断收到与上面相同的消息。我尝试了以下命令但没有成功。

这是我的.pre-commit-config.yaml文件:

当我执行 git status --short 时,我得到了这个:

当我跑步git commit -m "test"时,跑步后git add .,,git add -Agit add -u;我明白了:

我不确定我做错了什么;git 似乎没有用黑人格式更新我的提交。我无法通过我的谷歌研究找到任何东西。谢谢!

0 投票
2 回答
594 浏览

python - 为什么迁移文件经常被排除在代码格式化之外?

我们正在将黑色代码样式应用于 django 项目。

在我找到的所有教程/示例中(例如在 django cookiecutter这个博客中),我一直看到 django 的迁移文件从 linter 中排除。

但在我看来,这些仍然是 python 文件。当然,django 可能不会自动生成它们以满足黑色规范。但是,开发人员并不总是编写代码来满足 Black 规范……这就是 linting 的用途!

为什么迁移文件被认为与任何其他 python 文件不同?!

注意,我知道如果您有预先存在的迁移,则可能会更改已经应用的迁移 - 这需要小心第一个应用程序(坦率地说,第一个应用程序到代码库的其余部分也是如此)但肯定不是不这样做的理由?

编辑 - @torxed 要求提供 django 迁移文件的示例

我不确定这会有多大帮助,但是典型的 django 迁移文件可能看起来像这样(在这种情况下,将 char 字段添加到表中):

0 投票
2 回答
1780 浏览

python - 你如何知道 VS Code 使用的 Python 格式化程序的版本?

本答案所述,可以检查(并设置)settings.jsonVS Code 使用的格式化程序。

对于 Python,我使用black

设置.json

我想我发现了一个涉及 的问题black,但我只能在 VS Code 中重现它,而不是从终端运行它时。

我想知道blackVS Code 正在使用二进制文件的哪个版本(甚至更好的位置)。理想情况下,我还想更改它,以检查我可以(或不能)重现问题的版本。

我确定的是 VS Code没有black在我的路径上使用二进制文件;即使我将其从路径中删除,自动格式化也会继续工作。(例如mv /home/sam/.local/bin/black /home/sam/.local/bin/black.bak:)

0 投票
2 回答
1150 浏览

python - 即使在将 Black 配置为格式化程序后,获取“扩展 'Python Language Basics' 无法格式化 ~'/'”

我正在尝试为 VS Code 设置格式化程序。我想使用黑色,但我很难让它发挥作用。当我尝试使用 Format Document 命令时,我收到一条错误消息,提示“Python 自动格式化:扩展 'Python Language Basics' 无法格式化 ~'/'”。

我遵循了在线教程并完成了以下操作:

  • pip3 安装黑色
  • 将黑色设置为python格式提供程序(进入设置,找到“Python › Formatting:Provider”,从下拉列表中选择黑色)
  • 保存时打开格式
  • 将默认格式化程序设置为 null

为什么 VS Code 仍然默认为“Python 语言基础”?如何将其更改为 Black 或 yapf?

0 投票
1 回答
763 浏览

python - 使用 Makefile 命令从 Docker 运行 Black 格式化程序

我没有在本地机器上安装 Black,而是尝试从 Docker 容器运行 Black(从 requirements.txt 安装)。我正在寻找添加一个 Makefile 命令来格式化修改后的文件。到目前为止,这是我想出的,它的运行方式是make format

这会找到当前分支从 master 分支的点

https://git-scm.com/docs/git-merge-base#_operation_modes

这将返回从带有 .py 扩展名的 diff 返回的文件名(.py 过滤器可能是矫枉过正?)

https://git-scm.com/docs/git-diff#_description

希望听到一些反馈,或任何类似设置的示例。

0 投票
4 回答
12077 浏览

python - 黑色不支持“格式选择”命令 - VS Code 错误

我需要在 Vs Code 中缩进我的 python 文件。我按照正常程序,

但我的问题是每次我尝试格式化 python 文件时它都会说

黑色不支持“格式选择”

所以有人可以解释这里出了什么问题?我的python版本是Python 3.7.6

VS代码细节:

0 投票
0 回答
241 浏览

python - 如何在 cookiecutter 模板上运行黑色格式?

我正在使用预提交blackflake8钩子。

error: cannot format在尝试对以下代码进行黑色格式化时得到了这个

是否有指示黑色,跳过/忽略特定于 cookiecutter 的语法?

0 投票
1 回答
197 浏览

python - 长字符串不变,python-black能否将其转成multine

前:

运行后black --line-length 80 file.py:(长字符串不变)


预期的行为(接近这个):

或者

[Q] 长串保持不变,可以python-black转换成多串吗?如果没有,是否有任何其他工具来完成它?