Skip to main content

A Flake8 plugin to ensure an expression can be written in one line without exceeding the maximum length limit

Project description

A Flake8 plugin to ensure an expression can be written in one line without exceeding the maximum length (160 characters by default) limit.

Installation

Install from pip with:

pip install flake8-fill-one-line

Reported errors

Code

Rule

FOL001

import statement can be written in one line

FOL002

function call can be written in one line

FOL003

assignment can be written in one line

FOL004

return statement can be written in one line

FOL005

function definition can be written in one line

FOL006

with statement can be written in one line

FOL007

if statement can be written in one line

Used options

  • max_line_length - option from Flake8, length limit for line

  • skip-std-names - ignore tuple(), list(), set(), dict() calls (used by default)

  • skip-multiline-arguments - ignore function calls with arguments on multiple lines (used by default)

Examples

  • Imports:

# wrong:
import sys, \
    argparse
from random import randint as rand_int, \
    sample, choice as \
    random_choice

# right:
import sys, argparse
from random import randint as rand_int, sample, choice as random_choice
  • Calls and assignments

# wrong:
f(1, 2, 3,
  4, 5, 6, 7,
  8, 9)

# right:
f(1, 2, 3, 4, 5, 6, 7, 8, 9)


# wrong:
some_var = foo(1,
               a=3,
               b=42)

# right:
some_var = foo(1, a=3, b=42)


# wrong:
def f(a: int, b: int) -> int:
    return f1(a,
              b,
              a + b)

# right:
def f(a: int, b: int) -> int:
    return f1(a, b, a + b)


# wrong:
def foo(a: int, b: int):
    return a - b * 3 if \
        b < 4 \
        else foo(a - 1, b + 1)

# right:
def foo(a: int, b: int):
    return a - b * 3 if b < 4 else foo(a - 1, b + 1)
  • Function definitions

# wrong
def f(a,
      b,
      c):
    return a + b * c

# right:
def f(a, b, c):
    return a + b * c


# wrong
def f2(
        a: str,
        b: tuple, *some_args,
        **kwargs_name
       ) -> str:
    pass

# right:
def f2(a: str, b: tuple, *some_args, **kwargs_name) -> str:
    pass
  • With statements

# wrong:
with open("some_file.txt") as \
        f:
    f.read()

# right:
with open("some_file.txt") as f:
    f.read()


# wrong:
with open("f1.txt") as f1, \
        open("f2.txt", "w") as f2:
    f2.write(f1.read())

# right:
with open("f1.txt") as f1, open("f2.txt", "w") as f2:
    f2.write(f1.read())
  • If statements

# wrong:
if (
    a < b and
    c < d and
    a + b == c - d
):
    pass

# right:
if a < b and c < d and a + b == c - d:
    pass


# wrong:
if a < \
        b:
    pass

# right:
if a < b:
    pass


# wrong:
for i in range(100):
    if (i < 5 or
            i > 10):
        pass
    elif i == 2 or \
        i == 3 or i == 11 \
            or i == 28:
        pass
    elif 47 <= i <= 58:
        pass
    elif i * (20 -
              i) < 0:
        pass

# right:
for i in range(100):
    if i < 5 or i > 10:
        pass
    elif i == 2 or i == 3 or i == 11 or i == 28:
        pass
    elif 47 <= i <= 58:
        pass
    elif i * (20 - i) < 0:
        pass

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

flake8_fill_one_line-0.4.2.tar.gz (7.3 kB view details)

Uploaded Source

File details

Details for the file flake8_fill_one_line-0.4.2.tar.gz.

File metadata

  • Download URL: flake8_fill_one_line-0.4.2.tar.gz
  • Upload date:
  • Size: 7.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for flake8_fill_one_line-0.4.2.tar.gz
Algorithm Hash digest
SHA256 581be00faac1c6e55e3e8a946476f93357a3e8397eac59b18451434fd5d7de62
MD5 682edfbbb2aad6afc6480c656125a96e
BLAKE2b-256 21016f6a927d4d2f772935370a7fc3ce0a576534fe9fe0227e2ef1ee2d58d454

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