72680


Python3のフォーマッターにautopep8を用いています。  
下記のようなコードを書いた後、autopep8でフォーマットすると、２つのif文のインデントが一致せず、困っています。  
２つのif文のインデントを一致させる方法はありますか？

### フォーマット前

[code]

    txt = 'a'
    
    if ((txt == 'a')
        or (txt == 'b')
        or (txt == 'b')
        or (txt == 'b')
        or (txt == 'b')
        ):
        print('hoge')
    
    if ((txt == 'a')
                or (txt == 'b')
                or (txt == 'b')
                or (txt == 'b')
                or (txt == 'b')
                ):
        print('hoge')
    
[/code]

### フォーマット後

[code]

    txt = 'a'
    
    if ((txt == 'a')
            or (txt == 'b')
            or (txt == 'b')
            or (txt == 'b')
            or (txt == 'b')
            ):
        print('hoge')
    
    if ((txt == 'a')
        or (txt == 'b')
        or (txt == 'b')
        or (txt == 'b')
        or (txt == 'b')
        ):
        print('hoge')
    
[/code]

### 動作確認環境

Python 3.8.5  
autopep8 1.5.4  
Visual Studio Code 1.52.0


CC BY-SA 4.0
2020-12-15T06:52:01.267
72667
2020-12-16T01:40:06.623
2020-12-15T07:30:58.760
19297
19297
question
python python3 vscode
pythonのautopep8でif文のインデントが一定にならない


私の環境でも再現しました。  
`"--select=E101,E122,E123,E124,E126,E127,E128",`を追加したら問題が解消しました。

【settings.json】

[code]

        "python.formatting.provider": "autopep8",
        "python.formatting.autopep8Args": [
            "--aggressive",
            "--aggressive",
            "--select=E101,E122,E123,E124,E126,E127,E128",
        ],
    
[/code]

E127,E128あたりで、この問題が解消するようです。  
\--selectで指定した値は以下を参考にしました。  
<https://github.com/hhatto/autopep8>

> Features  
>  autopep8 fixes the following issues reported by pycodestyle:


CC BY-SA 4.0
2020-12-16T01:15:34.020
72680
2020-12-16T01:40:06.623
2020-12-16T01:40:06.623
35558
35558
72667
answer