I guess this is a bug in pycharm. PyCharm exhibits to be expecting the referenced module to be added in an
__all__ =  statement.
For precise coding etiquette, must you include the
__all__ statement from your modules? this is really the question we hear young Spock answering while he was being tested, to which he responded: "It is morally praiseworthy however not morally obligatory."
To get around it, you can easily disable that (highly helpfulful) inspection globally, or inhibit it for the earmarked function or statement.
To do so:
Place the caret over the erroring text ('choice', from your example above)
Educate the intention menu (alt-enter by default, mine is set to alt-backspace)
Press the right arrow to open the submenu, and choose the relevant action
PyCharm has its share of small bugs like this, however in my view its benefits far outweigh its drawbacks. In case you'd like to attempt another good IDE, there's also Spyder/Spyderlib.
I know this is quite a bit after you asked your question, however I hope this helps.
Edited: Generally, I conceived that this was earmarked to checking
__all__, however it seems like it's the more general 'Unresolved References' check, which can be very helpful. It's likely best to employ statement-level disabling of the feature, either by employing the menu as mentioned above, or by earmarked
# noinspection PyUnresolvedReferences on the line preceding the statement.
You must first take a look at this. This interprets what occurs at the time you import a package. For convenience:
The import statement conduct the following convention: in case a package’s
__init__.py code defines a list named
__all__, it is taken to be the list of module names that must be imported when
from package import * is encountered. It is up to the package author to keep this list up-to-date at the time a fresh version of the package is released. Package authors may also fix not to support it, in case they don’t see a use for importing * from their package.
Hence PyCharm respects this by displaying a warning message, so that the author can decide which of the modules get imported when * from the package is imported. Thus this appears to be helpful property of PyCharm (and in no way can it be named a bug, I suppose). You can simply remove this warning by including the names of the modules to be imported at the time your package is imported in the
__all__ variable which is list, like this
from . import MyModule1, MyModule2, MyModule3
__all__ = [MyModule1, MyModule2, MyModule3]
Afterwards you include this, you can
ctrl+click on these module names used in any other part of your project to directly jump to the declaration, which I often find very helpful.