guettli
guettli

Reputation: 27825

How to format this code so that flake8 is happy?

This code was created by black:

def test_schema_org_script_from_list():
    assert (
        schema_org_script_from_list([1, 2])
        == '<script type="application/ld+json">1</script>\n<script type="application/ld+json">2</script>'
    )

But now flake8 complains:

tests/test_utils.py:59:9: W503 line break before binary operator

tests/test_utils.py:59:101: E501 line too long (105 > 100 characters)

How can I format above lines and make flake8 happy?

I use this .pre-commit-config.yaml

# See https://pre-commit.com for more information
# See https://pre-commit.com/hooks.html for more hooks
repos:
  - repo: 'https://github.com/pre-commit/pre-commit-hooks'
    rev: v3.2.0
    hooks:
      - id: trailing-whitespace
      - id: end-of-file-fixer
      - id: check-yaml
      - id: check-added-large-files
  - repo: 'https://gitlab.com/pycqa/flake8'
    rev: 3.8.4
    hooks:
      - id: flake8
  - repo: 'https://github.com/pre-commit/mirrors-isort'
    rev: v5.7.0
    hooks:
      - id: isort

tox.ini:

[flake8]
max-line-length = 100
exclude = .git,*/migrations/*,node_modules,migrate
# W504 line break after binary operator
ignore = W504

(I think it is a bit strange that flake8 reads config from a file which belongs to a different tool).

Upvotes: 7

Views: 10039

Answers (1)

anthony sottile
anthony sottile

Reputation: 69934

from your configuration, you've set ignore = W504

ignore isn't the option you want as it resets the default ignore (bringing in a bunch of things, including W503).

If you remove ignore=, both W504 and W503 are in the default ignore so they won't be caught

as for your E501 (line too long), you can either extend-ignore = E501 or you can set max-line-length appropriately

for black, this is the suggested configuration:

[flake8]
max-line-length = 88
extend-ignore = E203

note that there are cases where black cannot make a line short enough (as you're seeing) -- both from long strings and from long variable names


disclaimer: I'm the current flake8 maintainer

Upvotes: 13

Related Questions