On Mon, Mar 30, 2009 at 11:00 PM, William Stein <wst...@gmail.com> wrote:
>
> On Mon, Mar 30, 2009 at 7:56 PM, Ondrej Certik <ond...@certik.cz> wrote:
>>
>> On Mon, Mar 30, 2009 at 7:29 PM, William Stein <wst...@gmail.com> wrote:
>>>
>>> On Mon, Mar 30, 2009 at 5:54 PM, Ondrej Certik <ond...@certik.cz> wrote:
>>>>
>>>> Hi,
>>>>
>>>> I was looking a bit at what actually has to be done to get a useful
>>>> notebook.spkg, that can be installed without installing
>>>> sage-3.4.1.alpha0.spkg and most of it's dependencies. E.g. that is
>>>> useful for the windows port as well, as far as I understand.
>>>>
>>>> It seems to me that the sage notebook is pure python, so if I go to
>>>
>>> It doesn't depend at all on any real mathematics.  But it does depend
>>> a little maybe on some *cython* code, which isn't pure Python.  E.g.,
>>> the misc directory and sage_object.pyx.
>>>
>>>> sage/server and do:
>>>>
>>>> $ ipython
>>>> Python 2.6.1+ (r261:67515, Mar 19 2009, 14:08:48)
>>>> Type "copyright", "credits" or "license" for more information.
>>>>
>>>> IPython 0.9.1 -- An enhanced Interactive Python.
>>>> ?         -> Introduction and overview of IPython's features.
>>>> %quickref -> Quick reference.
>>>> help      -> Python's own help system.
>>>> object?   -> Details about 'object'. ?object also works, ?? prints more.
>>>>
>>>> In [1]: from notebook.all import notebook
>>>> ---------------------------------------------------------------------------
>>>> ImportError                               Traceback (most recent call last)
>>>>
>>>> /home/ondrej/ext/sage-3.4.1.alpha0/spkg/standard/sage-3.4.1.alpha0/sage/server/<ipython
>>>> console> in <module>()
>>>>
>>>> /home/ondrej/ext/sage-3.4.1.alpha0/spkg/standard/sage-3.4.1.alpha0/sage/server/notebook/all.py
>>>> in <module>()
>>>>     13 from sage_email import email
>>>>     14
>>>> ---> 15 from notebook_object import notebook, inotebook
>>>>     16
>>>>     17 from interact import interact, input_box, slider,
>>>> range_slider, selector, checkbox, input_grid, text_control
>>>>
>>>> /home/ondrej/ext/sage-3.4.1.alpha0/spkg/standard/sage-3.4.1.alpha0/sage/server/notebook/notebook_object.py
>>>> in <module>()
>>>>     17 import time, os, shutil, signal, tempfile
>>>>     18
>>>> ---> 19 import notebook as _notebook
>>>>     20
>>>>     21 import run_notebook
>>>>
>>>> /home/ondrej/ext/sage-3.4.1.alpha0/spkg/standard/sage-3.4.1.alpha0/sage/server/notebook/notebook.py
>>>> in <module>()
>>>>     20
>>>>     21 # Sage libraries
>>>>
>>>> ---> 22 from   sage.structure.sage_object import SageObject, load
>>>>     23 from   sage.misc.misc       import (alarm, cancel_alarm,
>>>>     24                                     tmp_dir, pad_zeros, cputime)
>>>>
>>>> ImportError: No module named sage.structure.sage_object
>>>>
>>>> In [2]:
>>>>
>>>> then all that has to be done is to take some things from Sage, e.g.
>>>> sage.structure.sage_object.SageObject and similar. Those are in
>>>> Cython.
>>>>
>>>> I am doing it right now, I'll see if more problems pop up, or if it's
>>>> just this. I'll report here.
>>>>
>>>
>>> You might find sage/server/notebook/run_notebook.py very interesting,
>>> in particular the part that starts:
>>> -----
>>>        config.write("""
>>> ####################################################################
>>> # WARNING -- Do not edit this file!   It is autogenerated each time
>>> # the notebook(...) command is executed.
>>> ####################################################################
>>> from twisted.internet import reactor
>>> ....
>>> -----
>>>
>>> You'll see what from the Sage notebook gets imported when the actual
>>> server is run, i.e., when the twistedconf.tac file is fed to the
>>> twisted daemon script.
>>>
>>> Regarding longterm maintainable, what I recommend is:
>>>   (1) that you make a new setup.py file
>>>   (2) that you refactor a little code in interfaces/expect.py so that
>>> it doesn't depend on the sage math library.
>>>
>>> You could do 1-2 after you just get stuff to work.  The cool thing is
>>> that with this approach one can just do something like
>>>
>>>   python setup-notebook.py sdist
>>>
>>> and get a source tarball for the notebook part of Sage, and this can
>>> 100% coexist with the current Sage library distribution.
>>
>> Ok, I reduced the whole sage spkg package just to:
>>
>> $ ls
>> all_cmdline.py  all_notebook.py  all.py  categories  ext  __init__.py
>> __init__.pyc  misc  server  structure  version.py
>>
>> and it still seems to build and the notebook works. I'll now strip it
>
> I don't buy this for a second!  You're being misled somehow.  At a
> bare minimum, the interfaces directory is needed, since the notebook
> communicates with all the worksheet processes via an expect interface,
> which is defined in that directory.

Yes, I was just about to send the following email:

On Mon, Mar 30, 2009 at 8:20 PM, Brian Granger <ellisonbg....@gmail.com> wrote:
>
> Nice!  What are the dependencies fir this?

I think just twisted, maybe openssl.

So I tried to strip the whole sage-...spkg package, but I didn't
manage to make it installable in the end -- almost everything depended
on everything (like rings, polynomials, NTL, etc.) - and it once
looked I managed to get rid of it, but it failed to install in the
end.

https://bitbucket.org/certik/sage-341alpha0/

The problem was that I needed to delete everything between the
installs, but I was just doing sage -b.

Tomorrow I am busy, but on Wednesday I'll try the other approach, just
take the notebook and put in things that are needed, that should be
fairly simple, hopefully. I will have to write my own setup.py
probably, but since that is needed anyway in the long term, it should
work.

Or maybe combinations of the above. I think I know understand a bit
what is needed for what.

Ondrej

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

Reply via email to