MartinThoma / flake8-simplify

❄ A flake8 plugin that helps you to simplify code
MIT License
185 stars 19 forks source link

[Adjust Rule] SIM113: Take care of "continue" #32

Closed MartinThoma closed 3 years ago

MartinThoma commented 3 years ago

Desired change

Example

even_numbers = 0
for el in range(100):
    if el % 2 == 1:
        continue
    even_numbers += 1
MartinThoma commented 3 years ago
$ astpretty --no-show-offsets /dev/stdin <<< `cat example.txt`
Module(
    body=[
        Assign(
            targets=[Name(id='even_numbers', ctx=Store())],
            value=Constant(value=0, kind=None),
            type_comment=None,
        ),
        For(
            target=Name(id='el', ctx=Store()),
            iter=Call(
                func=Name(id='range', ctx=Load()),
                args=[Constant(value=100, kind=None)],
                keywords=[],
            ),
            body=[
                If(
                    test=Compare(
                        left=BinOp(
                            left=Name(id='el', ctx=Load()),
                            op=Mod(),
                            right=Constant(value=2, kind=None),
                        ),
                        ops=[Eq()],
                        comparators=[Constant(value=1, kind=None)],
                    ),
                    body=[Continue()],
                    orelse=[],
                ),
                AugAssign(
                    target=Name(id='even_numbers', ctx=Store()),
                    op=Add(),
                    value=Constant(value=1, kind=None),
                ),
            ],
            orelse=[],
            type_comment=None,
        ),
    ],
    type_ignores=[],
)