Nick Coghlan added the comment:

cx-freeze feedback is better added to issue 20884 - I currently still suspect 
that 3.4 has just uncovered some latent spec non-compliance in the cx-freeze 
import system emulation (although I need to investigate further to be sure, 
since it's also possible we accidentally broke backwards compatibility with 
certain kinds of legacy behaviour when implementing PEP 451).

For this issue, I don't think os.path can be used as a precedent - "os" isn't a 
package, and "os.path" isn't a normal submodule (instead, the os module does a 
dance to figure out which top level module to import as path - it's usually 
either ntpath or posixpath).

Instead, this is just normal submodule import behaviour - "import collections" 
doesn't necessarily imply "import collections.abc", it just used to do so 
because that was how the backwards compatibility for the old names happened to 
be implemented.

Setting the attribute would also shadow the submodule, which would be a little 
weird (since collections.abc could then refer to either that module or to 
_collections_abc). Really, the change to collections/__init__.py could just be 
reverted - the _collections_abc move was just to avoid running 
collections/__init__.py at startup, so there's no need to use the hack inside 
collections/__init__.py itself.

----------
nosy: +ncoghlan

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue20784>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to