问题标签 [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 投票
4 回答
19416 浏览

python - VS Code Python + 黑色格式化程序参数 - python.formatting.blackArgs

我在 Windows 上使用 VS Code 1.23.1 的 2018 年 5 月 Python 扩展(2018 年 6 月发布),通过 Anaconda 使用 python 3.6,conda 将黑色从 conda-forge 安装到我的 conda 环境中。

在我的用户 settings.json 中,我有以下内容:

认为这将是构建它以在 VS Code Python 格式中将参数传递给黑色的正确方法。

但是,在我的 python 输出窗格中,我得到以下信息:

编辑:如果我将我的 settings.json 编辑为没有参数,例如:

黑色按预期工作。

有谁知道如何将参数正确传递给新的(截至 2018 年 6 月)黑色格式化程序?

0 投票
2 回答
1494 浏览

python - 使用 Python Black(19.2b 之前),如何跳过数字文字中的规范化下划线?

我在 Python 3.7 中使用 Black(在 VS Code 中)。

当我格式化我的代码时,数字文字使用下划线(例如1562202=> 1_562_202)进行规范化。

如何使用黑色格式而不使用下划线进行格式化?

注意 从黑色版本19.2b 开始,此问题已过时。

0 投票
0 回答
2274 浏览

python - 如何处理丑陋的代码格式化程序输出?(黑色的)

我目前正在试验 Python 的 Black 代码格式化程序。在> 90%的情况下,我对输出(使用默认配置)感到满意,但它经常发生,它以一种对我来说似乎相当难看的方式格式化一些行。

这是一个示例,在使用黑色格式化之前和之后。

前: 格式化前

后: 格式化后

这两行的语法最初是相同的(相同的函数,相同数量的参数......),因此以相同的方式格式化它们是有意义的。但是,由于第一行稍长,Black 的格式不同,这使得阅读和解释代码变得更加困难。

当然,在这种特殊情况下,您可以只增加linelengthBlack 的参数,但这并不能真正解决一般问题,我想坚持使用默认配置。

我遇到过很多这样的情况,也使用其他格式化程序,例如 Prettier for JavaScript。你如何处理这些情况?例如,有没有办法告诉布莱克忽略这些特定的行而不格式化它们?

0 投票
1 回答
578 浏览

python - 有没有办法让 git commit --verbose 在使用预提交挂钩时显示更新的差异?

所以我目前正在设置一个 git pre-commit 钩子来使用 iSort 和 python Black 对我的 python 文件进行 lint,我遇到的问题是,当我使用git commit --verbose提交编辑器中显示的差异时,实际上并没有考虑了对暂存文件的修改。

例如,假设我有一个看起来像这样的 python 文件:

根据我配置的 iSort 和黑色设置,我的预提交脚本会将文件更改为如下所示:

不幸的是,在 git commit 编辑器中它仍然显示未修改的差异。有没有办法让编辑器有正确的输出?

从理论上讲,我想这并不重要,但很高兴看到差异实际上是什么。

0 投票
2 回答
1035 浏览

git - 使用代码格式化程序时如何逐行保留 git 作者?

我们厌倦了掉毛。所以我们想在我们的项目中使用黑色。不幸的是,它几乎改变了我们项目中的每一行,这将使我们失去大部分的作者信息。我们annotate在 pycharm 中使用或git blame很多来确定在查看特定代码片段时与谁交谈。在一次提交中更改大量文件时如何保留这些信息?

编辑:由于这是这个问题的重复,我想把重点放在“尽可能好”的方法上。

让我们假设 lint 提交是由人工(但已知)作者创建的,因此用作标志。那么是否可以创建一个git blame类似的输出,显示自此关键 lint 提交以来的所有作者以及该提交中更改的行的任何先前作者?

我意识到这对于拆分/合并的线路效果不佳,但它至少提供了一种更快的方法来限制潜在人员与 1、2、3 人交谈的范围。

0 投票
3 回答
4039 浏览

sublimetext3 - 如何在保存时应用黑码格式?

每当我在 Sublime Text 3 中保存 Python 文件时,我都想申请black。我该怎么做?

(如果有快速禁用它的方法,则加分)

0 投票
2 回答
1859 浏览

python - 是否可以将 Black 作为 API 调用?

假设我想使用黑色作为 API,并执行以下操作:

black通过调用二进制文件来格式化代码Popen是另一种选择,但这不是我要问的。

0 投票
1 回答
333 浏览

python - FilePath 宏不包含 Pycharm 中的值

我已经安装了Python Black代码格式化程序(https://github.com/psf/black)。我想将它集成到我PyCharm的外部工具中。我已经添加了参数,Black但是$FilePath$宏没有提供当前文件的路径。

我目前的配置:

运行时黑色的输出:

正如您在上面看到的,$FilePath$宏不提供文件的路径。但是当我在选项中选中它时,它会在框中Insert Macro...提供正确的路径。Macro preview

知道我该如何解决它或可能是什么问题?

0 投票
4 回答
13000 浏览

git - 黑色作为预提交钩子总是使我的提交失败

我正在尝试使用预提交来管理Black作为 Git 预提交挂钩,但我一定做错了。

在我的预提交配置文件中,我有:

我期望发生的事情是让 Black 只修改暂存文件,并让提交成功。因为 Black 的全部意义在于它自动执行 Python 代码样式规则,所以没有任何问题。

当我暂存一个(不符合黑色标准的)文件并尝试提交时实际发生了什么:Black 继续修改文件以使其符合预期......但问题是它返回“失败”。所以提交失败。然后我必须取消暂存文件,然后在再次提交之前重新暂存它......只有这样提交才能成功。

这是一个巨大的烦恼,不可能是预期的工作流程?

我究竟做错了什么?

0 投票
3 回答
29440 浏览

python - 黑色格式化程序 - 忽略特定的多行代码

我想通过blackpython 格式化程序忽略特定的多行代码。特别是,这用于np.array格式化时变得丑陋的矩阵构造。下面是示例。

我在 github 中发现了这个问题black,但这仅适用于内联命令,这不是我在这里所拥有的。

对于多行代码,我能做些什么来实现这一点?