Nick Coghlan added the comment: I would title the new section "Import system" rather than "Import machinery" as it is meant to be a specification documentation rather than an implementation description.
Import statement: The statement that "from X import A" only performs a single import lookup is incorrect. The trick is that if A, B or C refers to a submodule of X then it will be imported. I'll use a couple of examples from the logging package to make this clear: # Attribute access will fail for submodules that haven't been imported yet >>> import logging >>> logging.DEBUG 10 >>> logging.handlers Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: 'module' object has no attribute 'handlers' # Direct imports will fail for attributes that are not submodules >>> import logging.DEBUG Traceback (most recent call last): File "<stdin>", line 1, in <module> ImportError: No module named 'logging.DEBUG' >>> import logging.handlers # From imports check for an existing attribute first, but check for a submodule if the attribute is missing >>> del sys.modules["logging"] >>> del sys.modules["logging.handlers"] >>> from logging import DEBUG >>> from logging import handlers Aside from this flaw, the new content in the import statement looks good. More on the import system section in a subsequent comment. ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue15295> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com