Sorry Andrew. I wasn't paying careful enough attention to what John was
saying and have a different idea of what numerix should evolve into: a
simple numarray/Numeric switcher which provides "normalized" access to
the standard packages. If multiple namespaces are combined, that's OK
as long as we don't inject new behavior which defeats numerix's role as
a Numeric replacement. In the general sense, the purpose of numerix is
to make Numeric software available for numarray users. Fairly soon I
think we're going to want to factor it out of matplotlib and use it in
other places.
I agree with John that numerix is not completely a simple switcher now,
but I think that's where it needs to head. Whatever short term solution
is chosen for min,max,etc... isn't that big a deal.
Regards,
Todd
On Thu, 2005-01-20 at 15:41, Andrew Straw wrote:
> OK, let's get this straight. The situation as it stands:
>
> Currently in CVS is an implementation such that "from pylab import *"
> does not override builtins. I think we all agree that this is the right
> behavior. The question is now the implementation. (The code I checked
> in simply restores of pylab's names to the builtins. e.g. in the
> pylab.py: "min = __builtin__.min")
>
> John suggests moving my "solution" (I prefer to think of it as a
> band-aid, curing the symptom, but not the cause) up the chain to
> numerix, such that numerix.min = __builtin__.min (same for max, etc).
> Additionally, he suggests bringing a few more names into existence such
> that numerix.nxmin = mlab.min (same again for max, etc). I have no
> problem with this, but Todd "we should keep numerix compatible with
> Numeric" Miller does, and I can see he has a valid point. Thus, I see
> no easy resolution which is of little consequence to those of us who do
> not use numerix in our code.
>
> Since I am personally quite busy with other stuff, and I don't see a
> clear consensus of this numerix issue, which is secondary to my initial
> gripe regarding pylab. I am disinclined to do anything more at this
> point. I will hereby let someone who cares more than I do about numerix
> take it from here.
>
> For the record, I agree with everyone that "from blah import *" is a bad
> idea. However, pylab is special and thus deserves special attention.
> Partly this is because John, Fernando, and others have spent many hours
> making sure it plays well in IPython, resulting in IPython's pylab mode
> being the best Python interactive scientific plotting solution.
> Personally, I agree with Fernando's decision to do a "from pylab import
> *" in ipython -pylab because it enables rapid, interactive data
> exploration. (Besides which, it freakin' rocks!! :)
>
> Given ipython -pylab is my most frequently used interactive Python, I
> want min/max/etc to be the builtin functions (especially since I tend to
> do "run -i blah.py" from IPython a lot, which thus inherit names,
> including min and max, from ipython's interactive namespace).
>
> Also, I am still intrigued by Norbert's suggestion to change Python
> itself to eliminate this mess, but I don't have the time to deal with
> it. Furthermore, even if someone did step up to the plate, this is a
> longer term solution, and we'd still need a "band-aid" for the immediate
> term.
>
> Getting back to my day job now,
> Andrew
|