Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unary - reporting as W503 #484

Closed
IanLee1521 opened this issue Feb 24, 2016 · 1 comment
Closed

Unary - reporting as W503 #484

IanLee1521 opened this issue Feb 24, 2016 · 1 comment

Comments

@IanLee1521
Copy link
Member

Copying from #384 (comment) per @rkern.

Similarly, unary - is falsely being reported as a W503 violation.

[~/scratch]$ cat false_pep8.py
y = 75.0
z = 100.0
x = (y /
     -z)
[~/scratch]$ pep8 false_pep8.py
false_pep8.py:4:6: W503 line break before binary operator
[~/scratch]$ pep8 --version
1.7.0
sigmavirus24 added a commit to sigmavirus24/pep8 that referenced this issue Feb 24, 2016
Previously we handled the case where binary operators were being used
as unary operators except in the case where they followed another
binary operator, e.g.,

    foo = (1 +
           -10 *
           2 /
           -5)

This change updates the check for W503 to track the previous
non-whitespace token type and token text to check if it is in fact also
a binary operator (because you should never have two binary operators in
a row).

This does not handle invalid syntax, e.g.,

    foo = (bar /
           /baz)

But the false-positive generated for other cases was more harmful than
not catching what will instead be caught by the interpreter.

Closes PyCQAgh-484
@sigmavirus24
Copy link
Member

@rkern would you have time to try out #485?

pointlessone added a commit to pointlessone/pep8 that referenced this issue Dec 29, 2016
2.2.0 (2016-11-14)
------------------

Bugs:

* Fixed E305 regression caused by PyCQA#400;
  PyCQA#593

2.1.0 (2016-11-04)
------------------

Changes:

* Report E302 for blank lines before an "async def";
  PyCQA#556
* Update our list of tested and supported Python versions which are 2.6,
  2.7, 3.2, 3.3, 3.4 and 3.5 as well as the nightly Python build and
  PyPy.
* Report E742 and E743 for functions and classes badly named 'l', 'O',
  or 'I'.
* Report E741 on 'global' and 'nonlocal' statements, as well as
  prohibited single-letter variables.
* Deprecated use of `[pep8]` section name in favor of `[pycodestyle]`;
  PyCQA#591

Bugs:

* Fix opt_type AssertionError when using Flake8 2.6.2 and pycodestyle;
  PyCQA#561
* Require two blank lines after toplevel def, class;
  PyCQA#536
* Remove accidentally quadratic computation based on the number of
  colons. This will make pycodestyle faster in some cases;
  PyCQA#314

2.0.0 (2016-05-31)
------------------

Changes:

* Added tox test support for Python 3.5 and pypy3
* Added check E275 for whitespace on `from ... import ...` lines;
  PyCQA#489 / PyCQA#491
* Added W503 to the list of codes ignored by default ignore list;
  PyCQA#498
* Removed use of project level `.pep8` configuration file;
  PyCQA#364

Bugs:

* Fixed bug with treating `~` operator as binary; PyCQA#383
  / PyCQA#384
* Identify binary operators as unary; PyCQA#484 /
  PyCQA#485

1.7.0 (2016-01-12)
------------------

Changes:

* Reverted the fix in PyCQA#368, "options passed on command
  line are only ones accepted" feature. This has many unintended
  consequences in pep8 and flake8 and needs to be reworked when I have
  more time.
* Added support for Python 3.5. (Issue PyCQA#420 &
  PyCQA#459)
* Added support for multi-line config_file option parsing. (Issue
  PyCQA#429)
* Improved parameter parsing. (Issues PyCQA#420 &
  PyCQA#456)

Bugs:

* Fixed BytesWarning on Python 3. (Issue PyCQA#459)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants