Hmm, we may wish to do a recursion check instead of turning off the searching of all of the parent packages. That said, since Python 3 doesn't do this any longer and the emphasis is on absolute imports (and well defined relative imports) maybe we can use this workaround and suggest that anyone depending on the old behavior should get that changed? Thoughts?
Unless I'm missing something, the old behaviour was simply erroneous: implicit relative imports on Python 2 don't search parent packages: they search in the current package, and then go to search sys.path like an absolute import. That's what my sample above in the PR description aims to demonstrate. As far as I know, if foo.bar.b wants to import foo.a, it either has to do it absolutely (from foo import a) or with an explicit relative import (from .. import a).
So I don't think anyone can have been relying on the old behaviour.