PyCQA / PyCQA/pycodestyle

W503: % is not considered to be a binary operator for line breaks

Open
#422 15 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
5.2k
Forks
754
PR merge metrics
No merged PRs in 30d

Description

print("%s"
      % "text")

does not emit W503.

The % operator is shown in the example for https://www.python.org/dev/peps/pep-0008/#multiline-if-statements, so it can be assumed that this is a recommendation, yet it is excluded from the bin-op check.

Even though I hate this convention and do not follow it, this is inconsistent.
Might want to consider adding this as a separate error code because this has been such a longstanding issue?

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the example in the issue and inspect the binary-operator check in pep8.py, especially the operator list linked in the report. Compare the behavior with the PEP 8 multiline-if-statements example and review the comment discussion before deciding whether the existing W503 check or a separate error code should cover %. Done means the chosen behavior is implemented and covered by the relevant checker tests.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
tooling
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.