<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="Generator" CONTENT="MS Exchange Server version 6.5.7650.28">
<TITLE>[Enthought-dev] Control of names in the Pylab interactive namespace</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/plain format -->

<P><FONT SIZE=2>I'm going to be giving an Introduction to Python presentation to a number<BR>
of engineering colleagues next week. I'll be demonstrating the capabilities<BR>
of Pylab and recommending the EPD as the best way to install all of the<BR>
required packages.<BR>
<BR>
My questions are: where do I need to start looking for what happens when<BR>
IPython is called with the -pylab flag? Or how do I control which names<BR>
are included / excluded from the interactive namespace? My first example<BR>
was partly intended to show how useful the &quot;whos&quot; function is, but failed!<BR>
The Pylab sessions below demonstrate the problem.<BR>
<BR>
I have epd_py25-4.0.30002_beta3-win32-x86.msi installed and was a little<BR>
surprised by the empty namespace (using whos) after trying the following<BR>
example:<BR>
<BR>
Enthought Python Distribution (4.0.30001) -- <A HREF="http://code.enthought.com">http://code.enthought.com</A><BR>
Python 2.5.2 |EPD 4.0.3.0001| (r252:60911, Sep 18 2008, 17:54:39)<BR>
IPython 0.9.1 -- An enhanced Interactive Python.<BR>
<BR>
In [1]: def f (x, a, b, c):<BR>
&nbsp;&nbsp; ...:&nbsp;&nbsp;&nbsp;&nbsp; &quot;&quot;&quot;Quadratic function&quot;&quot;&quot;<BR>
&nbsp;&nbsp; ...:&nbsp;&nbsp;&nbsp;&nbsp; return a*x**2 + b*x + c<BR>
&nbsp;&nbsp; ...:<BR>
<BR>
In [2]: x = arange(-5, 5.1, 0.5)<BR>
<BR>
In [3]: x<BR>
Out[3]:<BR>
array([-5. , -4.5, -4. , -3.5, -3. , -2.5, -2. , -1.5, -1. , -0.5,&nbsp; 0. ,<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.5,&nbsp; 1. ,&nbsp; 1.5,&nbsp; 2. ,&nbsp; 2.5,&nbsp; 3. ,&nbsp; 3.5,&nbsp; 4. ,&nbsp; 4.5,&nbsp; 5. ])<BR>
<BR>
In [4]: f(x,1,2,3)<BR>
Out[4]:<BR>
array([ 18.&nbsp; ,&nbsp; 14.25,&nbsp; 11.&nbsp; ,&nbsp;&nbsp; 8.25,&nbsp;&nbsp; 6.&nbsp; ,&nbsp;&nbsp; 4.25,&nbsp;&nbsp; 3.&nbsp; ,&nbsp;&nbsp; 2.25,<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2.&nbsp; ,&nbsp;&nbsp; 2.25,&nbsp;&nbsp; 3.&nbsp; ,&nbsp;&nbsp; 4.25,&nbsp;&nbsp; 6.&nbsp; ,&nbsp;&nbsp; 8.25,&nbsp; 11.&nbsp; ,&nbsp; 14.25,<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 18.&nbsp; ,&nbsp; 22.25,&nbsp; 27.&nbsp; ,&nbsp; 32.25,&nbsp; 38.&nbsp; ])<BR>
<BR>
In [5]: whos<BR>
Interactive namespace is empty.<BR>
<BR>
In a new Pylab session, I discovered that both f and x are already defined<BR>
during Pylab's initialisation, and presumably this is why they are excluded<BR>
from the interactive namespace:<BR>
<BR>
In [1]: [name for name in dir() if len(name)==1]<BR>
Out[1]: ['_', 'e', 'f', 'x']<BR>
<BR>
In [2]: e<BR>
Out[2]: 2.7182818284590451<BR>
<BR>
In [3]: f<BR>
Out[3]: &lt;built-in method f of mtrand.RandomState object at 0x00A6A310&gt;<BR>
<BR>
In [4]: x<BR>
Out[4]: 'symlog'<BR>
<BR>
In [5]: f?<BR>
Type:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; builtin_function_or_method<BR>
Base Class:&nbsp;&nbsp;&nbsp;&nbsp; &lt;type 'builtin_function_or_method'&gt;<BR>
String Form:&nbsp;&nbsp;&nbsp; &lt;built-in method f of mtrand.RandomState object at 0x00A6A310&gt;<BR>
Namespace:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Interactive<BR>
Docstring:<BR>
&nbsp;&nbsp;&nbsp; F distribution.<BR>
f(dfnum, dfden, size=None) -&gt; random values<BR>
<BR>
I would like to find a way to put 'f' and 'x' back into the interactive<BR>
namespace, or find out where they are brought into the excluded namespace<BR>
so that I can try to fix the problem there.<BR>
<BR>
More generally, if a name is exluded from the interactive namespace and is<BR>
then defined interactively, could this name be made to appear once again in<BR>
the interactive namespace?<BR>
<BR>
Thanks,<BR>
Gareth.<BR>
</FONT>
</P>


<DIV><P><HR>
-------------------------------------------------------------<BR>
IMPORTANT NOTICE.<BR>
<BR>
This E-Mail and any files transmitted with it, are  confidential and may be<BR>
privileged and are for the exclusive use of the intended recipient(s).<BR>
If you are not the intended recipient(s) please note that any form <BR>
of distribution, copying or use of this communication or the<BR>
information in it, is strictly prohibited and may be unlawful.<BR>
<BR>
If you have received this E-Mail in error please return it to the sender.<BR>
We should be grateful if you would also copy the communication to<BR>
postmaster@doosanbabcock.com the delete the E-Mail and destroy any<BR>
copies of it.<BR>
<BR>
It is your responsibility to scan any attachments for viruses.<BR>
<BR>
For further information, visit us at WWW.DOOSANBABCOCK.COM
</P></DIV>
</BODY>
</HTML>