Am 28.01.2013 03:17, schrieb Allin Cottrell:
> On Mon, 28 Jan 2013, Pietro Battiston wrote:
>

>>>>
>>>> I'd be OK with 'language=numpy' if people think that's better,
>>>> although I'd say the _language_ is python.
>>>
>>> Sure, but Python doesn't speak arrays without numpy, so it's both
>>> together that form the numerical language. So "python-numpy"? (which is
>>> also the name of the debian package BTW).
>>
>> I personally do not agree. The language you will write is simply python,
>> which, for an implementational detail, uses numpy. I don't think the
>> user is even necessarily assumed to know this is happening, until she
>> just reads the docs. Unless there really are any reason why we should
>> want an additional python "flavour" supported, I think the simplest
>> alternative, "language=python", is the best.
>
> I'm with you on that, Pietro.

As I said, it's not a big thing, so go ahead, especially given the 
solution chosen below, where the user must make her imports explicit. 
Even though I do not agree (a language not only consists of syntax, but 
of course of vocabulary as well, which is coming from numpy here), I 
guess you can make the point that the Python spirit is always "import 
this", and numpy is just one more (complex) module then.

>
> Here's what's in current CVS, following Sven's recent suggestions:
>
> 1) In the convenience python functions gretl_loadmat() and
> gretl_export() -- for shuttling matrices between gretl and python --
> we do this sort of thing:
>
> <python>
> def gretl_loadmat(fname):
>     from numpy import loadtxt
>     dname = gretl_dotdir()
>     M = loadtxt(dname + fname, skiprows=1)
>     return M
> </python>
>
> That is, we import locally the functionality we need from numpy.
>
> 2) We leave it up to the user to import from numpy and/or scipy,
> with the user's preferred namespace, for more general usage.

The scipy thing is actually also a good reason not to use numpy blindly, 
because a user may want to work with stuff which is only in scipy.

>
> Point 1) means that gretl's python support depends on the user
> having numpy installed, but I suppose that really goes without
> saying: how could you do anything useful in terms of gretl/python
> interaction without numpy?

Yes; OTOH gretl could try to catch the resulting import error:

<python>
try:
   def gretl_loadmat(fname):
      from numpy import loadtxt
      dname = gretl_dotdir()
      M = loadtxt(dname + fname, skiprows=1)
      return M
except ImportError:
   <somehow signal the absence of numpy to gretl>
</python>

>
>> While I'm at it: I guess that now most of the work needed to also have a
>> python console running in gretl is done? Let me point out that if that
>> was the case, it would be great to be able to choose _which_ console to
>> use (for instance "ipython" instead than simple "python").
>
> Hmm. We currently have the ability to edit/run python scripts in the
> gretl gui (with appropriate syntax highlighting) in the same sort of
> way as we support Ox programs and R or Octave scripts. As for
> providing a "console" (by which I understand an interactive
> command-line interface), I'm not sure that is gretl's job.

I agree, or at least I don't see the use case.

thanks,
sven

Reply via email to