From 4fea946aa5b66d4b39ebe52bd91e84b0ed5b5d54 Mon Sep 17 00:00:00 2001 From: Anthony Sottile Date: Thu, 11 Jul 2019 08:15:52 -0700 Subject: Ellipsis is not a binary operator --- pycodestyle.py | 5 ++++- testsuite/python3.py | 7 +++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/pycodestyle.py b/pycodestyle.py index ec6b894..4ade087 100755 --- a/pycodestyle.py +++ b/pycodestyle.py @@ -1205,13 +1205,16 @@ def explicit_line_join(logical_line, tokens): parens -= 1 +_SYMBOLIC_OPS = frozenset("()[]{},:.;@=%~") | frozenset(("...",)) + + def _is_binary_operator(token_type, text): is_op_token = token_type == tokenize.OP is_conjunction = text in ['and', 'or'] # NOTE(sigmavirus24): Previously the not_a_symbol check was executed # conditionally. Since it is now *always* executed, text may be # None. In that case we get a TypeError for `text not in str`. - not_a_symbol = text and text not in "()[]{},:.;@=%~" + not_a_symbol = text and text not in _SYMBOLIC_OPS # The % character is strictly speaking a binary operator, but the # common usage seems to be to put it next to the format parameters, # after a line break. diff --git a/testsuite/python3.py b/testsuite/python3.py index be7c58f..709695a 100644 --- a/testsuite/python3.py +++ b/testsuite/python3.py @@ -37,3 +37,10 @@ class Class: def m(self): xs: List[int] = [] + + +# Used to trigger W504 +def f( + x: str = ... +): + ... -- cgit v1.2.1