Spyder IDE complaining about unable to detect undefined names
Your IDE is complaining, not Python. When you do from simple import *
, you import everything exposed by simple
. This is typically not recommended because it pollutes the global namespace and may implicitly overwrite an existing object.
You get a warning instead of an error because this behavior is not always bad. Having an __init__.py
file that exposes objects from sub-modules is a very common pattern. As long as you understand the potential risks, just silence the warning:
from .input import * # NOQA
If your modules don't expose many objects, just import them by name:
from .input import A, B, C
This has the benefit of allowing Python code analysis tools to better understand your code and warn you of potential issues.