diff options
author | Marc Mueller <30130371+cdce8p@users.noreply.github.com> | 2021-05-03 00:35:11 +0200 |
---|---|---|
committer | Marc Mueller <30130371+cdce8p@users.noreply.github.com> | 2021-05-03 01:56:28 +0200 |
commit | c098297fa5154fd18f81ae97feb06e84b0f6ba15 (patch) | |
tree | 50da82b08ffeb3fd3bf4e7a76d259ed25b3771e0 /pycodestyle.py | |
parent | 3d0ac73d8045b5fa771dbbf594ca0b9a4e581e15 (diff) | |
download | pep8-c098297fa5154fd18f81ae97feb06e84b0f6ba15.tar.gz |
Add whitespace checks for match and case
Diffstat (limited to 'pycodestyle.py')
-rwxr-xr-x | pycodestyle.py | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/pycodestyle.py b/pycodestyle.py index 0f2f078..abadf6e 100755 --- a/pycodestyle.py +++ b/pycodestyle.py @@ -163,6 +163,7 @@ STARTSWITH_INDENT_STATEMENT_REGEX = re.compile( ))) ) DUNDER_REGEX = re.compile(r'^__([^\s]+)__ = ') +MATCH_CASE_REGEX = re.compile(r'^\s*\b(?:match|case)(\s*)(?=.*\:)') _checks = {'physical_line': {}, 'logical_line': {}, 'tree': {}} @@ -513,6 +514,32 @@ def missing_whitespace_after_import_keyword(logical_line): @register_check +def missing_whitespace_after_match_case(logical_line): + r"""Check whitespace after 'match' and 'case'. + + Python 3.10 + Okay: match status: + E271: match status: + E271: case\tstatus: + E271: case _: + E275: matchstatus: + E275: casestatus: + E275: case_: + """ + if sys.version_info < (3, 10): + return + match = MATCH_CASE_REGEX.match(logical_line) + if match: + whitespace = match.groups()[0] + if whitespace == ' ': + return + if whitespace == '': + yield match.start(1), "E275 missing whitespace after keyword" + else: + yield match.start(1), "E271 multiple spaces after keyword" + + +@register_check def missing_whitespace(logical_line): r"""Each comma, semicolon or colon should be followed by whitespace. |