Reset an IPython kernel without restarting - ipython

Is there a way of programmatically reset an IPython kernel without restarting it?
Currently I am calling KernelManager.restart_kernel but that is quite slow.
The purpose of this is to isolate unit tests in a py.test plugin for using Notebook cells as unit tests. If you have other ideas to achieve this I'd love suggestions. The code is here:
https://github.com/zonca/pytest-ipynb/blob/master/pytest_ipynb/plugin.py#L100

I used the %reset IPython magic function instead of restarting the kernel. That removes all the variables but does not perform again the imports. That is suitable for my application.
See IPython docs: http://ipython.readthedocs.org/en/stable/interactive/magics.html?highlight=magic#magic-reset

Related

IPython reloading modified module

I'm running ipython in Linux terminal. Every time I change my source file I need to restart it; otherwise it uses the old version. I have seen this but it doesn't offer a firm answer. I was wondering if there is anything I could do?
Please see if this helps. We can use autoreload in IPython to make it reload files before executing any new lines.

pylab backend from cmd prompt?

I've run into an issue...
First, I've been trying (with little success yet) of 'packaging' a Canopy python file into an .exe. I'm trying to make a 'simple' way to run our program(s) for our client.
With those issues, I thought I'd make a .cmd file with 'python myprog.py' in it. Well, it fires up my code without having the Canopy environment there to confuse my end-users, BUT, it appears that the PyLab backend isn't Qt4, as the screen appears quite a bit different, and the actual program doesn't quite run the same :(
Is there some way to tell Canopy that when I start a program using 'python xxx.py' that it should be using the Qt4 package? I've looked at the Preferences for Canopy, and both the Notebook tab and the Python tab have the PyLab backend set to Interactive (Qt4)? If I can find that and get my panels to look the same as in the Canopy environment, I'll see if the rest of the program straightens out too.
Steve, if you wish you can hard-code this into your program, but as a quick solution, precede your python call with:
set ETS_TOOLKIT=qt4

How to use ipython ZMQ-based console by default

I often use ipython with vim (vim-ipython plugin). It connects to ipython via ZMQ, so I need to run ipython console. I don't see any purpose to not use ipython console even if I don't use ZMQ features, so I want ipython to start ZMQ-based console without typing console. I know, that this problem could be partly solved with bash aliases, but I think that I would have problems with launching qtconsole or notebook.
We don't provide any way to make ipython console the default, and we're probably not about to, as it gets much less field testing than the regular terminal IPython. I'd recommend you just alias another convenient name to it.

Display of music21, musicXML PNG objects using iPython Notebook/Enthought Canopy

I am experimenting with the music21 library, in preparation for a Machine Learning project that involves genre classification and categorization. I and following some tutorials available here. I am using MuseScore as my MusicXML program, and I am trying to run the whole thing from iPython.
Although I can run the some of the turtorials from the terminal, some elements don't seem to run well from inside iPython. For example:
In [3]: sBach.show()
Out[3]: <music21.ipython21.objects.IPythonPNGObject at 0x10da0aa10>
The line above shows that the PNG object is created, but not displayed. The expected output for 3 above is the following:
Experimenting with the following iPython command, I get a placeholder for an image, but not image.
In [6]: %load_ext music21.ipython21.ipExtension
In [7]: sBach.show()
I can't find any problem with my MusicXMLPath. This tutorial refers to the use of musc21 with Anaconda, but all my developments is done with Enthought, so I prefer not to run another virtual environment to use music21 with iPython.
Is there any way to run music21 in an Enthought/iPython notebook?
I have been grappling with this issue myself. ... Have you set your musicxmlPath in music21? If you have not, it's done via environment.set(key, value). You can query for available keys with environment.keys(). I hope this isn't too simple an answer, but it cleared up the problem for me.
This should be in the iPython music21 documentation somewhere, my apologies: iPython in music21 requires Lilypond to be installed for images to be generated within the notebook itself. There hasn't been (and won't be until MuseScore 2.0 is released) a way using MusicXML to generate PNG images of scores directly.
Edit: 2015 July; music21 2.0 w/ MuseScore 2 will generate the PNG images with MuseScore if it is installed and fallback to Lilypond if it is not installed.
If not yet tried, some steps to isolate the cause of the problem:
1) Update to the latest Canopy (Edit: currently 1.4.1) (might help this, will help generally, won't hurt).
2) Change the Pylab backend in Canopy's IPython shell to "Inline (SVG)", via Preferences / Python. (The default Qt backend in that shell conflicts with music21's use of the tkinter library.)
3) Test your script in that shell rather than in the notebook.
4) Ensure that Canopy User Python is your default Python in a Terminal window, as described here.
5) Test your scripts inside of plain ipython terminal (from Terminal, type ipython).
6) Test in ipython terminal in pylab mode (ipython qtconsole --pylab=inline).
7) Test your scripts inside of ipython notebook running in a regular browser (from Terminal, type ipython notebook, and/or ipython notebook --pylab=inline).
Had similar issues before. It's the same problem when people try to use plot function in ipython/jupyter notebook. You need to call
%matplotlib inline
For me the issue was solved by uninstalling the snap version of musescore and installing it from ppa:mscore-ubuntu/mscore3-stable via https://launchpad.net/~mscore-ubuntu/+archive/ubuntu/mscore3-stable

Is there a way to run scala code in the ipython notebook?

I know there is the script magics in the ipython notebook for running code in other languages. See for example http://nbviewer.ipython.org/url/github.com/ipython/ipython/raw/master/examples/notebooks/Script%20Magics.ipynb.
And I know you can run Scala in script mode. See, for example http://www.scala-lang.org/old/node/166.
But I couldn't figure out if there was a way to get the ipython notebook to run scala code.
Second google answer for "Ipython scala" search yield IScala notebook announce.
OP has asked about running scala code in the ipython notebook, not if there's an ipython equivalent for scala. he is aware he can run it with magics as any other script.
a better answer, though still not what OP has asked, is a project for running scala in the similar fashion of notebooks in a web page https://github.com/Bridgewater/scala-notebook