[Python-Dev] Re: PEP 328 -- relative and multi-line import

Aahz aahz at pythoncraft.com
Sat Apr 3 09:50:51 EST 2004


On Sat, Apr 03, 2004, David Goodger wrote:
> 
> I have Aahz's revision ready to check in, but I'm unclear on one
> point.  Is the accepted/pronounced relative import syntax dots only,
> or can there be a branch too?  In other words, is the "Y" here
> acceptable (where Y is a sibling to the current module's package)?
> 
>     from ..Y import X
> 
> I think the PEP needs a clear statement (and examples) of which syntax
> **and semantics** have been chosen.

Good point.  Here's what I *think* the semantics are; as soon as I get
agreement, I'll update the PEP.  Given a package layout::

    package
        subpackage1
            moduleX
            moduleY
        subpackage2
            moduleZ
        moduleA

Each leading "." refers to one level of parent.  Assuming that the
current file is ``moduleX.py``, following are correct usages of the new
syntax::

    from .moduleY import spam
    from ..subpackage1 import moduleY
    from ..subpackage2.moduleZ import eggs
    from ..moduleA import foo
    from ...package import bar

Actually, I believe that this is the only possible useful semantic; I
would welcome clear reasoning for another semantic.

Here's a question.  Should the following be legal? ::

    from ...sys import path

If not, do we test for it?  What kind of error do we raise?
-- 
Aahz (aahz at pythoncraft.com)           <*>         http://www.pythoncraft.com/

"usenet imitates usenet"  --Darkhawk



More information about the Python-Dev mailing list