'False Unused Import Statement in PyCharm?
Given this scenario:
b.py:
import A
# A is unused here
c.py:
from b import A
# A is used here
PyCharm complains in b.py that import A is an unused import and Optimize imports deletes it, breaking import in c.py.
I know these chained imports are not a good practice (although you may use it to implement a facade module), but is it me or is it a PyCharm fail?
Solution 1:[1]
You can actually use the PyUnresolvedReferences marker to deactivate the inspection for your import statement:
# noinspection PyUnresolvedReferences
import A
Reference: PyCharm bug PY-2240
Solution 2:[2]
from C import A, B
_ = (A, B); del _
Works for me. I don't like
# noinspection PyUnresolvedReferences
as it would give false negatives in case A cannot be imported. And
__all__ = ['A', 'B', ...]
is cryptic and is not convenient for refactoring.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | benselme |
| Solution 2 |
