no-first-party-private-import
A first-party consumer imports a private name or private module across its package boundary.
Why
Private imports couple consumers, including white-box tests, to internals instead of a public surface the owning package can maintain.
Fix
Use the owning package's public API. Test public behavior; promote an internal only when it deserves an explicit reusable contract.
Examples
fixturedef _decode(value): return value[project]name = "core"[project]name = "service"from core.helpers import _decodefixturedef decode(value): return value[project]name = "core"[project]name = "service"from core.helpers import decode