Skip to main content

A flake8 plugin to make sure complex conditional expressions and comprehension expressions are split over several lines.

Project description

flake8-multiline-conditionals-comprehensions

Build Status Build Status Build Status Build Status

flake8 plugin that works on conditional expressions and comprehension expressions to enforce each segment to be put on a new line.

Contents

Options

The flag --select_mcc2 can be used to select the set of errors to include. By default, the active errors are MCC200, MCC201, MCC202, MCC220, MCC221, MCC223.

Comprehension Errors

MCC200

A comprehension expression should place each of its generators on a separate line.

# Bad
[x+y for x in range(10) for y in range(10)]

# Good
[
    x + y
    for x in range(10)
    for y in range(10)
]

MCC201

A multiline comprehension expression should place each of its segments (map, generator, filter) on a separate line.

# Bad
[x+y for x in range(10) 
for y in range(10) if x+y > 5]

# Good
[
    x + y
    for x in range(10)
    for y in range(10)
    if x + y > 5
]

MCC202

A comprehension expression should not contain multiple filters.

# Bad
[x for x in range(10) if x % 2 == 0 if x % 3 == 0]

# Good
[x for x in range(10) if x % 2 == x % 3 == 0]

MCC203

A comprehension expression should not span over multiple lines.

# Bad
[x + y 
for x in range(10) ]

# Good
[x+y for x in range(10)]

MCC204

A comprehension expression should span over multiple lines.

# Bad
[x for x in range(10)]

# Good
[x 
for x in range(10)]

Condition Errors

MCC220

A multiline conditional expression should place each of its segments on a separate line.

# Bad
1 
if something() else 0

# Good
1
if something()
else 0

MCC221

A conditional expression used for assignment should be surrounded by parantheses.

# Bad
a = 1 if something() else 0

# Good
a = (1 if something() else 0)

MCC222

A conditional expression should not contain further conditional expressions.

# Bad
1 if x > 0 else -1 if x < 0 else 0

# Good
if x > 0:
    return 1
elif x < 0:
    return -1
else:
    return 0

MCC223

A conditional expression should not span over multiple lines.

# Bad
1
if something()
else 0

# Good
1 if something() else 0

MCC224

A conditional expression should span over multiple lines.

# Bad
1 if something() else 0

# Good
1
if something()
else 0

MCC225

Conditional expressions should not be used.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

Built Distribution

File details

Details for the file flake8-multiline-conditionals-comprehensions-2.0.tar.gz.

File metadata

File hashes

Hashes for flake8-multiline-conditionals-comprehensions-2.0.tar.gz
Algorithm Hash digest
SHA256 2cb7274984c0696ce3d8d914f92b0852a2705817142454c3141c8cb66c62119f
MD5 4252cb47e518a043fb9f47df46812ce3
BLAKE2b-256 443c782f8e5a96daccb8405ed1013f4d11c2335eda226160e78f1ded7898b69d

See more details on using hashes here.

File details

Details for the file flake8_multiline_conditionals_comprehensions-2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for flake8_multiline_conditionals_comprehensions-2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b43fb271d3fbefc40cb44fe80568e4cac6320bb3ea4aceed17c913cd72d19ff7
MD5 ddd5cbed97222a1da466b2b0f4c7071a
BLAKE2b-256 cdd88be2af86ab41da877b8caef2ea79958fac68dea4f85b19eba26fd7b3eaf2

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page