On Sun, Jan 17, 2021 at 7:33 AM Larry Hastings <larry@hastings.org> wrote:
If your imports are complicated, you could always hide them in a function.  I just tried this and it seems to work fine:

def my_imports():
    global other_mod
    import other_mod

So, you could put all your imports in such a function, run it from inside a "if typing.TYPE_CHECKING" block, and you'd have a convenient way of doing all your imports from inside IPython too.


But static type checkers won't understand such imports. (Or is this about annotations used for other purposes? Then I suppose it's fine, but only as long as you completely give up static type checks for modules that use this idiom.)

--
--Guido van Rossum (python.org/~guido)