Skip to content

Instantly share code, notes, and snippets.

@UshF
Created January 3, 2017 16:44
Show Gist options
  • Save UshF/cb216c0653c469ec41f53b9572fcc827 to your computer and use it in GitHub Desktop.
Save UshF/cb216c0653c469ec41f53b9572fcc827 to your computer and use it in GitHub Desktop.
pub test ipython notebook
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Introductory Safari tutorial for iPython notebook"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This is a notebook created by working through the three-part tutorial from O'Reilly Safari \n",
"\n",
"https://www.safaribooksonline.com/blog/2013/12/12/start-ipython-notebook/\n",
"\n",
"## First of all I changed the type of this cell from \"code\" to \"Markdown\"\n",
"\n",
"On each cell I did a \"shift-enter\"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"As a test of the Markdown variant I entered some $LaTeX$"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": false
},
"outputs": [
{
"ename": "SyntaxError",
"evalue": "invalid syntax (<ipython-input-1-b90b3d14fe01>, line 1)",
"output_type": "error",
"traceback": [
"\u001b[0;36m File \u001b[0;32m\"<ipython-input-1-b90b3d14fe01>\"\u001b[0;36m, line \u001b[0;32m1\u001b[0m\n\u001b[0;31m In the more recent versions of the Notebook, which have been moved from the iPython project to the Jupyter project it is not necceary to change the cell type from Code to Markdown. Just enter *Markdown* _formatting_ and then shift-enter\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m invalid syntax\n"
]
}
],
"source": [
"In the more recent versions of the Notebook, which have been moved from the iPython project to the Jupyter project it is not necceary to change the cell type from Code to Markdown. Just enter *Markdown* _formatting_ and then shift-enter "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"My assertion above about *Markdown* cell types turns out to be _untrue_ and I shall test it by this line. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Next up test the magic commands\n",
"I shall below this try \n",
"```\n",
"%pylab inline\n",
"```"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false
},
"outputs": [
{
"ename": "ImportError",
"evalue": "No module named matplotlib",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mImportError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m<ipython-input-2-550caa57204a>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mget_ipython\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmagic\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34mu'pylab inline'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
"\u001b[0;32m/Users/ushfeeley/.virtualenvs/ipython-learning/lib/python2.7/site-packages/IPython/core/interactiveshell.pyc\u001b[0m in \u001b[0;36mmagic\u001b[0;34m(self, arg_s)\u001b[0m\n\u001b[1;32m 2156\u001b[0m \u001b[0mmagic_name\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0m_\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmagic_arg_s\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0marg_s\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpartition\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m' '\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2157\u001b[0m \u001b[0mmagic_name\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmagic_name\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlstrip\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mprefilter\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mESC_MAGIC\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2158\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrun_line_magic\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmagic_name\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmagic_arg_s\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2159\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2160\u001b[0m \u001b[0;31m#-------------------------------------------------------------------------\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/Users/ushfeeley/.virtualenvs/ipython-learning/lib/python2.7/site-packages/IPython/core/interactiveshell.pyc\u001b[0m in \u001b[0;36mrun_line_magic\u001b[0;34m(self, magic_name, line)\u001b[0m\n\u001b[1;32m 2077\u001b[0m \u001b[0mkwargs\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'local_ns'\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0msys\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_getframe\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mstack_depth\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mf_locals\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2078\u001b[0m \u001b[0;32mwith\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbuiltin_trap\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2079\u001b[0;31m \u001b[0mresult\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfn\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2080\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mresult\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2081\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m<decorator-gen-105>\u001b[0m in \u001b[0;36mpylab\u001b[0;34m(self, line)\u001b[0m\n",
"\u001b[0;32m/Users/ushfeeley/.virtualenvs/ipython-learning/lib/python2.7/site-packages/IPython/core/magic.pyc\u001b[0m in \u001b[0;36m<lambda>\u001b[0;34m(f, *a, **k)\u001b[0m\n\u001b[1;32m 186\u001b[0m \u001b[0;31m# but it's overkill for just that one bit of state.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 187\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mmagic_deco\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0marg\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 188\u001b[0;31m \u001b[0mcall\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mlambda\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mk\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mk\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 189\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 190\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mcallable\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0marg\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/Users/ushfeeley/.virtualenvs/ipython-learning/lib/python2.7/site-packages/IPython/core/magics/pylab.pyc\u001b[0m in \u001b[0;36mpylab\u001b[0;34m(self, line)\u001b[0m\n\u001b[1;32m 154\u001b[0m \u001b[0mimport_all\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0margs\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mno_import_all\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 155\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 156\u001b[0;31m \u001b[0mgui\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbackend\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mclobbered\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshell\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0menable_pylab\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mgui\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mimport_all\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mimport_all\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 157\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_show_matplotlib_backend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mgui\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbackend\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 158\u001b[0m \u001b[0;32mprint\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0;34m\"Populating the interactive namespace from numpy and matplotlib\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/Users/ushfeeley/.virtualenvs/ipython-learning/lib/python2.7/site-packages/IPython/core/interactiveshell.pyc\u001b[0m in \u001b[0;36menable_pylab\u001b[0;34m(self, gui, import_all, welcome_message)\u001b[0m\n\u001b[1;32m 2984\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0mIPython\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcore\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpylabtools\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mimport_pylab\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2985\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2986\u001b[0;31m \u001b[0mgui\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbackend\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0menable_matplotlib\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mgui\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2987\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2988\u001b[0m \u001b[0;31m# We want to prevent the loading of pylab to pollute the user's\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/Users/ushfeeley/.virtualenvs/ipython-learning/lib/python2.7/site-packages/IPython/core/interactiveshell.pyc\u001b[0m in \u001b[0;36menable_matplotlib\u001b[0;34m(self, gui)\u001b[0m\n\u001b[1;32m 2933\u001b[0m \"\"\"\n\u001b[1;32m 2934\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0mIPython\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcore\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mpylabtools\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mpt\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2935\u001b[0;31m \u001b[0mgui\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbackend\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mpt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfind_gui_and_backend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mgui\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpylab_gui_select\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2936\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2937\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mgui\u001b[0m \u001b[0;34m!=\u001b[0m \u001b[0;34m'inline'\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/Users/ushfeeley/.virtualenvs/ipython-learning/lib/python2.7/site-packages/IPython/core/pylabtools.pyc\u001b[0m in \u001b[0;36mfind_gui_and_backend\u001b[0;34m(gui, gui_select)\u001b[0m\n\u001b[1;32m 257\u001b[0m \"\"\"\n\u001b[1;32m 258\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 259\u001b[0;31m \u001b[0;32mimport\u001b[0m \u001b[0mmatplotlib\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 260\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 261\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mgui\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0mgui\u001b[0m \u001b[0;34m!=\u001b[0m \u001b[0;34m'auto'\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;31mImportError\u001b[0m: No module named matplotlib"
]
}
],
"source": [
"%pylab inline"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Need to install some dependencies\n",
"As the above error indicates I need to install matplotlib. I am doing this on OSX El Capitan. I have a bash function defined in .bashrc as globalpip which allows me to selectively install to the system environment. This leaves the \"normal\" __pip__ command free to install into whatever virtualenv I have active at the moment. So I shall now \n",
"```\n",
"pip install matplotlib\n",
"```\n",
"in order to only install that into this test virtualenv."
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": true
},
"source": [
"Needed to quit the ipython notebook server and then install to the virtualenv using the local pip command.\n",
"```\n",
"pip install matplotlib\n",
"```"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Trying the pylab inline again, now that I have installed matplotlib module"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/Users/ushfeeley/.virtualenvs/ipython-learning/lib/python2.7/site-packages/matplotlib/font_manager.py:273: UserWarning: Matplotlib is building the font cache using fc-list. This may take a moment.\n",
" warnings.warn('Matplotlib is building the font cache using fc-list. This may take a moment.')\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Populating the interactive namespace from numpy and matplotlib\n"
]
}
],
"source": [
"%pylab inline"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x10b3ccc50>]"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nAElFTkSuQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10b339510>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"x = linspace(0, 10)\n",
"y = sin(x)\n",
"plot(x,y)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"One the matplotlib module had been installed to the local virtualenv then everything worked as expected. There was the brief message about building font caches and populating the interactive namespace for numpy and matplotlib, but that was relatively quick."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Convert the notebook to HTML\n",
"Discovered that I needed to ensure that I was in the correct virtualenv when I did this as otherwise there was an error due to the global system version of ipython being far behind the current version.\n",
"\n",
"### This was the error\n",
"```\n",
" ushfeeley  ~  VirtEnvWorkspacen  ipython-learning  ipython nbconvert SafariTutorial1.ipynb --to html\n",
"[NbConvertApp] Using existing profile dir: u'/Users/ushfeeley/.ipython/profile_default'\n",
"[NbConvertApp] Converting notebook SafariTutorial1.ipynb to html\n",
"[NbConvertApp] Support files will be in SafariTutorial1_files/\n",
"Traceback (most recent call last):\n",
" File \"/usr/local/bin/ipython\", line 11, in <module>\n",
" sys.exit(start_ipython())\n",
" File \"/usr/local/lib/python2.7/site-packages/IPython/__init__.py\", line 120, in start_ipython\n",
" return launch_new_instance(argv=argv, **kwargs)\n",
" File \"/usr/local/lib/python2.7/site-packages/IPython/config/application.py\", line 564, in launch_instance\n",
" app.start()\n",
" File \"/usr/local/lib/python2.7/site-packages/IPython/terminal/ipapp.py\", line 367, in start\n",
" return self.subapp.start()\n",
" File \"/usr/local/lib/python2.7/site-packages/IPython/nbconvert/nbconvertapp.py\", line 268, in start\n",
" self.convert_notebooks()\n",
" File \"/usr/local/lib/python2.7/site-packages/IPython/nbconvert/nbconvertapp.py\", line 301, in convert_notebooks\n",
" output, resources = exporter.from_filename(notebook_filename, resources=resources)\n",
" File \"/usr/local/lib/python2.7/site-packages/IPython/nbconvert/exporters/exporter.py\", line 151, in from_filename\n",
" return self.from_notebook_node(nbformat.read(f, 'json'), resources=resources, **kw)\n",
" File \"/usr/local/lib/python2.7/site-packages/IPython/nbformat/current.py\", line 175, in read\n",
" return reads(fp.read(), format, **kwargs)\n",
" File \"/usr/local/lib/python2.7/site-packages/IPython/nbformat/current.py\", line 124, in reads\n",
" return reads_json(s, **kwargs)\n",
" File \"/usr/local/lib/python2.7/site-packages/IPython/nbformat/current.py\", line 79, in reads_json\n",
" return convert(reader_reads(s), current_nbformat)\n",
" File \"/usr/local/lib/python2.7/site-packages/IPython/nbformat/reader.py\", line 88, in reads\n",
" raise NBFormatError('Unsupported nbformat version %s' % major)\n",
"NameError: global name 'NBFormatError' is not defined\n",
"\n",
"If you suspect this is an IPython bug, please report it at:\n",
" https://github.com/ipython/ipython/issues\n",
"or send an email to the mailing list at ipython-dev@scipy.org\n",
"\n",
"You can print a more detailed traceback right now with \"%tb\", or use \"%debug\"\n",
"to interactively debug it.\n",
"\n",
"Extra-detailed tracebacks for bug-reporting purposes can be enabled via:\n",
" c.Application.verbose_crash=True\n",
"\n",
"```\n",
"\n",
"\n",
"```\n",
"\n",
" ushfeeley  ~  VirtEnvWorkspacen  ipython-learning  1  ipython --version\n",
"2.1.0\n",
" ushfeeley  ~  VirtEnvWorkspacen  ipython-learning  workon ipython-learning\n",
" ushfeeley  ⓔ  ipython-learning  ~  VirtEnvWorkspacen  ipython-learning  ipython --version\n",
"5.1.0\n",
" ushfeeley  ⓔ  ipython-learning  ~  VirtEnvWorkspacen  ipython-learning  ipython nbconvert SafariTutorial1.ipynb --to html\n",
"[TerminalIPythonApp] WARNING | Subcommand `ipython nbconvert` is deprecated and will be removed in future versions.\n",
"[TerminalIPythonApp] WARNING | You likely want to use `jupyter nbconvert` in the future\n",
"[NbConvertApp] Converting notebook SafariTutorial1.ipynb to html\n",
"[NbConvertApp] Writing 264400 bytes to SafariTutorial1.html\n",
"```\n",
"\n",
"Subsequently pointing a web-browser to the URL file:///Users/ushfeeley/VirtEnvWorkspacen/ipython-learning/SafariTutorial1.html resulted in a perfectly rendered copy of these notes being available through the browser."
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 2",
"language": "python",
"name": "python2"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.12"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Display the source blob
Display the rendered blob
Raw
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment