Tarek Ziadé avatar Tarek Ziadé committed 13d068a

Fixed the exception scope behavior

Comments (0)

Files changed (5)

     MIT License.
 """
 try:
-    from compiler import parse
-    iter_child_nodes = None
+    from compiler import parse      # NOQA
+    iter_child_nodes = None         # NOQA
 except ImportError:
-    from ast import parse, iter_child_nodes
+    from ast import parse, iter_child_nodes     # NOQA
 
 import optparse
 import sys

flake8/messages.py

             return self.filename < other.filename
         return self.lineno < other.lineno
 
-    def __cmp__(self, other):
-        if self.filename != other.filename:
-            return cmp(self.filename, other.filename)
-        return cmp(self.lineno, other.lineno)
-
 
 class UnusedImport(Message):
     message = '%r imported but unused'

flake8/pyflakes.py

 try:
     import __builtin__      # NOQA
 except ImportError:
-    import builtins as __builtin__
+    import builtins as __builtin__  # NOQA
 
 import os.path
 import _ast
     COMPREHENSION = KEYWORD = handleChildren
 
     def EXCEPTHANDLER(self, node):
+
         if node.name is not None:
-            self.addBinding(node.lineno, FunctionDefinition(node.name, node))
+            self.addBinding(node.lineno, Assignment(node.name, node))
+
+        def runException():
+            for stmt in node.body:
+                self.handleNode(stmt, node)
+
+        self.deferFunction(runException)
 
     def addBinding(self, lineno, value, reportRedef=True):
         '''Called when a binding is altered.
                         and (not isinstance(value, Importation) \
                              or value.fullName == existing.fullName)
                         and reportRedef):
-
                     self.report(messages.RedefinedWhileUnused,
                                 lineno, value.name,
                                 scope[value.name].source.lineno)
             if offset is not None:
                 offset = offset - (len(text) - len(line))
 
-
             sys.stderr.write('%s:%d: %s\n' % (filename, lineno, msg))
             sys.stderr.write(line + '\n')
 

flake8/tests/test_mccabe.py

 try:
     from StringIO import StringIO
 except ImportError:
-    from io import StringIO
+    from io import StringIO     # NOQA
 
 from flake8.mccabe import get_code_complexity
 
     # XXX quick dirty hack, just need to keep the line in the warning
     if not os.path.isfile(warning.filename):
         return False
-    line = open(warning.filename).readlines()[warning.lineno - 1]
+
+    # XXX should cache the file in memory
+    with open(warning.filename) as f:
+        line = f.readlines()[warning.lineno - 1]
+
     return skip_line(line)
 
 
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.