[Python-Dev] Showstopper in import?

M.-A. Lemburg mal@lemburg.com
Fri, 02 Feb 2001 11:08:16 +0100

Tim Peters wrote:
> [M.-A. Lemburg]
> > I have already reported this to Jeremy. There are other instances
> > of 'from x import *' in function and class scope too, e.g.
> > some test() functions in the standard dist do this.
> But there are no instances of "from x import *" in the case I reported,
> despite that the error msg (erroneously!) claimed there was.  It's
> complaining about
>     from Percolator import Percolator
> in a class definition.  That smells like a bug, not a debatable design
> choice.

Percolator has "from x import *" code. This is what is causing the
exception. I think it has already been fixed in CVS though, so should
work again.
> > I am repeating myself here, but I think that this single change
> > will cause so many people to find their scripts are failing
> > that it is really not worth it.
> Provided the case above is fixed, IDLE will indeed fail to compile anyway,
> because Guido does
>     from Tkinter import *
> inside several functions.  But that's a different problem.

How is it different ? 

Even though I agree that "from x import *"
is bad style, it is quite common in testing code or code
which imports a set of symbols from generated modules or
modules containing only constants e.g. for protocols, error
codes, etc.
> > Better issue a warning than raise an exception here !
> If Jeremy can't generate correct code, a warning is too weak.

So this is the price we pay for having nested scopes... :-(

Marc-Andre Lemburg
Company:                                        http://www.egenix.com/
Consulting:                                    http://www.lemburg.com/
Python Pages:                           http://www.lemburg.com/python/