Sage: Ticket #16996: IPython notebook with Sage Extensions
https://trac.sagemath.org/ticket/16996
<p>
Make the IPython html-based notebook work just like the sage command line.
</p>
<p>
In particular: make zeromq and pyzmq standard packages.
</p>
<p>
Screenshots: <a class="ext-link" href="https://plus.google.com/photos/113188225509686176367/albums/6061181433704732017"><span class="icon"></span>https://plus.google.com/photos/113188225509686176367/albums/6061181433704732017</a>
</p>
en-usSagehttps://trac.sagemath.org/chrome/site/logo_sagemath_trac.png
https://trac.sagemath.org/ticket/16996
Trac 1.1.6vbraunTue, 16 Sep 2014 23:15:13 GMTbranch set
https://trac.sagemath.org/ticket/16996#comment:1
https://trac.sagemath.org/ticket/16996#comment:1
<ul>
<li><strong>branch</strong>
set to <em>u/vbraun/sage_ipynb</em>
</li>
</ul>
TicketvbraunTue, 16 Sep 2014 23:16:24 GMTcommit set
https://trac.sagemath.org/ticket/16996#comment:2
https://trac.sagemath.org/ticket/16996#comment:2
<ul>
<li><strong>commit</strong>
set to <em>3c422083161c46d22eeb1005b785953651bc4a3d</em>
</li>
</ul>
<p>
The first commit containts the anything-text-mode integration. Graphics still launches in a separate graphics viewer process.
</p>
<hr />
<p>
New commits:
</p>
<table class="wiki">
<tr><td><a class="ext-link" href="http://git.sagemath.org/sage.git/commit/?id=58ff710db65e25485fc57c707040edaea3092154"><span class="icon"></span>58ff710</a></td><td><code>Add a sage -ipynb option</code>
</td></tr><tr><td><a class="ext-link" href="http://git.sagemath.org/sage.git/commit/?id=3c422083161c46d22eeb1005b785953651bc4a3d"><span class="icon"></span>3c42208</a></td><td><code>IPython notebook with Sage extensions</code>
</td></tr></table>
TicketvbraunTue, 16 Sep 2014 23:25:16 GMT
https://trac.sagemath.org/ticket/16996#comment:3
https://trac.sagemath.org/ticket/16996#comment:3
<p>
Picture at <a class="ext-link" href="https://plus.google.com/113188225509686176367/posts/MCdWKxYyryH"><span class="icon"></span>https://plus.google.com/113188225509686176367/posts/MCdWKxYyryH</a>
</p>
TicketvbraunThu, 18 Sep 2014 18:44:21 GMTdescription changed; dependencies set
https://trac.sagemath.org/ticket/16996#comment:4
https://trac.sagemath.org/ticket/16996#comment:4
<ul>
<li><strong>dependencies</strong>
set to <em>#16746</em>
</li>
<li><strong>description</strong>
modified (<a href="/ticket/16996?action=diff&version=4">diff</a>)
</li>
</ul>
TicketkcrismanFri, 19 Sep 2014 02:37:24 GMT
https://trac.sagemath.org/ticket/16996#comment:5
https://trac.sagemath.org/ticket/16996#comment:5
<p>
Aww, but <em>sage -ipynb</em> seems so cute. After all, it's the Ipython notebook, not the Notebook Ipython. Maybe both?
</p>
TicketvbraunFri, 19 Sep 2014 13:05:38 GMT
https://trac.sagemath.org/ticket/16996#comment:6
https://trac.sagemath.org/ticket/16996#comment:6
<p>
Its cute. I also wanted to call the Parent object that owns the Singular ring "Frodo". Sometimes, you have to resist being cute ;-)
</p>
<p>
Since there is bound to be more than one notebook, I think its best to go with <code>sage --notebook-foo</code> or <code>--notebook=foo</code>. With just <code>sage --notebook</code> being some suitable default.
</p>
TicketkcrismanFri, 19 Sep 2014 13:13:24 GMT
https://trac.sagemath.org/ticket/16996#comment:7
https://trac.sagemath.org/ticket/16996#comment:7
<p>
Such as <code>sage --notebook-cloud</code>, for example.
</p>
<p>
Well, it might still be good to make it more easily discoverable with an alias or something, just because of the English syntax order.
</p>
TicketvbraunSat, 20 Sep 2014 16:02:58 GMTdescription changed
https://trac.sagemath.org/ticket/16996#comment:8
https://trac.sagemath.org/ticket/16996#comment:8
<ul>
<li><strong>description</strong>
modified (<a href="/ticket/16996?action=diff&version=8">diff</a>)
</li>
</ul>
TicketvbraunSat, 20 Sep 2014 16:08:44 GMT
https://trac.sagemath.org/ticket/16996#comment:9
https://trac.sagemath.org/ticket/16996#comment:9
<p>
Also, you can lanuch the plain IPython notebook with <code>sage -ipython notebook</code>. The commandline switch for the Sage-enhanced IPython notebook should have more than one character difference ;-)
</p>
TicketgitSat, 20 Sep 2014 17:19:36 GMTcommit changed
https://trac.sagemath.org/ticket/16996#comment:10
https://trac.sagemath.org/ticket/16996#comment:10
<ul>
<li><strong>commit</strong>
changed from <em>3c422083161c46d22eeb1005b785953651bc4a3d</em> to <em>95a4ea418c3eae890dc0ae4c50da4420ee0b10ab</em>
</li>
</ul>
<p>
Branch pushed to git repo; I updated commit sha1. Last 10 new commits:
</p>
<table class="wiki">
<tr><td><a class="ext-link" href="http://git.sagemath.org/sage.git/commit/?id=48a2320912986874f4580d22fea71ab3299a9963"><span class="icon"></span>48a2320</a></td><td><code>Also call graphics.show() in doctest mode</code>
</td></tr><tr><td><a class="ext-link" href="http://git.sagemath.org/sage.git/commit/?id=fbf83ebb7a7d32d64be6551c4d1866bb1e1dba7c"><span class="icon"></span>fbf83eb</a></td><td><code>Show output of the lonely generic_graph doctest</code>
</td></tr><tr><td><a class="ext-link" href="http://git.sagemath.org/sage.git/commit/?id=a9271f0de704f3919b58e0b22afa9d38a39c47d1"><span class="icon"></span>a9271f0</a></td><td><code>Fix doctests that have dictionary keys without stable order</code>
</td></tr><tr><td><a class="ext-link" href="http://git.sagemath.org/sage.git/commit/?id=3922ed548e74761576035cb56ef693d2f17ee3dd"><span class="icon"></span>3922ed5</a></td><td><code>Reduce doctest precision</code>
</td></tr><tr><td><a class="ext-link" href="http://git.sagemath.org/sage.git/commit/?id=b362aa6c4ee2db82dc49ab42d52042cf9a46074a"><span class="icon"></span>b362aa6</a></td><td><code>Display trailing newline in __repr__() output</code>
</td></tr><tr><td><a class="ext-link" href="http://git.sagemath.org/sage.git/commit/?id=7de159aef22abafd93bfccd8557065c7d802031f"><span class="icon"></span>7de159a</a></td><td><code>Fix more random test failures</code>
</td></tr><tr><td><a class="ext-link" href="http://git.sagemath.org/sage.git/commit/?id=b02f820bba1e56763f49ce4c076d697939f87b7d"><span class="icon"></span>b02f820</a></td><td><code>Merge #16746 (Improvements to the Sage displayhook)</code>
</td></tr><tr><td><a class="ext-link" href="http://git.sagemath.org/sage.git/commit/?id=7db40810ea65ca7f92d6c3c7798e6471242ef059"><span class="icon"></span>7db4081</a></td><td><code>Make zeromq and pyzmq standard packages</code>
</td></tr><tr><td><a class="ext-link" href="http://git.sagemath.org/sage.git/commit/?id=e7e7f9ce036343c4eb414434c93265461f3bced5"><span class="icon"></span>e7e7f9c</a></td><td><code>Add 2d graphics to the ipython notebook</code>
</td></tr><tr><td><a class="ext-link" href="http://git.sagemath.org/sage.git/commit/?id=95a4ea418c3eae890dc0ae4c50da4420ee0b10ab"><span class="icon"></span>95a4ea4</a></td><td><code>Extend IPython notebook templates</code>
</td></tr></table>
TicketvbraunSat, 20 Sep 2014 17:26:07 GMTstatus changed
https://trac.sagemath.org/ticket/16996#comment:11
https://trac.sagemath.org/ticket/16996#comment:11
<ul>
<li><strong>status</strong>
changed from <em>new</em> to <em>needs_review</em>
</li>
</ul>
<p>
2d graphics works, 3d graphics will be displayed as 2d render. IMHO this is good enough for a first stab at it.
</p>
<p>
I've extended the magic <code>_graphics_()</code> method hook that we already had in Sage so that you can specify a list of file formats that are acceptable as output. The <code>_graphics_()</code> hook then can pick the best choice amongst these possibilities. This works fine for the problem of finding a suitable graphics file format.
</p>
<p>
The same idea should be extended to text/html/latex output as well. The user specifies which formats he wants (or his frontend can display), and Sage then picks the best representation. I'll work on refactoring the <code>_graphics_()</code> hook into a more general solution (probably called <code>_repr_rich()</code>) on a followup ticket. Once we have this it would be easy to make html/tex output work in a configurable way.
</p>
TicketwasMon, 29 Sep 2014 17:07:30 GMT
https://trac.sagemath.org/ticket/16996#comment:12
https://trac.sagemath.org/ticket/16996#comment:12
<p>
Replying to <a class="ticket" href="https://trac.sagemath.org/ticket/16996#comment:11" title="Comment 11">vbraun</a>:
</p>
<blockquote class="citation">
<p>
2d graphics works, 3d graphics will be displayed as 2d render. IMHO this is good enough for a first stab at it.
</p>
<p>
I've extended the magic <code>_graphics_()</code> method hook that we already had in Sage so that you can specify a list of file formats that are acceptable as output. The <code>_graphics_()</code> hook then can pick the best choice amongst these possibilities. This works fine for the problem of finding a suitable graphics file format.
</p>
<p>
The same idea should be extended to text/html/latex output as well. The user specifies which formats he wants (or his frontend can display), and Sage then picks the best representation. I'll work on refactoring the <code>_graphics_()</code> hook into a more general solution (probably called <code>_repr_rich()</code>) on a followup ticket. Once we have this it would be easy to make html/tex output work in a configurable way.
</p>
</blockquote>
<p>
I'm glad you're working on this, since I've been meaning to do something like this for Sage for a long time, since it is needed for <code>SageMathCloud</code>. Unfortunately, I'm concerned that this approach will cause me more trouble than help, at least for me. With <code>SageMathCloud</code> I have to customize all of the outputs you mention above, and I think the above approach (and what you've implemented in this patch), does not provide a way for me to do it. I would have to directly edit the source code of Sage, which I don't want to do (since it breaks people's custom installs). Right now, SMC monkey patches *all* of the show methods, except for 3d graphics, which can't be monkey patched, due to being in Cython. The idea that "show" can be implemented by saving to a file format, then calling some other function is insufficient, since in some cases one wants to query an object in various ways as part of show. What is really needed is a hook so that users can *replace* the show method altogether at runtime if they want.
</p>
<p>
So if you can do all of the above, but *also* provide a hook for replacing every show method by one of the user's choosing, especially supporting 3d graphics which can't be monkey patched, then I'm on board.
</p>
TicketvbraunMon, 29 Sep 2014 19:45:23 GMT
https://trac.sagemath.org/ticket/16996#comment:13
https://trac.sagemath.org/ticket/16996#comment:13
<p>
Monkey patching stuff left and right isn't going to be maintainable in the long run anyways, so sooner or later you'll have to implement a proper solution. And that means a compute kernel starting with a custom displayhook or piggy-backing on the Sage-IPython ZMQ kernel. I can't see the SMC code so I can't really help with that, but I do intend to write the necessary framework to make implementing the displayhook easy. And powerful enough to include graphics, latex, and html output if desired.
</p>
TicketwasMon, 29 Sep 2014 20:27:45 GMT
https://trac.sagemath.org/ticket/16996#comment:14
https://trac.sagemath.org/ticket/16996#comment:14
<p>
Replying to <a class="ticket" href="https://trac.sagemath.org/ticket/16996#comment:13" title="Comment 13">vbraun</a>:
</p>
<blockquote class="citation">
<p>
Monkey patching stuff left and right isn't going to be maintainable in the long run anyways,
</p>
<blockquote>
<p>
so sooner or later you'll have to implement a proper solution.
</p>
</blockquote>
</blockquote>
<p>
It's actually been very easy to maintain for almost two years now, since Sage's 2d and 3d graphics, etc., are all VERY stable code for the last 3 years. However, I don't like doing it. Amusingly, what you're doing now is the first situation that could make it harder.
</p>
<blockquote class="citation">
<p>
And that means a compute kernel starting with a custom displayhook or piggy-backing on the Sage-IPython ZMQ kernel. I can't see the SMC code so I can't really help with that,
</p>
</blockquote>
<p>
All relevant Python code is BSD or GPL'd licensed. The latest versions are always the Python files in ~/.sagemathcloud in any <a class="missing wiki">SageMathCloud?</a> project. If you want me to post a snapshot somewhere else I can.
</p>
<p>
<a class="missing wiki">SageMathCloud?</a> makes absolutely no use of ZMQ or IPython. However, it uses a custom displayhook.
</p>
<blockquote class="citation">
<p>
but I do intend to write the necessary framework to make implementing the displayhook easy. And powerful enough to include graphics, latex, and html output if desired.
</p>
</blockquote>
<p>
Cool -- that's exactly what I want -- I way to make the necessary framework for implementing the displayhook easy, instead of just replacing show methods.
</p>
<p>
Anyway, I'm thrilled you're working on this, and I hope you'll keep SMC in mind for your design, so that I can rewrite my code to use your framework instead of monkey patching.
</p>
TicketjondoTue, 30 Sep 2014 06:24:53 GMTcc set
https://trac.sagemath.org/ticket/16996#comment:15
https://trac.sagemath.org/ticket/16996#comment:15
<ul>
<li><strong>cc</strong>
<em>jondo</em> added
</li>
</ul>
TicketslabbeTue, 30 Sep 2014 21:37:58 GMTstatus changed
https://trac.sagemath.org/ticket/16996#comment:16
https://trac.sagemath.org/ticket/16996#comment:16
<ul>
<li><strong>status</strong>
changed from <em>needs_review</em> to <em>needs_work</em>
</li>
</ul>
<ol><li>[needs work] The <code>sage -ipython notebook</code> works OK for me. But the command <code>sage -notebook-ipy</code> is broken. There is a tab that opens in the browser but it stays empty. In the command line, it says templates <code>tree.html</code> and <code>error.html</code> and maybe others are missing :
</li></ol><pre class="wiki">$ sage -notebook-ipy
2014-09-30 23:29:19.288 [SageNotebookApp] Using existing profile dir: u'/Users/slabbe/.sage/ipython-2.2.0/profile_default'
2014-09-30 23:29:19.302 [SageNotebookApp] Using MathJax from CDN: https://cdn.mathjax.org/mathjax/latest/MathJax.js
2014-09-30 23:29:19.345 [SageNotebookApp] Serving notebooks from local directory: /Users/slabbe/.sage/notebooks_ipy
2014-09-30 23:29:19.345 [SageNotebookApp] 0 active kernels
2014-09-30 23:29:19.345 [SageNotebookApp] The IPython Notebook is running at: http://localhost:8888/
2014-09-30 23:29:19.345 [SageNotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
2014-09-30 23:29:20.051 [tornado.application] ERROR | Uncaught exception GET /tree (::1)
HTTPRequest(protocol='http', host='localhost:8888', method='GET', uri='/tree', version='HTTP/1.1', remote_ip='::1', headers={'Connection': 'keep-alive', 'Accept-Language': 'fr-ca,fr;q=0.8,fr-fr;q=0.6,en-us;q=0.4,en;q=0.2', 'Accept-Encoding': 'gzip, deflate', 'If-None-Match': '"5a5567e3b37b9ccb8e61737610c32e684f6090d4"', 'Host': 'localhost:8888', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.5; rv:16.0) Gecko/20100101 Firefox/16.0'})
Traceback (most recent call last):
File "/Users/slabbe/Applications/sage-git/local/lib/python2.7/site-packages/tornado-3.1.1-py2.7.egg/tornado/web.py", line 1141, in _when_complete
callback()
File "/Users/slabbe/Applications/sage-git/local/lib/python2.7/site-packages/tornado-3.1.1-py2.7.egg/tornado/web.py", line 1162, in _execute_method
self._when_complete(method(*self.path_args, **self.path_kwargs),
File "/Users/slabbe/Applications/sage-git/local/lib/python2.7/site-packages/tornado-3.1.1-py2.7.egg/tornado/web.py", line 2297, in wrapper
return method(self, *args, **kwargs)
File "/Users/slabbe/Applications/sage-git/local/lib/python2.7/site-packages/IPython/html/tree/handlers.py", line 77, in get
breadcrumbs=breadcrumbs
File "/Users/slabbe/Applications/sage-git/local/lib/python2.7/site-packages/IPython/html/base/handlers.py", line 221, in render_template
template = self.get_template(name)
File "/Users/slabbe/Applications/sage-git/local/lib/python2.7/site-packages/IPython/html/base/handlers.py", line 217, in get_template
return self.settings['jinja2_env'].get_template(name)
File "/Users/slabbe/Applications/sage-git/local/lib/python2.7/site-packages/Jinja2-2.5.5-py2.7.egg/jinja2/environment.py", line 716, in get_template
return self._load_template(name, self.make_globals(globals))
File "/Users/slabbe/Applications/sage-git/local/lib/python2.7/site-packages/Jinja2-2.5.5-py2.7.egg/jinja2/environment.py", line 690, in _load_template
template = self.loader.load(self, name, globals)
File "/Users/slabbe/Applications/sage-git/local/lib/python2.7/site-packages/Jinja2-2.5.5-py2.7.egg/jinja2/loaders.py", line 115, in load
source, filename, uptodate = self.get_source(environment, name)
File "/Users/slabbe/Applications/sage-git/local/lib/python2.7/site-packages/Jinja2-2.5.5-py2.7.egg/jinja2/loaders.py", line 180, in get_source
raise TemplateNotFound(template)
TemplateNotFound: tree.html
2014-09-30 23:29:20.060 [tornado.application] ERROR | Uncaught exception in write_error
Traceback (most recent call last):
File "/Users/slabbe/Applications/sage-git/local/lib/python2.7/site-packages/tornado-3.1.1-py2.7.egg/tornado/web.py", line 794, in send_error
self.write_error(status_code, **kwargs)
File "/Users/slabbe/Applications/sage-git/local/lib/python2.7/site-packages/tornado-3.1.1-py2.7.egg/tornado/web.py", line 827, in write_error
self.finish(self.get_error_html(status_code, **kwargs))
File "/Users/slabbe/Applications/sage-git/local/lib/python2.7/site-packages/IPython/html/base/handlers.py", line 277, in get_error_html
html = self.render_template('error.html', **ns)
File "/Users/slabbe/Applications/sage-git/local/lib/python2.7/site-packages/IPython/html/base/handlers.py", line 221, in render_template
template = self.get_template(name)
File "/Users/slabbe/Applications/sage-git/local/lib/python2.7/site-packages/IPython/html/base/handlers.py", line 217, in get_template
return self.settings['jinja2_env'].get_template(name)
File "/Users/slabbe/Applications/sage-git/local/lib/python2.7/site-packages/Jinja2-2.5.5-py2.7.egg/jinja2/environment.py", line 716, in get_template
return self._load_template(name, self.make_globals(globals))
File "/Users/slabbe/Applications/sage-git/local/lib/python2.7/site-packages/Jinja2-2.5.5-py2.7.egg/jinja2/environment.py", line 690, in _load_template
template = self.loader.load(self, name, globals)
File "/Users/slabbe/Applications/sage-git/local/lib/python2.7/site-packages/Jinja2-2.5.5-py2.7.egg/jinja2/loaders.py", line 115, in load
source, filename, uptodate = self.get_source(environment, name)
File "/Users/slabbe/Applications/sage-git/local/lib/python2.7/site-packages/Jinja2-2.5.5-py2.7.egg/jinja2/loaders.py", line 180, in get_source
raise TemplateNotFound(template)
TemplateNotFound: error.html
2014-09-30 23:29:20.063 [tornado.access] ERROR | {
"Accept-Language": "fr-ca,fr;q=0.8,fr-fr;q=0.6,en-us;q=0.4,en;q=0.2",
"Accept-Encoding": "gzip, deflate",
"Connection": "keep-alive",
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.5; rv:16.0) Gecko/20100101 Firefox/16.0",
"Host": "localhost:8888",
"If-None-Match": "\"5a5567e3b37b9ccb8e61737610c32e684f6090d4\""
}
2014-09-30 23:29:20.064 [tornado.access] ERROR | 500 GET /tree (::1) 16.67ms referer=None
</pre><ol start="2"><li>[needs info] When using the <code>sage -ipython notebook</code> which works for me. The Download as > rst throws me the following error:
</li></ol><pre class="wiki">500 : Internal Server Error
The error was: nbconvert failed: template file "rst" could not be found
</pre><ol start="3"><li>[suggestion] I do like <code>sage -ipynb</code>. I do not like <code>sage -notebook-ipy</code> because the part <code>ipy</code> is not natural. I feel I will need to check the doc of <code>sage -advanced</code> each time to confirm the name of the command. If you want the prefix <code>notebook</code>, I would rather suggest :
<pre class="wiki">sage -notebook-ipython
</pre></li></ol>
TicketvbraunTue, 30 Sep 2014 22:18:57 GMT
https://trac.sagemath.org/ticket/16996#comment:17
https://trac.sagemath.org/ticket/16996#comment:17
<p>
You need to run "make" to install the templates
</p>
TicketslabbeWed, 01 Oct 2014 08:06:02 GMT
https://trac.sagemath.org/ticket/16996#comment:18
https://trac.sagemath.org/ticket/16996#comment:18
<p>
You are right. Running "make" fixed the problem. I can now open it and continue the review.
</p>
<p>
I do not know what goes in this ticket and what doesn't. For instance, as of now I believe the description of the ticket as been fulfilled ("IPython html-based notebook work just like the sage command line", "make zeromq and pyzmq standard packages"). And it could get a positive review.
</p>
<p>
But it would be nice if output like images would appear in the notebook as it is suggested in the screeshot. Also, I have some problems viewing the documentation. More precisely,
</p>
<ol><li>Graphics shows just below the cell which is great: <code>plot(x^2,0,10)</code> but using <code>plot(x^2,0,10).show()</code> opens in an outside window. Is this a bug, or intended?
</li></ol><ol start="2"><li>Animate opens in a outside window as well:
</li></ol><pre class="wiki">sage: t = var('t')
sage: a = animate((cos(c*pi*t) for c in sxrange(1,2,.2)))
sage: a.show()
</pre><ol start="3"><li>3d Graphics objects plots shows also below the cell as a Tachyon image and running <code>.show</code> opens in a outside window.
</li></ol><ol start="4"><li>I saw you added some links in the Help Menu. Unfortunately, I get <code>404: Not Found</code> on the six links where one of them is <code>http://localhost:8888/static/a_tour_of_sage/index.html</code>.
</li></ol>
TicketvbraunWed, 01 Oct 2014 12:01:45 GMT
https://trac.sagemath.org/ticket/16996#comment:19
https://trac.sagemath.org/ticket/16996#comment:19
<p>
At least for now, it is intentional that show() opens external programs. For example that is currently the only way to see jmol 3d.
</p>
<p>
In the long run I think show() should just be removed. Really, it only serves two purposes: easier forkbombing <code>while True: sphere().show()</code> and functions that show plots while not playing nice with the rest of the graphics infrastructure. The only difference between <code>def f(): return plot()</code> and <code>def f(): plot().show()</code> is that the latter can't be combined/superimposed with other plots, a user can't change axis options, you can't reasonably call it in your own code, ...
</p>
<p>
The other reason is that there is no "stdout for graphics", so to my knowledge the IPython notebook doesn't have a separate output channel for graphics either. Other than returning an image via the displayhook, that is.
</p>
<p>
Of course the old notebook is entangled with the show() methods, e.g. 3d plots show() is a whole mess of spaghetti code. Fun fact: you can't save a jmol script to a file, you can only generate it on-the-fly inside show(). So my plan would be first to implement <code>_rich_repr_()</code> and then transition other code over.
</p>
TicketvbraunWed, 01 Oct 2014 12:09:25 GMT
https://trac.sagemath.org/ticket/16996#comment:20
https://trac.sagemath.org/ticket/16996#comment:20
<p>
PS: For the documentation to work you need to build it: "make doc"
</p>
TicketvbraunWed, 01 Oct 2014 12:20:29 GMT
https://trac.sagemath.org/ticket/16996#comment:21
https://trac.sagemath.org/ticket/16996#comment:21
<p>
I guess there is <code>IPython.display</code> to display graphics outside of the display hook, will look into that.
</p>
TicketgitFri, 03 Oct 2014 13:16:36 GMTcommit changed
https://trac.sagemath.org/ticket/16996#comment:22
https://trac.sagemath.org/ticket/16996#comment:22
<ul>
<li><strong>commit</strong>
changed from <em>95a4ea418c3eae890dc0ae4c50da4420ee0b10ab</em> to <em>487807cdaaa32f8cf8090fa2271d8c5ac762252e</em>
</li>
</ul>
<p>
Branch pushed to git repo; I updated commit sha1. New commits:
</p>
<table class="wiki">
<tr><td><a class="ext-link" href="http://git.sagemath.org/sage.git/commit/?id=487807cdaaa32f8cf8090fa2271d8c5ac762252e"><span class="icon"></span>487807c</a></td><td><code>Consolidate notebook launchers and use argparse</code>
</td></tr></table>
TicketvbraunFri, 03 Oct 2014 13:18:47 GMT
https://trac.sagemath.org/ticket/16996#comment:23
https://trac.sagemath.org/ticket/16996#comment:23
<p>
The command line option is now <code>--notebook=ipython</code> or <code>--notebook=sagenb</code> (default). This is more consistent / extensible than <code>--notebook-ipython</code>.
</p>
<p>
Also, switch the notebook argument handling to Python argparse.
</p>
TicketvbraunFri, 03 Oct 2014 22:36:39 GMTstatus changed
https://trac.sagemath.org/ticket/16996#comment:24
https://trac.sagemath.org/ticket/16996#comment:24
<ul>
<li><strong>status</strong>
changed from <em>needs_work</em> to <em>needs_review</em>
</li>
</ul>
TicketssingletSat, 04 Oct 2014 22:53:55 GMT
https://trac.sagemath.org/ticket/16996#comment:25
https://trac.sagemath.org/ticket/16996#comment:25
<p>
Is there a way to render output cells using Mathjax in the ipython notebook? Basically an equivalent for the "Typeset" toggle button in the sagenb or <code>typeset_mode()</code> in smc. If not, should there be? It seems important to maintain parity in notebooks for some things like formatted expressions.
</p>
TicketssingletSat, 04 Oct 2014 23:06:11 GMT
https://trac.sagemath.org/ticket/16996#comment:26
https://trac.sagemath.org/ticket/16996#comment:26
<p>
Unexpected behavior: 'bang' shell commands send output to terminal rather than ipython notebook output cell. Eg:
<code>In [2]: !pwd</code>
has no output cell, but it's echoed to STDOUT. Is this intentional?
</p>
TicketssingletSun, 05 Oct 2014 00:52:02 GMT
https://trac.sagemath.org/ticket/16996#comment:27
https://trac.sagemath.org/ticket/16996#comment:27
<p>
[Sorry if I'm violating sage-trac etiquette; is it preferable to add several comments, each with a single topic/question, or keep several things together in a single comment? Also, my comments could be considered feature requests or enhancements and therefore inappropriate after a review is requested. Please let me know...]
</p>
<p>
I've been using <code>%load sage</code> in the standard ipython notebook for some time and have several existing .ipynb notebooks. Currently, it seems these must be moved to the ~/.sage/notebooks_ipy directory (or maybe a tmp directory if <code>--nodotsage</code> is given). I think this should either be documented or (preferably) <code>sage --notebook=ipython</code> should include .ipynb files found in the working directory at runtime (similar to the standard ipython notebook localhost:8888/tree).
</p>
<p>
EDIT: Actually the directory is documented in the startup message.
</p>
TicketvbraunSun, 05 Oct 2014 15:41:30 GMT
https://trac.sagemath.org/ticket/16996#comment:28
https://trac.sagemath.org/ticket/16996#comment:28
<ul><li>Typeset output will be in the next iteration.
</li><li>The standard IPython notebook command line options work, so you can run
<pre class="wiki">./sage --notebook=ipython --notebook-dir=~/MyNotebooks
</pre>if you want a different one.
</li></ul>
TicketgitSun, 05 Oct 2014 18:53:08 GMTcommit changed
https://trac.sagemath.org/ticket/16996#comment:29
https://trac.sagemath.org/ticket/16996#comment:29
<ul>
<li><strong>commit</strong>
changed from <em>487807cdaaa32f8cf8090fa2271d8c5ac762252e</em> to <em>282f4fab75cdad040af03705be15fce58a31f1f9</em>
</li>
</ul>
<p>
Branch pushed to git repo; I updated commit sha1. New commits:
</p>
<table class="wiki">
<tr><td><a class="ext-link" href="http://git.sagemath.org/sage.git/commit/?id=f248f2052b6f3e2e1a14f143d92cd68e37f55ee1"><span class="icon"></span>f248f20</a></td><td><code>Switch ipy -> ipython everywhere</code>
</td></tr><tr><td><a class="ext-link" href="http://git.sagemath.org/sage.git/commit/?id=282f4fab75cdad040af03705be15fce58a31f1f9"><span class="icon"></span>282f4fa</a></td><td><code>Split the SageInteractiveShell into terminal and notebook versions</code>
</td></tr></table>
TicketvbraunSun, 05 Oct 2014 18:54:30 GMT
https://trac.sagemath.org/ticket/16996#comment:30
https://trac.sagemath.org/ticket/16996#comment:30
<p>
Bang specials (<code>!ls</code>) work now.
</p>
TicketvdelecroixMon, 06 Oct 2014 14:49:25 GMTcc changed
https://trac.sagemath.org/ticket/16996#comment:31
https://trac.sagemath.org/ticket/16996#comment:31
<ul>
<li><strong>cc</strong>
<em>vdelecroix</em> added
</li>
</ul>
TicketegourgoulhonTue, 07 Oct 2014 08:59:58 GMT
https://trac.sagemath.org/ticket/16996#comment:32
https://trac.sagemath.org/ticket/16996#comment:32
<p>
Hi,
I've just tried it (building it by "make" after a merge of the ticket branch into Sage 6.4-beta4). It works very nicely! Just missing the MathJax typeset output, but I understand this is for the next step. In my opinion (but I am not a IPython notebook expert), it should get a positive review.
</p>
TicketslabbeTue, 07 Oct 2014 18:33:22 GMT
https://trac.sagemath.org/ticket/16996#comment:33
https://trac.sagemath.org/ticket/16996#comment:33
<p>
The buildbot says the following tests fails:
</p>
<pre class="wiki">sage -t src/sage/crypto/mq/sr.py # 5 doctests failed
sage -t src/sage/modular/modform/numerical.py # 2 doctests failed
sage -t src/sage/repl/notebook_ipython.py # 9 doctests failed
sage -t src/sage/rings/polynomial/multi_polynomial_sequence.py # 9 doctests failed
sage -t src/sage/rings/polynomial/pbori.pyx # Killed due to segmentation fault
sage -t src/sage/rings/polynomial/polynomial_element.pyx # 2 doctests failed
sage -t src/sage/rings/real_double.pyx # 2 doctests failed
</pre><p>
I tested the same files on my machine and I get:
</p>
<pre class="wiki">sage -t src/sage/crypto/mq/sr.py # Killed due to bus error
sage -t src/sage/repl/notebook_ipython.py # 1 doctest failed
sage -t src/sage/rings/polynomial/multi_polynomial_sequence.py # 9 doctests failed
sage -t src/sage/rings/polynomial/pbori.pyx # Killed due to bus error
sage -t src/sage/rings/polynomial/polynomial_element.pyx # 6 doctests failed
sage -t src/sage/rings/real_double.pyx # 2 doctests failed
</pre><p>
Full log is available here: <a class="ext-link" href="http://boxen.math.washington.edu/home/slabbe/trac_16996.log"><span class="icon"></span>http://boxen.math.washington.edu/home/slabbe/trac_16996.log</a>
</p>
<p>
Note: the link is broken. I don't know why. I scp the file on my account on the server <code>sage.math.washington.edu</code> as before. What is the url of it then?
</p>
TicketegourgoulhonTue, 07 Oct 2014 19:23:33 GMT
https://trac.sagemath.org/ticket/16996#comment:34
https://trac.sagemath.org/ticket/16996#comment:34
<p>
Replying to <a class="ticket" href="https://trac.sagemath.org/ticket/16996#comment:33" title="Comment 33">slabbe</a>:
</p>
<p>
Hi Sébastien,
</p>
<p>
On my machine, with branch u/vbraun/sage_ipynb merged into sage 6.4 beta4, all the above tests passed. Which version of Sage are you using ?
</p>
TicketvbraunTue, 07 Oct 2014 19:29:09 GMT
https://trac.sagemath.org/ticket/16996#comment:35
https://trac.sagemath.org/ticket/16996#comment:35
<p>
We don't serve all home directories any more. Contact William if you want yours to be whitelisted.
</p>
TicketvbraunTue, 07 Oct 2014 19:30:36 GMT
https://trac.sagemath.org/ticket/16996#comment:36
https://trac.sagemath.org/ticket/16996#comment:36
<p>
PS: The branch doesn't include the <code>SAGE_UPGRADING</code> fix so you probably have to <code>make distclean && make</code> to compile it correctly.
</p>
TicketjhpalmieriTue, 07 Oct 2014 21:39:50 GMT
https://trac.sagemath.org/ticket/16996#comment:37
https://trac.sagemath.org/ticket/16996#comment:37
<ul><li>The example in <code>cmdline2argspec</code> is kind of ridiculous. I would just delete it.
</li><li>Should the usage string produced by <code>sage --notebook -h</code> actually say what the default notebook is? I think so: the default should be clearly documented without reading the source code.
</li><li>It seems odd that <code>sage --notebook --notebook sagenb</code> is valid syntax, but I don't really care.
</li><li>Do we need to deprecate the "insecure" notebook? Again, I don't really care, but I thought I would ask.
</li></ul><p>
I don't know enough about the graphics/plotting interface to know if the changes here are sensible. Anyone else? My only impression is that the <code>graphics_file</code> module should have more documentation: I don't know at a glance why or how to use it. The doctest coverage for that file is bad, also. Everything else looks okay, although I haven't looked in great detail at all of it.
</p>
TicketgitTue, 07 Oct 2014 22:00:19 GMTcommit changed
https://trac.sagemath.org/ticket/16996#comment:38
https://trac.sagemath.org/ticket/16996#comment:38
<ul>
<li><strong>commit</strong>
changed from <em>282f4fab75cdad040af03705be15fce58a31f1f9</em> to <em>75bc4551aa2cbe49fedac881f560248292185364</em>
</li>
</ul>
<p>
Branch pushed to git repo; I updated commit sha1. New commits:
</p>
<table class="wiki">
<tr><td><a class="ext-link" href="http://git.sagemath.org/sage.git/commit/?id=9f4b1c860e3c4f7bfb20b1d7d84931bf8387a696"><span class="icon"></span>9f4b1c8</a></td><td><code>Remove left-over attempt at doctests</code>
</td></tr><tr><td><a class="ext-link" href="http://git.sagemath.org/sage.git/commit/?id=75bc4551aa2cbe49fedac881f560248292185364"><span class="icon"></span>75bc455</a></td><td><code>Mention the default notebook in the help</code>
</td></tr></table>
TicketvbraunTue, 07 Oct 2014 22:07:30 GMT
https://trac.sagemath.org/ticket/16996#comment:39
https://trac.sagemath.org/ticket/16996#comment:39
<ul><li>Removed the example, that was from when I was trying to doctest it (turns out <code>src/bin</code> scripts are not doctested, but thats another issue)
</li><li>Added the default to the help string.
</li><li><code>ls --color=never --color=always</code> is valid as well. This is how argparse operates.
</li><li>Nothing changed with the insecure notebook, I just consolidated all launcher scripts into one. That doesn't change the fact that <code>sage -notebook</code> and <code>sage -inotebook</code> launch the same thing, <code>secure=False</code> is the default.
</li><li>The <code>graphics_file</code> needs to be refactored to support more than just raster graphics anyways (see discussion), so I didn't document it all. In any case its a displayhook internal.
</li></ul>
TicketgitTue, 07 Oct 2014 22:09:17 GMTcommit changed
https://trac.sagemath.org/ticket/16996#comment:40
https://trac.sagemath.org/ticket/16996#comment:40
<ul>
<li><strong>commit</strong>
changed from <em>75bc4551aa2cbe49fedac881f560248292185364</em> to <em>ec42cdfb5710225b820f58e242d05326a1a3a494</em>
</li>
</ul>
<p>
Branch pushed to git repo; I updated commit sha1. New commits:
</p>
<table class="wiki">
<tr><td><a class="ext-link" href="http://git.sagemath.org/sage.git/commit/?id=ec42cdfb5710225b820f58e242d05326a1a3a494"><span class="icon"></span>ec42cdf</a></td><td><code>deprecate the -inotebook option</code>
</td></tr></table>
TicketvbraunTue, 07 Oct 2014 22:10:03 GMT
https://trac.sagemath.org/ticket/16996#comment:41
https://trac.sagemath.org/ticket/16996#comment:41
<p>
I've added a <code>(deprecated)</code> to the inotebook option, hopefully we can get rid of it in the future.
</p>
TicketslabbeWed, 08 Oct 2014 06:48:01 GMT
https://trac.sagemath.org/ticket/16996#comment:42
https://trac.sagemath.org/ticket/16996#comment:42
<p>
Replying to <a class="ticket" href="https://trac.sagemath.org/ticket/16996#comment:39" title="Comment 39">vbraun</a>:
</p>
<blockquote class="citation">
<ul><li>Added the default to the help string.
</li></ul></blockquote>
<p>
Can the default (sagenb vs ipython) be changed by the user? If yes, how?
</p>
TicketslabbeWed, 08 Oct 2014 07:34:14 GMT
https://trac.sagemath.org/ticket/16996#comment:43
https://trac.sagemath.org/ticket/16996#comment:43
<p>
It seems there is a space missing in the usage line :<code>sage-notebook</code> instead of <code>sage -notebook</code>.
</p>
<pre class="wiki">$ sage -notebook -h
usage: sage-notebook [-h] [--log LOG] [--notebook [NOTEBOOK]]
</pre><pre class="wiki">$ sage -docbuild -h
Usage: sage -docbuild [OPTIONS] DOCUMENT (FORMAT | COMMAND)
</pre><p>
I also wonder why <code>-n</code> is not listed first on the line (compare with <code>sage -docbuild -h</code>):
</p>
<pre class="wiki"> --notebook [NOTEBOOK], -n [NOTEBOOK], -notebook [NOTEBOOK]
</pre><p>
To me it is an important feature that <code>sage -ipython notebook</code> directly lands in the present working directory. And I will be disappointed if <code>sage -notebook=ipython</code> does not. What is the opinion of other users about this?
</p>
<p>
I am sory to say this, but to me if we default to <code>--notebook-dir=DOT_SAGE/notebooks_ipython</code> we follow stupidly a bad design choice of the previous notebook.
</p>
<blockquote class="citation">
<p>
The standard IPython notebook command line options work
</p>
</blockquote>
<p>
In any case, should we document in <code>sage -notebook -h</code> that the long list of options of <code>sage -ipython notebook -h</code> can be used?
</p>
TicketslabbeWed, 08 Oct 2014 07:48:03 GMT
https://trac.sagemath.org/ticket/16996#comment:44
https://trac.sagemath.org/ticket/16996#comment:44
<p>
If <code>DOT_SAGE/notebooks_ipython</code> dir exists, <code>sage -t src/sage/repl/notebook_ipython.py</code> returns <code>All tests passed!</code>. But if the dir does not exist, then one test is failing:
</p>
<pre class="wiki">sage -t src/sage/repl/notebook_ipython.py # 1 doctest failed
**********************************************************************
File "src/sage/repl/notebook_ipython.py", line 63, in sage.repl.notebook_ipython.SageNotebookApp.load_config_file
Failed example:
app.load_config_file() # random output
Exception raised:
Traceback (most recent call last):
...
TraitError: No such notebook dir: u'/Users/slabbe/.sage/notebooks_ipython'
</pre>
TicketvbraunWed, 08 Oct 2014 11:48:14 GMT
https://trac.sagemath.org/ticket/16996#comment:45
https://trac.sagemath.org/ticket/16996#comment:45
<p>
The default can't be changed without editing the source. You can always make an alias if its too much effort to type out.
</p>
<p>
The notebook launch script is <code>sage-notebook</code>, so this is the name that appears in the <code>usage:</code> help. We could override it but IMHO that would be even more confusing. Can't really be fixed without <a class="needs_work ticket" href="https://trac.sagemath.org/ticket/21" title="enhancement: command line option parsing (needs_work)">#21</a>.
</p>
TicketgitWed, 08 Oct 2014 12:51:53 GMTcommit changed
https://trac.sagemath.org/ticket/16996#comment:46
https://trac.sagemath.org/ticket/16996#comment:46
<ul>
<li><strong>commit</strong>
changed from <em>ec42cdfb5710225b820f58e242d05326a1a3a494</em> to <em>11326b6283478ebf366fed9abc868434ee9f88c8</em>
</li>
</ul>
<p>
Branch pushed to git repo; I updated commit sha1. New commits:
</p>
<table class="wiki">
<tr><td><a class="ext-link" href="http://git.sagemath.org/sage.git/commit/?id=9d034cc9f011239e9b689e1cfec296a4ceb1ca11"><span class="icon"></span>9d034cc</a></td><td><code>More command line help description</code>
</td></tr><tr><td><a class="ext-link" href="http://git.sagemath.org/sage.git/commit/?id=11326b6283478ebf366fed9abc868434ee9f88c8"><span class="icon"></span>11326b6</a></td><td><code>Make doctests work even if you never ran the ipython notebook before</code>
</td></tr></table>
TicketvbraunWed, 08 Oct 2014 12:52:47 GMT
https://trac.sagemath.org/ticket/16996#comment:47
https://trac.sagemath.org/ticket/16996#comment:47
<ul><li>The order of <code>--notebook [NOTEBOOK], -n [NOTEBOOK]</code> is fixed in sage-notebook and I prefer it that way (most descriptive first).
</li></ul><ul><li>I also think its unproductive to start a discussion about whether or not we should start in a particular directory. This is what the old notebook does, if you don't like it then open a ticket or post on sage-devel. I don't really care either way, but the behavior has to match.
</li></ul><ul><li>I fixed the doctest error when you never ran the ipython notebook before.
</li></ul>
TicketslabbeWed, 08 Oct 2014 22:08:51 GMT
https://trac.sagemath.org/ticket/16996#comment:48
https://trac.sagemath.org/ticket/16996#comment:48
<blockquote class="citation">
<ul><li>I also think its unproductive to start a discussion about whether or not we should start in a particular directory.
</li></ul></blockquote>
<p>
Ok I agree. This should be discussed on sage-devel.
</p>
<p>
I agree with John Palmieri about the doctest coverage in the <code>graphics_file</code> class. I think it should be 100% doctested and should not be too long to do so. Other than that, to me the ticket can get a positive review. (Note: I will not have much internet time in the next few days.)
</p>
TicketvbraunWed, 08 Oct 2014 22:21:28 GMT
https://trac.sagemath.org/ticket/16996#comment:49
https://trac.sagemath.org/ticket/16996#comment:49
<p>
I said already that the <code>graphics_file</code> module needs to be rewritten to also allow for other forms of rich output. I'm not going to document it and then erase it in the next ticket.
</p>
TicketgitSun, 12 Oct 2014 15:13:59 GMTcommit changed
https://trac.sagemath.org/ticket/16996#comment:50
https://trac.sagemath.org/ticket/16996#comment:50
<ul>
<li><strong>commit</strong>
changed from <em>11326b6283478ebf366fed9abc868434ee9f88c8</em> to <em>c54edb59a9c46c15dbe8a529efafe9c0cb2b17c9</em>
</li>
</ul>
<p>
Branch pushed to git repo; I updated commit sha1. New commits:
</p>
<table class="wiki">
<tr><td><a class="ext-link" href="http://git.sagemath.org/sage.git/commit/?id=c54edb59a9c46c15dbe8a529efafe9c0cb2b17c9"><span class="icon"></span>c54edb5</a></td><td><code>Better notebook-specific help</code>
</td></tr></table>
TicketslabbeMon, 13 Oct 2014 13:04:36 GMTstatus changed; reviewer set
https://trac.sagemath.org/ticket/16996#comment:51
https://trac.sagemath.org/ticket/16996#comment:51
<ul>
<li><strong>status</strong>
changed from <em>needs_review</em> to <em>positive_review</em>
</li>
<li><strong>reviewer</strong>
set to <em>Karl-Dieter Crisman, Sébastien Labbé, John Palmieri, Eric Gourgoulhon, ssinglet</em>
</li>
</ul>
<p>
I give this a positive review.
</p>
<p>
Unfinished discussions (reported later) concerns:
</p>
<ul><li>the default directory for sage -notebook=ipython to be discussed on sage-devel
</li><li>A new ticket should be created for the <code>graphics_file</code> module to be rewritten
</li></ul>
TicketvbraunMon, 13 Oct 2014 13:09:01 GMTreviewer changed
https://trac.sagemath.org/ticket/16996#comment:52
https://trac.sagemath.org/ticket/16996#comment:52
<ul>
<li><strong>reviewer</strong>
changed from <em>Karl-Dieter Crisman, Sébastien Labbé, John Palmieri, Eric Gourgoulhon, ssinglet</em> to <em>Karl-Dieter Crisman, Sébastien Labbé, John Palmieri, Eric Gourgoulhon, Steve Singleton</em>
</li>
</ul>
TicketvbraunTue, 14 Oct 2014 10:41:29 GMTstatus, branch changed; resolution set
https://trac.sagemath.org/ticket/16996#comment:53
https://trac.sagemath.org/ticket/16996#comment:53
<ul>
<li><strong>status</strong>
changed from <em>positive_review</em> to <em>closed</em>
</li>
<li><strong>resolution</strong>
set to <em>fixed</em>
</li>
<li><strong>branch</strong>
changed from <em>u/vbraun/sage_ipynb</em> to <em>c54edb59a9c46c15dbe8a529efafe9c0cb2b17c9</em>
</li>
</ul>
TicketslabbeThu, 23 Oct 2014 14:16:26 GMTcommit deleted
https://trac.sagemath.org/ticket/16996#comment:54
https://trac.sagemath.org/ticket/16996#comment:54
<ul>
<li><strong>commit</strong>
<em>c54edb59a9c46c15dbe8a529efafe9c0cb2b17c9</em> deleted
</li>
</ul>
<blockquote class="citation">
<p>
Unfinished discussions (reported later) concerns:
</p>
<ul><li>the default directory for sage -notebook=ipython to be discussed on sage-devel
</li></ul></blockquote>
<p>
This is now <a class="closed ticket" href="https://trac.sagemath.org/ticket/17203" title="defect: Make sage -notebook=ipython land by default in pwd (closed: fixed)">#17203</a>.
</p>
<p>
Volker I am sure you can fix <a class="closed ticket" href="https://trac.sagemath.org/ticket/17203" title="defect: Make sage -notebook=ipython land by default in pwd (closed: fixed)">#17203</a> much quicklier than me since you put your hands in those files recently. Will you have time to work on <a class="closed ticket" href="https://trac.sagemath.org/ticket/17203" title="defect: Make sage -notebook=ipython land by default in pwd (closed: fixed)">#17203</a> in the next days?
</p>
<p>
Sébastien
</p>
TicketkcrismanMon, 03 Nov 2014 13:35:55 GMT
https://trac.sagemath.org/ticket/16996#comment:55
https://trac.sagemath.org/ticket/16996#comment:55
<p>
See <a class="ext-link" href="https://groups.google.com/d/msg/sage-release/xgmJ3nAcUOY/d9-MZLTyowYJ"><span class="icon"></span>https://groups.google.com/d/msg/sage-release/xgmJ3nAcUOY/d9-MZLTyowYJ</a> for some regressions/incompatible changes in the syntax for command line launch of sagenb, presumably introduced in this ticket.
</p>
TicketslabbeMon, 03 Nov 2014 15:45:26 GMT
https://trac.sagemath.org/ticket/16996#comment:56
https://trac.sagemath.org/ticket/16996#comment:56
<p>
Replying to <a class="ticket" href="https://trac.sagemath.org/ticket/16996#comment:55" title="Comment 55">kcrisman</a>:
</p>
<blockquote class="citation">
<p>
some regressions/incompatible changes in the syntax for command line launch of sagenb, presumably introduced in this ticket.
</p>
</blockquote>
<p>
Should that be considered as a blocker ?
</p>
<p>
See also <a class="closed ticket" href="https://trac.sagemath.org/ticket/17281" title="defect: Remove -notebook-ipy from sage -h (closed: fixed)">#17281</a> for another (easy) follow up ticket.
</p>
TicketvbraunMon, 03 Nov 2014 15:58:31 GMT
https://trac.sagemath.org/ticket/16996#comment:57
https://trac.sagemath.org/ticket/16996#comment:57
<p>
this ticket is closed. Followup is <a class="closed ticket" href="https://trac.sagemath.org/ticket/17280" title="defect: Notebook commandline argparse (closed: fixed)">#17280</a>
</p>
Ticket