False Unused Import Statement in PyCharm?
You can actually use the PyUnresolvedReferences
marker to deactivate the inspection for your import statement:
# noinspection PyUnresolvedReferences
import A
Reference: PyCharm bug PY-2240
As far as I can tell this behaviour is not handled as an inspection or some other configurable option, which means there is no #noinspection UnusedImport
(or equivalent) that can be placed before the imports.
If you don't want to define an unused block where you use those variables there's an other simple and probably better way to achieve what you want:
#b.py code
import A
# [...] your code
__all__ = ['A', ...] # *all* the names you want to export
PyCharm is smart enough to look at __all__
and avoid removing A
as unused import.
However there's a limitation that __all__
must be a simple list literal. You cannot do things like:
__all__ = ['A'] + [name for name in iterable if condition(name)]
Not even:
x = 'b'
__all__ = ['A', x]
Defining __all__
is a best-practice to make your module *
-import safe anyway, so is something you should already do.