Because __all__
's intention has nothing to do with privacy (it is not a limit on what is exported, it is a tool to delimit wildcard importing) no tool in the Python ecosystem exists that takes that interpretation and tracks usage of names that are not listed in __all__
.
In other words; __all__
was never intended as a means to bless only parts of the exported names as public, just as _name
leading underscores are just private by convention and not enforced.