summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhil Frost <indigo@bitglue.com>2015-08-28 20:48:12 -0400
committerPhil Frost <indigo@bitglue.com>2015-08-28 20:48:12 -0400
commitada6797176ad63ba720df400f7690db1053a2e60 (patch)
tree0667195c379cf45e67d782c3e5d2699fe7db2410
parentc2086d643a519ce2eb1c266b4cf1550755b75d73 (diff)
parentad8e83db81c054152ae931ad9c8d3148b4171972 (diff)
downloadpyflakes-ada6797176ad63ba720df400f7690db1053a2e60.tar.gz
Merge pull request #27 from ryneeverett/used-global-import
Don't report UnusedImport when binding global name
-rw-r--r--pyflakes/checker.py7
-rw-r--r--pyflakes/test/test_imports.py10
2 files changed, 14 insertions, 3 deletions
diff --git a/pyflakes/checker.py b/pyflakes/checker.py
index ddbd43b..e6e1942 100644
--- a/pyflakes/checker.py
+++ b/pyflakes/checker.py
@@ -448,6 +448,10 @@ class Checker(object):
elif isinstance(existing, Importation) and value.redefines(existing):
existing.redefined.append(node)
+ if value.name in self.scope:
+ # then assume the rebound name is used as a global or within a loop
+ value.used = self.scope[value.name].used
+
self.scope[value.name] = value
def getNodeHandler(self, node_class):
@@ -526,9 +530,6 @@ class Checker(object):
binding = ExportBinding(name, node.parent, self.scope)
else:
binding = Assignment(name, node)
- if name in self.scope:
- # then assume the rebound name is used as a global or within a loop
- binding.used = self.scope[name].used
self.addBinding(node, binding)
def handleNodeDelete(self, node):
diff --git a/pyflakes/test/test_imports.py b/pyflakes/test/test_imports.py
index 077a728..6cd0ec5 100644
--- a/pyflakes/test/test_imports.py
+++ b/pyflakes/test/test_imports.py
@@ -525,6 +525,16 @@ class Test(TestCase):
def g(): foo.is_used()
''')
+ def test_assignedToGlobal(self):
+ """
+ Binding an import to a declared global should not cause it to be
+ reported as unused.
+ """
+ self.flakes('''
+ def f(): global foo; import foo
+ def g(): foo.is_used()
+ ''')
+
@skipIf(version_info >= (3,), 'deprecated syntax')
def test_usedInBackquote(self):
self.flakes('import fu; `fu`')