
Steve Dower wrote:
So I apologise for mentioning that people care about import performance. Let's ignore them/that issue for now and worry instead about making sure people (including us!) know what the canonical reference for public/internal is.
Good point, the discussion about __all__, adding the @public decorator, and worrying about performance impacts might be jumping too far ahead. For now, if most of the core devs are in agreement with the current unwritten rule of "unless explicitly documented public, all imports are private even if not prefixed with an underscore", I think the first priority should be to document it officially somewhere. That way, other developers and any potential confused users can be referred to it. It might not be the best long term solution, but it would require no code changes to be made and provide a written canonical reference for differentiating public vs private. I'm not certain as to where the most appropriate location for the rule would be, let me know if anyone has any suggestions.