The problem isn't that flake8 (or more accurately, pyflakes) cannot detect swampy, it's that by importing *, pyflakes through purely static analysis will not be able to tell you when you have unused imports because the symbols imported are not in the text. PyFlakes will not introspect anything on your python path to determine symbols used or anything else like that because that could become computationally expensive. If you want PyFlakes to stop issuing this warning, you should do
from swampy.TurtleWorld import thefunction, theotherfunction, ThisClass, ThatOtherClass
Depending on what you need from it. Alternatively, just import the submodule like
from swampy import TurtleWorld
And use qualified references to the functions/classes that are inside it.