Plugins/CheckerPlugins/CodeStyleChecker/pycodestyle.py

changeset 5435
44a6fc2828bc
parent 5389
9b1c800daff3
child 5509
d4c4763b46ee
--- a/Plugins/CheckerPlugins/CodeStyleChecker/pycodestyle.py	Fri Jan 20 18:46:09 2017 +0100
+++ b/Plugins/CheckerPlugins/CodeStyleChecker/pycodestyle.py	Fri Jan 20 18:55:28 2017 +0100
@@ -79,7 +79,7 @@
 except ImportError:
     from ConfigParser import RawConfigParser            # __IGNORE_WARNING__
 
-__version__ = '2.1.0-eric'
+__version__ = '2.2.0-eric'
 
 DEFAULT_EXCLUDE = '.svn,CVS,.bzr,.hg,.git,__pycache__,.tox'
 DEFAULT_IGNORE = 'E121,E123,E126,E226,E24,E704,W503'
@@ -926,8 +926,11 @@
     Okay: # this is a comment\nimport os
     Okay: '''this is a module docstring'''\nimport os
     Okay: r'''this is a module docstring'''\nimport os
-    Okay: try:\n    import x\nexcept:\n    pass\nelse:\n    pass\nimport y
-    Okay: try:\n    import x\nexcept:\n    pass\nfinally:\n    pass\nimport y
+    Okay:  
+    try:\n\timport x\nexcept ImportError:\n\tpass\nelse:\n\tpass\nimport y
+    Okay:  
+    try:\n\timport x\nexcept ImportError:\n\tpass\nfinally:\n\tpass\nimport y
+    
     E402: a=1\nimport os
     E402: 'One string'\n"Two string"\nimport os
     E402: a=1\nfrom sys import x
@@ -1196,6 +1199,22 @@
         yield match.start(), "E721 do not compare types, use 'isinstance()'"
 
 
+def bare_except(logical_line, noqa):
+    r"""When catching exceptions, mention specific exceptions whenever possible.
+
+    Okay: except Exception:
+    Okay: except BaseException:
+    E722: except:
+    """
+    if noqa:
+        return
+
+    regex = re.compile(r"except\s*:")
+    match = regex.match(logical_line)
+    if match:
+        yield match.start(), "E722 do not use bare except'"
+
+
 def ambiguous_identifier(logical_line, tokens):
     r"""Never use the characters 'l', 'O', or 'I' as variable names.
 

eric ide

mercurial