From 2ba836ad18168b9ba3f0d53273da217a9e4d1bb9 Mon Sep 17 00:00:00 2001 From: John Vandenberg Date: Wed, 4 May 2016 14:05:02 +0700 Subject: [PATCH] Bidirectional submodule import exception --- pyflakes/checker.py | 2 ++ pyflakes/test/test_imports.py | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/pyflakes/checker.py b/pyflakes/checker.py index 5ff14800..91e80cb9 100644 --- a/pyflakes/checker.py +++ b/pyflakes/checker.py @@ -142,6 +142,8 @@ def __init__(self, name, source, full_name=None): super(Importation, self).__init__(name, source) def redefines(self, other): + if isinstance(other, SubmoduleImportation): + return self.fullName == other.fullName return isinstance(other, Definition) and self.name == other.name def _has_alias(self): diff --git a/pyflakes/test/test_imports.py b/pyflakes/test/test_imports.py index 41a0e07b..9cbd4d7c 100644 --- a/pyflakes/test/test_imports.py +++ b/pyflakes/test/test_imports.py @@ -767,6 +767,12 @@ def test_used_package_with_submodule_import(self): fu.x ''') + self.flakes(''' + import fu.bar + import fu + fu.x + ''') + def test_unused_package_with_submodule_import(self): """ When a package and its submodule are imported, only report once.