PEP 328: Imports: Multi-Line and Absolute/Relative

John Roth newsgroups at jhrothjr.com
Mon Mar 8 20:04:17 EST 2004


"Aahz" <aahz at pythoncraft.com> wrote in message
news:c2ikqo$f3h$1 at panix2.panix.com...
> I'm a bit late with this, but better late than never...

[snip the actual PEP]

I'm cool with the parenthesis and the (eventual) move to
absolute import semantics.

However, I think there is a significant problem with the
relative import: it seems like there's a problem distinguishing
downward and upward references.

I think this is a serious conceptual issue, and I'd
prefer to not support upwards references at all.
That doesn't mean they should be prohibited, but
if someone wants to dig a pit for himself with circular
coupling across module hierarchies, then he should
be required to wield the shovel himself. It is not, after
all, that difficult to sort through sys.modules to figure
out where you are in the import hierarchy.

That leaves references to the current package.
I'm going to suggest an "*" as an indicator for
"this package." The reason for an asterisk is my
background in mainframe assembler: it means "here"
in that language, so I'm obviously not particularly
attached to it. It's also already in use in the "from
foo import *" syntax.

A reference beginning in the current directory is
thus:

import *.spam.eggs

Well, that's my opinion.

John Roth








More information about the Python-list mailing list