On Thu, May 22, 2008 at 10:07 PM, mark mcclure <[EMAIL PROTECTED]> wrote:
>
> On May 7, 2:41 am, Amir <[EMAIL PROTECTED]> wrote:
>> Can I start a Sage session from C? I would need to pass commands, set
>> and get variables, and cleanly terminate the session. I would like to
>> do this as a mathlink module to call Sage from Mathematica.
>
> As a fan of both Sage and Mathematica, I found this to be an
> interesting question.  For example, the graph theoretic
> tools in Sage, via Networkx and N.I.C.E., are generally
> better than those currently in Mathematica.  The graph
> visualization seems to be better in Mathematica at this
> point.  So it's nice to use the tools together. I've got a
> sample notebook that does a couple things like this here:
> http://facstaff.unca.edu/mcmcclur/Mathematica/Sage/
>
> It's pretty basic at the moment - mainly proof of concept,
> but it demonstrates a workable approach. The basic idea is
> to use Pythonika to access Sage via pexpect.  I do have a
> question, as I'm fairly new to Python and Sage.  I have
> several Python lines that look something like this:
>
> import pexpect
> child = pexpect.spawn('/Applications/sage/sage')"
> child.expect('.*')
> while child.after[-6:] != 'sage: ':
>    child.expect('.*')
>
> The point behind the while statement is to continue
> reading until the next prompt is reached.  I wonder
> how robust this is?  Or whether there is a more
> standard approach?

Why don't you do

child.expect('sage: ')


Also, make sure you set
  child.maxread
to something big like 10000 or so, since it will make things
100's of times faster than not doing that.

Take a look at

   SAGE_ROOT/devel/sage/sage/interfaces/expect.py

and

   SAGE_ROOT/devel/sage/sage/interfaces/sage0.py

for an example of a pexpect interface to Sage itself.

William
 -- william

--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to sage-support@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/sage-support
URLs: http://www.sagemath.org
-~----------~----~----~----~------~----~------~--~---

Reply via email to