diff options
author | Phil Frost <indigo@bitglue.com> | 2015-08-28 20:48:12 -0400 |
---|---|---|
committer | Phil Frost <indigo@bitglue.com> | 2015-08-28 20:48:12 -0400 |
commit | ada6797176ad63ba720df400f7690db1053a2e60 (patch) | |
tree | 0667195c379cf45e67d782c3e5d2699fe7db2410 | |
parent | c2086d643a519ce2eb1c266b4cf1550755b75d73 (diff) | |
parent | ad8e83db81c054152ae931ad9c8d3148b4171972 (diff) | |
download | pyflakes-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.py | 7 | ||||
-rw-r--r-- | pyflakes/test/test_imports.py | 10 |
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`') |