I\'m working with a project that contains about 30 unique modules. It wasn\'t designed too well, so it\'s common that I create circular imports when adding some new function
import uses __builtin__.__import__(), so if you monkeypatch that then every import everywhere will pick up the changes. Note that a circular import is not necessarily a problem though.