标签: python-black

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

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

import black

black.format("some python code")
Run Code Online (Sandbox Code Playgroud)

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

python python-black

11
推荐指数
2
解决办法
1210
查看次数

我可以撤消 Black 对我的 Python 代码所做的格式样式更改吗?

Python 格式化工具 Black 是否有一个选项可以撤消它在运行后所做的格式化更改?还是假设我正在使用源代码控制并制作自己的备份?这是截至 2019 年 12 月和黑色版本 19.3b0。

python python-black

11
推荐指数
1
解决办法
2758
查看次数

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

我们正在将 Black 代码风格应用于 django 项目。

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

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

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

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

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

我不确定这会有多大帮助,但典型的 django 迁移文件可能如下所示(在这种情况下,向表中添加一个字符字段):

# Generated by Django 2.2.3 on 2019-10-28 09:45

from django.db import migrations, models


class Migration(migrations.Migration):

    dependencies = [
        ('api', '0009_figures_notes_tables'),
    ]

    operations = [
        migrations.AlterField(
            model_name='project',
            name='processed_kmz_sha',
            field=models.CharField(max_length=255),
        ),
    ]
Run Code Online (Sandbox Code Playgroud)

python django python-black

11
推荐指数
1
解决办法
392
查看次数

python黑色格式化程序可以使用制表符代替空格吗?

我想在我的预提交挂钩中使用python 黑色代码重新格式化程序,但在我的公司中,他们决定在 python 代码中使用制表符而不是空格。所以我尝试更改黑色配置,但我没有看到任何使用制表符的选项,唯一可以影响的是行长度。

黑色是否与 PEP8 标准紧密相连以至于永远不允许制表符?

python python-black

10
推荐指数
1
解决办法
3328
查看次数

如何使用 Black 格式化程序自动中断 Python 代码中的长字符串常量?

Python 格式化指南,著名的PEP8建议行长度不要超过79 个字符

我可以使用Black Formatter轻松地将代码自动格式化为最大行长度,但它不会破坏长字符串。linter 仍然会抱怨代码中的长 URL,而 Black 也无济于事。

是否可以使用 Black 格式化程序自动断开长字符串?

python autoformatting visual-studio-code python-black

10
推荐指数
2
解决办法
4280
查看次数

GitLab CI Python 黑色格式化程序说:会重新格式化,而运行黑色则不会重新格式化

当我在此提交上运行 GitLab CI 时

\n

有了这个gitlab-ci.yml

\n
stages:\n    - format\n    - test\n\nblack_formatting:\n  image: python:3.6\n  stage: format\n  \n  before_script:\n    # Perform an update to make sure the system is up to date.\n    - sudo apt-get update --fix-missing\n    # Download miniconda.\n    - wget -q https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh; bash miniconda.sh -b -f -p $HOME/miniconda;\n    # Ensure the (mini) conda environment can be activated.\n    - export PATH="$HOME/miniconda/bin:$PATH"\n    # (Re)create the environment.yml file for the repository.\n    - conda env create -q -f …
Run Code Online (Sandbox Code Playgroud)

python formatting continuous-integration gitlab python-black

10
推荐指数
1
解决办法
1万
查看次数

在映射推导式中禁用 dict 表达式的黑色格式

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

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

# Black would keep this as-is because of the trailing comma
TRANSLATIONS = {
    "en_us": "English (US)",
    "pl_pl": "polski",
}
Run Code Online (Sandbox Code Playgroud)

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

res = [
    {
        'id': item.id,
        'name': item.name,
    }
    for item in items.select()
]
Run Code Online (Sandbox Code Playgroud)

无论尾随逗号如何,哪个 Black 都会崩溃,如下所示:

res = [
    {"id": item.id, "name": item.name,}
    for item in items.select()
]
Run Code Online (Sandbox Code Playgroud)

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

python formatting python-black

9
推荐指数
2
解决办法
1116
查看次数

“黑色”格式化程序 - Python

我刚刚开始在 Visual Studio Code 中使用“ Black ”格式化程序模块。一切都很顺利,直到我注意到它使用双引号而不是我已经在代码中使用的单引号......并且它覆盖了......

那么,是否有一个 Black 参数可以添加到 Visual Studio Code 中来解决这个问题?

python visual-studio-code python-black

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

`poetry run black myscript.py` 和 `black myscript.py` 有什么区别?

基于诗歌文档

同样,如果您有命令行工具,例如pytestblack您可以使用以下命令运行它们poetry run pytest

使用黑色的建议方法是:

poetry run black myscript.py
Run Code Online (Sandbox Code Playgroud)

但是,如果我只使用,我没有注意到行为有任何差异

black myscript.py
Run Code Online (Sandbox Code Playgroud)

这两种方法有什么区别?

python python-black python-poetry

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

黑色可​​以配置为忽略导入吗?

从现在开始,我将在所有 Python 项目中改用 Black。到目前为止,我一直使用 autopep8 作为我的自动格式化程序和 isort 来对我的导入进行排序。但在使用 Black 时,我发现 Black 单独完成了排序工作以及格式化我的代码。虽然我不介意 Black 对导入进行排序的方式,但我仍然想使用 isort 来处理我的导入,并且我希望 Black 只处理我的代码,而不是导入。那么,有没有办法将 Black 配置为仅格式化我的代码而不触及导入?顺便说一句,我正在使用 VS Code,因此有关如何在 VS Code 中应用配置的一些帮助也会有所帮助。谢谢!

python autopep8 visual-studio-code isort python-black

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