Import 'filename'? (was Re: Cross-reference 'import' in a classhierarchy)

Chris Reedy creedy at mitretek.org
Wed Apr 9 10:05:28 EDT 2003


Greg Ewing (using news.cis.dfn.de) wrote:
> Chris Reedy wrote:
> 
>> I had to think about this one for a while. Here's the issue I see:
>>
>> What exactly does import '../foo/ook.py' actual do?
> 
> 
> You're being distracted by a red herring, I think. What
> I took the original post to mean was doing the equivalent
> thing in the Python module namespace, not the file
> system namespace.

You may be right. Thinking about this in the module namespace makes this 
seem better.

> Some suitable syntax would need to be devised,
> perhaps
> 
>   import ..foo.ook
> 
> although I'm not sure how you would refer to the
> imported module after that... maybe an "as" clause
> should be mandatory in this case?

There was a suggestion made in an old e-mail for something like __root__ 
or maybe __parent__ meaning the parent module of this one. So you would 
say something like:

   import __root__.foo.ook

I think that would have to be backed up by globals, something like 
__root__ or __parent__ referring to the parent of this module and maybe 
__self__ (or __this__ or __module__ or ...) which would refer to the 
current module. This would allow you do to things like:

   import __root__.foo.ook
   __root__.foo.ook.f()

Otherwise, I think you're right, an "as" clause would be mandatory.

> If you want to work in the file system namespace, you
> can already do that:
> 
>   ook = __import__("../foo/ook.py")
> 
>> Based on some reading in the email archives, there is clearly a desire 
>> (maybe a mandate by the BDFL) that some sort of correspondence be 
>> guaranteed to exist between the above four definitions (especially 1, 
>> 2, and 3).
> 
> 
> I sometimes wonder whether the Python module namespace and
> the file system should be one and the same thing. I certainly
> believe that PYTHONPATH is a mistake -- the environment required
> for a program to function correctly is a property of the program
> itself, not of the user's personal settings.

I don't like the idea of working in the file system namespace. I 
observed a whole discussion on the GCC mailing list of when (in an os 
independent fashion) two files are "the same". I remember a discussion 
of looking at things like inodes. I don't remember any resolution. I 
don't find myself that unhappy with PYTHONPATH.

> Something better is needed, I'm just not sure exactly what
> yet.

Agreed.

-- 
This is informal and not an official Mitretek Systems position.
Dr. Christopher L. Reedy, Senior Principal Software Engineer
Mitretek Systems, 3150 Fairview Park Drive South, Falls Church, VA 
22042-4519
Email: creedy at mitretek.org  Phone: (703) 610-1615  FAX: (703) 610-2203



-----------== Posted via Newsfeed.Com - Uncensored Usenet News ==----------
   http://www.newsfeed.com       The #1 Newsgroup Service in the World!
-----= Over 100,000 Newsgroups - Unlimited Fast Downloads - 19 Servers =-----




More information about the Python-list mailing list