[Python-ideas] Allow multiple imports from a package while preserving its namespace

Nick Coghlan ncoghlan at gmail.com
Thu Apr 26 09:51:08 EDT 2018


On 26 April 2018 at 23:37, Paul Moore <p.f.moore at gmail.com> wrote:
> On 26 April 2018 at 14:29, Julian DeMille via Python-ideas
> <python-ideas at python.org> wrote:
>> I personally would like a feature where instead of doing `from ... import
>> ...` (which imports the specified items into the current namespace), one
>> could use something along the lines of `import <lib>.{ <mod1>, <mod2>, ...
>> }` such that the imported modules/attributes could be accessed as
>> `<lib>.<mod1>`, etc.
>
> What are the benefits of this over a simple "import <lib>"?

Forcing submodule imports would be the main thing, as at the moment,
you have to choose between repeating the base name multiple times
(once per submodule) or losing the hierarchical namespace.

So where:

    from pkg import mod1, mod2, mod3

bind "mod1", "mod2", and "mod3" in the current namespace, you might
instead write:

    from pkg import .mod1, .mod2, .mod3

to only bind "pkg" locally, but still make sure "pkg.mod1", "pkg.mod2"
and "pkg.mod3" all resolve at import time.

Cheers,
Nick.

-- 
Nick Coghlan   |   ncoghlan at gmail.com   |   Brisbane, Australia


More information about the Python-ideas mailing list