Hi all,
I would like to propose a potential addition to Python’s import
syntax that would improve clarity and ergonomics for cases where developers want both full module access and a local alias to a specific attribute within that module.
Currently, to get both behaviors, we typically write:
import module
optimize = module.optimize
This works fine, but it is slightly verbose and less explicit in intent.
I would like to explore syntax like:
import module with module.optimize as optimize
or possibly:
import module with (
module.optimize as optimize,
module.validate as check
)
The goal is to import the full module as usual, while simultaneously assigning a local name to a chosen sub-attribute all in a single declaration.
This strikes a balance between:
Readability (makes intensions clearer)
Convenience (avoids repetitive alias assignments)
Maintainability (discourages from module import *
)
I am curious to hear whether this type of syntax has been considered before, or if it might be worth formalizing into a PEP. I would be happy to help develop a draft proposal if there is interest.
Thank you for reading.
-Omar