diff options
author | Eric Cousineau <eric.cousineau@tri.global> | 2019-01-30 10:27:12 -0500 |
---|---|---|
committer | Eric Cousineau <eric.cousineau@tri.global> | 2019-01-30 12:14:32 -0500 |
commit | 1f8d5ca1a1ede54e6d7b67693b36b209b940573c (patch) | |
tree | 2dfe2912b54fe517af82fe09e0821601e32fb55a | |
parent | ac1c5e579c840e20544e9d65dbcebc1ecd9bf796 (diff) | |
download | pep8-1f8d5ca1a1ede54e6d7b67693b36b209b940573c.tar.gz |
E402: Add "with" statement to allowed keywords
-rwxr-xr-x | pycodestyle.py | 8 | ||||
-rw-r--r-- | testsuite/E40.py | 6 |
2 files changed, 10 insertions, 4 deletions
diff --git a/pycodestyle.py b/pycodestyle.py index 0ecd7fd..278bf12 100755 --- a/pycodestyle.py +++ b/pycodestyle.py @@ -1067,7 +1067,7 @@ def module_imports_on_top_of_file( line = line[1:] return line and (line[0] == '"' or line[0] == "'") - allowed_try_keywords = ('try', 'except', 'else', 'finally') + allowed_keywords = ('try', 'except', 'else', 'finally', 'with') if indent_level: # Allow imports in conditional statement/function return @@ -1081,9 +1081,9 @@ def module_imports_on_top_of_file( yield 0, "E402 module level import not at top of file" elif re.match(DUNDER_REGEX, line): return - elif any(line.startswith(kw) for kw in allowed_try_keywords): - # Allow try, except, else, finally keywords intermixed with - # imports in order to support conditional importing + elif any(line.startswith(kw) for kw in allowed_keywords): + # Allow certain keywords intermixed with imports in order to + # support conditional or filtered importing return elif is_string_literal(line): # The first literal is a docstring, allow it. Otherwise, report diff --git a/testsuite/E40.py b/testsuite/E40.py index f9a18fc..6d123b1 100644 --- a/testsuite/E40.py +++ b/testsuite/E40.py @@ -34,6 +34,12 @@ finally: print('made attempt to import foo') import bar +#: Okay +with warnings.catch_warnings(): + warnings.filterwarnings("ignore", DeprecationWarning) + import foo + +import bar #: E402 VERSION = '1.2.3' |