I naturally thought adding from __future__ import annotations__ to mypkg/__init__.py makes all modules capable of using future annotations since the __init__.py is always ran, but this is not true.
Is there any way to enable future annotations without having to import it on every module?
__init__.py isn’t included in those other modules, it’s executed as its own module. Thus the imports occur in that module, and don’t affect other modules. You can re-export things back out, but then they just need to be imported into the consuming module under another name, so that wouldn’t provide any real benefit.