adds static/style/ipython.less and ipython.min.css
Which should contain minimal styling that conflicts with other CSS.
As we improve our CSS scoping and naming,
this file should eventually be enough to play nice with embedding IPython in other HTML contexts.
Fix duplicate completion in notebook
comparaison between kernel completion and context-completin were
returning duplicate entry in some cases, due to trailing space.
sripping trailing space in comparaison prevent this.
closes#3563
comparaison between kernel completion and context-completin were
returning duplicate entry in some cases, due to trailing space.
sripping trailing space in comparaison prevent this.
fixes#3563
example
import bar
from foo im<tab>
used to propose `import` twice (actually `import` and `import[space]` as$
`import` was a token on the first line) now just complete directly to$
`import[space]`.
add IPython.start_ipython
A public API for starting a real (non-embedded) IPython instance.
should avoid API breakage in the future due to simple module renames, as has just happened with the removal of frontend.
For implementation purposes, I have added launch_new_instance as a classmethod on Application. I did this, because I wanted to add the ability to pass arguments to the instance, and didn't want to manually update every duplicate launch_new_instance.
closes#1537
Fix basic timezone info
minor tweaks to jsonutil, to include timezone info if available
add IPython.utils.tz, which just has basic info for making utcnow(), etc. include tzinfo in the datetime object
use this tzinfo in the last_modified keys in notebook managers, which fixes Firefox's timezone offset for checkpoints
Clear up unused imports
Static analysis revealed a load of things that are imported but not used. I've tried to leave things that look like part of the API, and clear up other things.
Noticed a few test functions which had been copy-pasted without changing the name, in which case only the later one will run. I gave them separate names.
Firefox 22 broke `$(window).on("beforeunload")` somehow, for some reason,
resulting in always showing a dialog, regardless of the function's return value.
The only fix I could find was resorting to the basic low-level API.