On Wed, Oct 16, 2013 at 01:26:11PM -0300, Facundo Batista <facundobati...@gmail.com> wrote: > (all this using Python 3.4.0a3+) > > In the stdlib, I see that (as an example): > > >>> import os > >>> os.path.abspath > <function abspath at 0xb7123734> > >>> os.path > <module 'posixpath' from '/.../python/trunk/Lib/posixpath.py'> > > > However, for other (newer) modules: > > >>> import urllib > >>> urllib.requests.urlopen > Traceback (most recent call last): > File "<stdin>", line 1, in <module> > AttributeError: 'module' object has no attribute 'requests' > >>> import concurrent > >>> concurrent.futures > Traceback (most recent call last): > File "<stdin>", line 1, in <module> > AttributeError: 'module' object has no attribute 'futures' > > > So, is there a reason to not expose the submodules in the top module? > This should be fixed?
I don't think it should be fixed. To expose submodules automatically top-level modules have to import them. In case one only needs a couple of submodules (and without lazy import) importing all of them would be a waste of time and memory. Module os.path is a special kind of module. On import os imports a platform-dependent module (posixpath, ntpath) and exposes it as os.path. Oleg. -- Oleg Broytman http://phdru.name/ p...@phdru.name Programmers don't die, they just GOSUB without RETURN. _______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com