summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnthony Sottile <asottile@umich.edu>2021-10-05 15:42:55 -0700
committerGitHub <noreply@github.com>2021-10-05 15:42:55 -0700
commit174ec0231955ba99cc2fdf48e61064b3f95c959c (patch)
tree14a0c77179f5e589f21240abf86f9f6e0c20bcd0
parent7046878584b5e7fb08ad3317505285957eb0cbc1 (diff)
parent696170927b2723ce390d011d5d1af34e914e61b8 (diff)
downloadpep8-174ec0231955ba99cc2fdf48e61064b3f95c959c.tar.gz
Merge pull request #1003 from cdce8p/e225-star-pattern
Fix false-positive with star pattern
-rwxr-xr-xpycodestyle.py9
-rw-r--r--testsuite/python310.py15
2 files changed, 22 insertions, 2 deletions
diff --git a/pycodestyle.py b/pycodestyle.py
index 1d98dce..cc1720e 100755
--- a/pycodestyle.py
+++ b/pycodestyle.py
@@ -965,8 +965,13 @@ def missing_whitespace_around_operator(logical_line, tokens):
# Check if the operator is used as a binary operator
# Allow unary operators: -123, -x, +1.
# Allow argument unpacking: foo(*args, **kwargs).
- if (prev_text in '}])' if prev_type == tokenize.OP
- else prev_text not in KEYWORDS):
+ if prev_type == tokenize.OP and prev_text in '}])' or (
+ prev_type != tokenize.OP and
+ prev_text not in KEYWORDS and (
+ sys.version_info < (3, 9) or
+ not keyword.issoftkeyword(prev_text)
+ )
+ ):
need_space = None
elif text in WS_OPTIONAL_OPERATORS:
need_space = None
diff --git a/testsuite/python310.py b/testsuite/python310.py
index e78d372..8cd98f2 100644
--- a/testsuite/python310.py
+++ b/testsuite/python310.py
@@ -7,6 +7,21 @@ match (var, var2):
pass
case _:
print("Default")
+#: Okay
+var = 0, 1, 2
+match var:
+ case *_, 1, 2:
+ pass
+ case 0, *_, 2:
+ pass
+ case 0, 1, *_:
+ pass
+ case (*_, 1, 2):
+ pass
+ case (0, *_, 2):
+ pass
+ case (0, 1, *_):
+ pass
#: E271:2:6 E271:3:9 E271:5:9 E271:7:9
var = 1
match var: