diff options
author | Anthony Sottile <asottile@umich.edu> | 2021-10-05 15:42:55 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-10-05 15:42:55 -0700 |
commit | 174ec0231955ba99cc2fdf48e61064b3f95c959c (patch) | |
tree | 14a0c77179f5e589f21240abf86f9f6e0c20bcd0 | |
parent | 7046878584b5e7fb08ad3317505285957eb0cbc1 (diff) | |
parent | 696170927b2723ce390d011d5d1af34e914e61b8 (diff) | |
download | pep8-174ec0231955ba99cc2fdf48e61064b3f95c959c.tar.gz |
Merge pull request #1003 from cdce8p/e225-star-pattern
Fix false-positive with star pattern
-rwxr-xr-x | pycodestyle.py | 9 | ||||
-rw-r--r-- | testsuite/python310.py | 15 |
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: |