fixer for E1,W191 causes E122,E123 or E126
spaceone opened this issue · comments
Florian Best commented
The following code (indented with tabs):
def foo(openapi_schemas):
openapi_schemas[f'{model_name}.response-mixin'] = {
"type": "object",
"properties": {
"_links": {
"$ref": '#/components/schemas/_links',
},
"_embedded": {
"$ref": '#/components/schemas/_embedded',
},
"uuid": {
"$ref": '#/components/schemas/uuid',
},
"objectType": {
"$ref": '#/components/schemas/objectType',
},
# "id": {"$ref": '#/components/schemas/id',},
"uri": {
"$ref": f'#/components/schemas/{_openapi_quote(model_name + ".uri")}',
},
},
}
will be transformed incorrectly (without specifying args or with --select E1,W191
) into:
def foo(openapi_schemas):
openapi_schemas[f'{model_name}.response-mixin'] = {
"type": "object",
"properties": {
"_links": {
"$ref": '#/components/schemas/_links',
},
"_embedded": {
"$ref": '#/components/schemas/_embedded',
},
"uuid": {
"$ref": '#/components/schemas/uuid',
},
"objectType": {
"$ref": '#/components/schemas/objectType',
},
# "id": {"$ref": '#/components/schemas/id',},
"uri": {
"$ref": f'#/components/schemas/{_openapi_quote(model_name + ".uri")}',
},
},
}
causing therefore
foo.py:13:13: E122 continuation line missing indentation or outdented
foo.py:16:13: E122 continuation line missing indentation or outdented
When specifying --select E101,W191
it looks better but it's indented with 8 spaces instead of 4 causing:
bar.py:3:13: E126 continuation line over-indented for hanging indent
bar.py:6:29: E126 continuation line over-indented for hanging indent
bar.py:8:21: E126 continuation line over-indented for hanging indent
bar.py:9:29: E126 continuation line over-indented for hanging indent
bar.py:12:29: E126 continuation line over-indented for hanging indent
bar.py:15:29: E126 continuation line over-indented for hanging indent
bar.py:19:29: E126 continuation line over-indented for hanging indent
with --ignore E122 --hang-closing
it's completely broken and the }
are not indented anymore at all.