0

我正在将 autopep8 实施到现有项目中,有时会奇怪地格式化较长的行。例如,有这个代码片段:

client_data={'id': str(self.user.client.client_id), 'type': self.user.client.client_type},

其格式如下:

self.setup_auth(UserProxy(self.user.sub, [],
                          client_data={
    'id': str(
        self.user.client.client_id),
    'type': self.user.client.client_type},
    roles=[]))

所以传递的参数UserProxy在第一行有两个元素,然后第三个元素在新行上正确缩进,但字典的元素只缩进一次,而不是从它所在的行缩进一次。

如果我尝试手动修复它,它只会恢复。

有谁知道我可以如何改善这种情况下的缩进?

编辑:我正在运行 autopep8pyproject.toml

[tool.autopep8]
max_line_length = 88
in-place = true
recursive = true
aggressive = 3
4

3 回答 3

3

缩进有点一致,只是不是你想要的。为了符合 PEP8,您对原始代码无能为力,因为一行中有很多事情要做。打破它 - 它会更具可读性并让人autopep8快乐。

client_data = {
    'id': str(self.user.client.client_id),
    'type': self.user.client.client_type }
proxy = UserProxy(self.user.sub, [], client_data=client_data, roles=[])
self.setup_auth(proxy)
于 2021-08-27T21:45:40.967 回答
1

附带说明一下,我不确定您对 autopep8 的依恋程度,但这是 Black 在相同代码上的样子:

self.setup_auth(
    UserProxy(
        self.user.sub,
        [],
        client_data={
            "id": str(self.user.client.client_id),
            "type": self.user.client.client_type,
        },
        roles=[],
    )
)

我喜欢它的样子。

于 2021-08-27T23:25:51.223 回答
0

看起来你的选择是:

  1. 使用--SELECT = <Features>仅选择要修复的事物类型。
  2. 提供此处此处指定的配置文件。在配置文件中,您可以选择要忽略的事物类型。
于 2021-08-27T21:47:30.167 回答