##// END OF EJS Templates
Add a core dev section to docs
Add a core dev section to docs

File last commit:

r20547:8f4e2b41
r22022:86151b82
Show More
Beyond Plain Python.ipynb
2523 lines | 129.7 KiB | text/plain | TextLexer
/ examples / IPython Kernel / Beyond Plain Python.ipynb
Brian E. Granger
Work on IPython Kernel notebooks.
r17503 {
Min RK
upate exmaple notebooks to nbformat v4
r18669 "cells": [
Brian E. Granger
Work on IPython Kernel notebooks.
r17503 {
Min RK
upate exmaple notebooks to nbformat v4
r18669 "cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"# IPython: beyond plain Python"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"When executing code in IPython, all valid Python syntax works as-is, but IPython provides a number of features designed to make the interactive experience more fluid and efficient."
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"## First things first: running code, getting help"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In the notebook, to run a cell of code, hit `Shift-Enter`. This executes the cell and puts the cursor in the next cell below, or makes a new one if you are at the end. Alternately, you can use:\n",
" \n",
"- `Alt-Enter` to force the creation of a new cell unconditionally (useful when inserting new content in the middle of an existing notebook).\n",
"- `Control-Enter` executes the cell and keeps the cursor in the same cell, useful for quick experimentation of snippets that you don't need to keep permanently."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Hi\n"
Brian E. Granger
Work on IPython Kernel notebooks.
r17503 ]
Min RK
upate exmaple notebooks to nbformat v4
r18669 }
],
"source": [
Min RK
pass on IPython Kernel example notebooks...
r20547 "print(\"Hi\")"
Min RK
upate exmaple notebooks to nbformat v4
r18669 ]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"Getting help:"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"?"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"Typing `object_name?` will print all sorts of details about any object, including docstrings, function definition lines (for call arguments) and constructor details for classes."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"import collections\n",
"collections.namedtuple?"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"collections.Counter??"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"*int*?"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"An IPython quick reference card:"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"%quickref"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"## Tab completion"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
Min RK
add kernel metadata to example notebooks
r20278 "Tab completion, especially for attributes, is a convenient way to explore the structure of any object you’re dealing with. Simply type `object_name.<TAB>` to view the object’s attributes. Besides Python objects and keywords, tab completion also works on file and directory names."
Min RK
upate exmaple notebooks to nbformat v4
r18669 ]
},
{
"cell_type": "code",
Min RK
pass on IPython Kernel example notebooks...
r20547 "execution_count": null,
Min RK
upate exmaple notebooks to nbformat v4
r18669 "metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"collections."
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"## The interactive workflow: input, output, history"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"12"
]
Brian E. Granger
Work on IPython Kernel notebooks.
r17503 },
Min RK
upate exmaple notebooks to nbformat v4
r18669 "execution_count": 7,
Brian E. Granger
Work on IPython Kernel notebooks.
r17503 "metadata": {},
Min RK
upate exmaple notebooks to nbformat v4
r18669 "output_type": "execute_result"
}
],
"source": [
"2+10"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"22"
]
Brian E. Granger
Work on IPython Kernel notebooks.
r17503 },
Min RK
upate exmaple notebooks to nbformat v4
r18669 "execution_count": 8,
Brian E. Granger
Work on IPython Kernel notebooks.
r17503 "metadata": {},
Min RK
upate exmaple notebooks to nbformat v4
r18669 "output_type": "execute_result"
}
],
"source": [
"_+10"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"You can suppress the storage and rendering of output if you append `;` to the last cell (this comes in handy when plotting with matplotlib, for example):"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"10+20;"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"22"
]
Brian E. Granger
Work on IPython Kernel notebooks.
r17503 },
Min RK
upate exmaple notebooks to nbformat v4
r18669 "execution_count": 10,
Brian E. Granger
Work on IPython Kernel notebooks.
r17503 "metadata": {},
Min RK
upate exmaple notebooks to nbformat v4
r18669 "output_type": "execute_result"
}
],
"source": [
"_"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"The output is stored in `_N` and `Out[N]` variables:"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"True"
]
Brian E. Granger
Work on IPython Kernel notebooks.
r17503 },
Min RK
upate exmaple notebooks to nbformat v4
r18669 "execution_count": 11,
Brian E. Granger
Work on IPython Kernel notebooks.
r17503 "metadata": {},
Min RK
upate exmaple notebooks to nbformat v4
r18669 "output_type": "execute_result"
}
],
"source": [
"_10 == Out[10]"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"And the last three have shorthands for convenience:"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"last output: True\n",
"next one : 22\n",
"and next : 22\n"
Brian E. Granger
Work on IPython Kernel notebooks.
r17503 ]
Min RK
upate exmaple notebooks to nbformat v4
r18669 }
],
"source": [
Min RK
pass on IPython Kernel example notebooks...
r20547 "from __future__ import print_function\n",
"\n",
"print('last output:', _)\n",
"print('next one :', __)\n",
"print('and next :', ___)"
Min RK
upate exmaple notebooks to nbformat v4
r18669 ]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"collapsed": false,
"slideshow": {
"slide_type": "-"
}
},
"outputs": [
Brian E. Granger
Work on IPython Kernel notebooks.
r17503 {
Min RK
upate exmaple notebooks to nbformat v4
r18669 "data": {
"text/plain": [
Min RK
pass on IPython Kernel example notebooks...
r20547 "'_10 == Out[10]'"
Min RK
upate exmaple notebooks to nbformat v4
r18669 ]
Brian E. Granger
Work on IPython Kernel notebooks.
r17503 },
Min RK
upate exmaple notebooks to nbformat v4
r18669 "execution_count": 13,
Brian E. Granger
Work on IPython Kernel notebooks.
r17503 "metadata": {},
Min RK
upate exmaple notebooks to nbformat v4
r18669 "output_type": "execute_result"
}
],
"source": [
"In[11]"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
Min RK
pass on IPython Kernel example notebooks...
r20547 "'In[11]'"
Min RK
upate exmaple notebooks to nbformat v4
r18669 ]
Brian E. Granger
Work on IPython Kernel notebooks.
r17503 },
Min RK
upate exmaple notebooks to nbformat v4
r18669 "execution_count": 14,
Brian E. Granger
Work on IPython Kernel notebooks.
r17503 "metadata": {},
Min RK
upate exmaple notebooks to nbformat v4
r18669 "output_type": "execute_result"
}
],
"source": [
"_i"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
Min RK
pass on IPython Kernel example notebooks...
r20547 "'In[11]'"
Min RK
upate exmaple notebooks to nbformat v4
r18669 ]
Brian E. Granger
Work on IPython Kernel notebooks.
r17503 },
Min RK
upate exmaple notebooks to nbformat v4
r18669 "execution_count": 15,
Brian E. Granger
Work on IPython Kernel notebooks.
r17503 "metadata": {},
Min RK
upate exmaple notebooks to nbformat v4
r18669 "output_type": "execute_result"
}
],
"source": [
"_ii"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"collapsed": false,
"slideshow": {
"slide_type": "subslide"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"last input: _ii\n",
"next one : _i\n",
"and next : In[11]\n"
Brian E. Granger
Work on IPython Kernel notebooks.
r17503 ]
Min RK
upate exmaple notebooks to nbformat v4
r18669 }
],
"source": [
Min RK
pass on IPython Kernel example notebooks...
r20547 "print('last input:', _i)\n",
"print('next one :', _ii)\n",
"print('and next :', _iii)"
Min RK
upate exmaple notebooks to nbformat v4
r18669 ]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
Min RK
pass on IPython Kernel example notebooks...
r20547 " 1: print(\"Hi\")\n",
Min RK
upate exmaple notebooks to nbformat v4
r18669 " 2: ?\n",
" 3:\n",
"import collections\n",
"collections.namedtuple?\n",
" 4: collections.Counter??\n",
" 5: *int*?\n"
Brian E. Granger
Work on IPython Kernel notebooks.
r17503 ]
Min RK
upate exmaple notebooks to nbformat v4
r18669 }
],
"source": [
"%history -n 1-5"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"**Exercise**\n",
"\n",
"Write the last 10 lines of history to a file named `log.py`."
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"## Accessing the underlying operating system"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
Min RK
pass on IPython Kernel example notebooks...
r20547 "/Users/minrk/dev/ip/mine/examples/IPython Kernel\r\n"
Brian E. Granger
Work on IPython Kernel notebooks.
r17503 ]
Min RK
upate exmaple notebooks to nbformat v4
r18669 }
],
"source": [
"!pwd"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"My current directory's files:\n",
Min RK
pass on IPython Kernel example notebooks...
r20547 "['Animations Using clear_output.ipynb', 'Background Jobs.ipynb', 'Beyond Plain Python.ipynb', 'Capturing Output.ipynb', 'Cell Magics.ipynb', 'Custom Display Logic.ipynb', 'Index.ipynb', 'Old Custom Display Logic.ipynb', 'Plotting in the Notebook.ipynb', 'Raw Input in the Notebook.ipynb', 'Rich Output.ipynb', 'Script Magics.ipynb', 'SymPy.ipynb', 'Terminal Usage.ipynb', 'Third Party Rich Output.ipynb', 'Trapezoid Rule.ipynb', 'Working With External Code.ipynb', '__pycache__', 'data', 'example-demo.py', 'gui', 'ipython-completion.bash', 'ipython-get-history.py', 'ipython-qtconsole.desktop', 'ipython.desktop', 'mod.py', 'test.txt']\n"
Brian E. Granger
Work on IPython Kernel notebooks.
r17503 ]
Min RK
upate exmaple notebooks to nbformat v4
r18669 }
],
"source": [
"files = !ls\n",
Min RK
pass on IPython Kernel example notebooks...
r20547 "print(\"My current directory's files:\")\n",
"print(files)"
Min RK
upate exmaple notebooks to nbformat v4
r18669 ]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
Min RK
pass on IPython Kernel example notebooks...
r20547 "[Animations Using clear_output.ipynb, Background Jobs.ipynb, Beyond Plain Python.ipynb, Capturing Output.ipynb, Cell Magics.ipynb, Custom Display Logic.ipynb, Index.ipynb, Old Custom Display Logic.ipynb, Plotting in the Notebook.ipynb, Raw Input in the Notebook.ipynb, Rich Output.ipynb, Script Magics.ipynb, SymPy.ipynb, Terminal Usage.ipynb, Third Party Rich Output.ipynb, Trapezoid Rule.ipynb, Working With External Code.ipynb, __pycache__, data, example-demo.py, gui, ipython-completion.bash, ipython-get-history.py, ipython-qtconsole.desktop, ipython.desktop, mod.py, test.txt]\r\n"
Brian E. Granger
Work on IPython Kernel notebooks.
r17503 ]
Min RK
upate exmaple notebooks to nbformat v4
r18669 }
],
"source": [
"!echo $files"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
Min RK
pass on IPython Kernel example notebooks...
r20547 "ANIMATIONS USING CLEAR_OUTPUT.IPYNB\r\n"
Brian E. Granger
Work on IPython Kernel notebooks.
r17503 ]
Min RK
upate exmaple notebooks to nbformat v4
r18669 }
],
"source": [
"!echo {files[0].upper()}"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Note that all this is available even in multiline blocks:"
]
},
{
"cell_type": "code",
Min RK
pass on IPython Kernel example notebooks...
r20547 "execution_count": 22,
Min RK
upate exmaple notebooks to nbformat v4
r18669 "metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
Min RK
pass on IPython Kernel example notebooks...
r20547 "00 - Animations Using clear_output\n",
"01 - Background Jobs\n",
"02 - Beyond Plain Python\n",
"03 - Capturing Output\n",
"04 - Cell Magics\n",
"05 - Custom Display Logic\n",
"06 - Index\n",
"07 - Old Custom Display Logic\n",
"08 - Plotting in the Notebook\n",
"09 - Raw Input in the Notebook\n",
"10 - Rich Output\n",
"11 - Script Magics\n",
"12 - SymPy\n",
"13 - Terminal Usage\n",
"14 - Third Party Rich Output\n",
"15 - Trapezoid Rule\n",
"16 - Working With External Code\n",
Min RK
upate exmaple notebooks to nbformat v4
r18669 "--\n",
"--\n",
"--\n",
"--\n",
"--\n",
"--\n",
"--\n",
"--\n",
"--\n",
Min RK
pass on IPython Kernel example notebooks...
r20547 "--\n"
Brian E. Granger
Work on IPython Kernel notebooks.
r17503 ]
Min RK
upate exmaple notebooks to nbformat v4
r18669 }
],
"source": [
"import os\n",
"for i,f in enumerate(files):\n",
" if f.endswith('ipynb'):\n",
" !echo {\"%02d\" % i} - \"{os.path.splitext(f)[0]}\"\n",
" else:\n",
Min RK
pass on IPython Kernel example notebooks...
r20547 " print('--')"
Min RK
upate exmaple notebooks to nbformat v4
r18669 ]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Beyond Python: magic functions"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The IPyhton 'magic' functions are a set of commands, invoked by prepending one or two `%` signs to their name, that live in a namespace separate from your normal Python variables and provide a more command-like interface. They take flags with `--` and arguments without quotes, parentheses or commas. The motivation behind this system is two-fold:\n",
" \n",
"- To provide an orthogonal namespace for controlling IPython itself and exposing other system-oriented functionality.\n",
"\n",
"- To expose a calling mode that requires minimal verbosity and typing while working interactively. Thus the inspiration taken from the classic Unix shell style for commands."
]
},
{
"cell_type": "code",
Min RK
pass on IPython Kernel example notebooks...
r20547 "execution_count": 23,
Min RK
upate exmaple notebooks to nbformat v4
r18669 "metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"%magic"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Line vs cell magics:"
]
},
{
"cell_type": "code",
Min RK
pass on IPython Kernel example notebooks...
r20547 "execution_count": 24,
Min RK
upate exmaple notebooks to nbformat v4
r18669 "metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
Min RK
pass on IPython Kernel example notebooks...
r20547 "10000 loops, best of 3: 19.3 µs per loop\n"
Brian E. Granger
Work on IPython Kernel notebooks.
r17503 ]
Min RK
upate exmaple notebooks to nbformat v4
r18669 }
],
"source": [
Min RK
pass on IPython Kernel example notebooks...
r20547 "%timeit list(range(1000))"
Min RK
upate exmaple notebooks to nbformat v4
r18669 ]
},
{
"cell_type": "code",
Min RK
pass on IPython Kernel example notebooks...
r20547 "execution_count": 25,
Min RK
upate exmaple notebooks to nbformat v4
r18669 "metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
Min RK
pass on IPython Kernel example notebooks...
r20547 "100000 loops, best of 3: 2.78 µs per loop\n"
Brian E. Granger
Work on IPython Kernel notebooks.
r17503 ]
Min RK
upate exmaple notebooks to nbformat v4
r18669 }
],
"source": [
"%%timeit\n",
Min RK
pass on IPython Kernel example notebooks...
r20547 "list(range(10))\n",
"list(range(100))"
Min RK
upate exmaple notebooks to nbformat v4
r18669 ]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Line magics can be used even inside code blocks:"
]
},
{
"cell_type": "code",
Min RK
pass on IPython Kernel example notebooks...
r20547 "execution_count": 26,
Min RK
upate exmaple notebooks to nbformat v4
r18669 "metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
Min RK
pass on IPython Kernel example notebooks...
r20547 "size: 100 100000 loops, best of 3: 1.86 µs per loop\n",
"size: 200 100000 loops, best of 3: 2.49 µs per loop\n",
"size: 300 100000 loops, best of 3: 4.04 µs per loop\n",
"size: 400 100000 loops, best of 3: 6.21 µs per loop\n"
Brian E. Granger
Work on IPython Kernel notebooks.
r17503 ]
Min RK
upate exmaple notebooks to nbformat v4
r18669 }
],
"source": [
Min RK
pass on IPython Kernel example notebooks...
r20547 "for i in range(1, 5):\n",
Min RK
upate exmaple notebooks to nbformat v4
r18669 " size = i*100\n",
Min RK
pass on IPython Kernel example notebooks...
r20547 " print('size:', size, end=' ')\n",
" %timeit list(range(size))"
Min RK
upate exmaple notebooks to nbformat v4
r18669 ]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Magics can do anything they want with their input, so it doesn't have to be valid Python:"
]
},
{
"cell_type": "code",
Min RK
pass on IPython Kernel example notebooks...
r20547 "execution_count": 27,
Min RK
upate exmaple notebooks to nbformat v4
r18669 "metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
Min RK
pass on IPython Kernel example notebooks...
r20547 "My shell is: /usr/local/bin/bash\n",
"My disk usage is:\n",
"Filesystem Size Used Avail Capacity iused ifree %iused Mounted on\n",
"/dev/disk1 233Gi 216Gi 16Gi 94% 56788108 4190706 93% /\n",
"devfs 190Ki 190Ki 0Bi 100% 656 0 100% /dev\n",
"map -hosts 0Bi 0Bi 0Bi 100% 0 0 100% /net\n",
"map auto_home 0Bi 0Bi 0Bi 100% 0 0 100% /home\n"
Min RK
upate exmaple notebooks to nbformat v4
r18669 ]
}
],
"source": [
"%%bash\n",
"echo \"My shell is:\" $SHELL\n",
Min RK
pass on IPython Kernel example notebooks...
r20547 "echo \"My disk usage is:\"\n",
"df -h"
Min RK
upate exmaple notebooks to nbformat v4
r18669 ]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Another interesting cell magic: create any file you want locally from the notebook:"
]
},
{
"cell_type": "code",
Min RK
pass on IPython Kernel example notebooks...
r20547 "execution_count": 28,
Min RK
upate exmaple notebooks to nbformat v4
r18669 "metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
Min RK
pass on IPython Kernel example notebooks...
r20547 "Overwriting test.txt\n"
Min RK
upate exmaple notebooks to nbformat v4
r18669 ]
}
],
"source": [
"%%writefile test.txt\n",
"This is a test file!\n",
"It can contain anything I want...\n",
"\n",
"And more..."
]
},
{
"cell_type": "code",
Min RK
pass on IPython Kernel example notebooks...
r20547 "execution_count": 29,
Min RK
upate exmaple notebooks to nbformat v4
r18669 "metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"This is a test file!\r\n",
"It can contain anything I want...\r\n",
"\r\n",
Brian E. Granger
Work on IPython Kernel notebooks.
r17503 "And more..."
]
Min RK
upate exmaple notebooks to nbformat v4
r18669 }
],
"source": [
"!cat test.txt"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's see what other magics are currently defined in the system:"
]
},
{
"cell_type": "code",
Min RK
pass on IPython Kernel example notebooks...
r20547 "execution_count": 30,
Min RK
upate exmaple notebooks to nbformat v4
r18669 "metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"application/json": {
"cell": {
"!": "OSMagics",
"HTML": "Other",
"SVG": "Other",
"bash": "Other",
"capture": "ExecutionMagics",
"debug": "ExecutionMagics",
"file": "Other",
"html": "DisplayMagics",
"javascript": "DisplayMagics",
"latex": "DisplayMagics",
"perl": "Other",
"prun": "ExecutionMagics",
"pypy": "Other",
"python": "Other",
"python2": "Other",
"python3": "Other",
"ruby": "Other",
"script": "ScriptMagics",
"sh": "Other",
"svg": "DisplayMagics",
"sx": "OSMagics",
"system": "OSMagics",
"time": "ExecutionMagics",
"timeit": "ExecutionMagics",
"writefile": "OSMagics"
},
"line": {
"alias": "OSMagics",
"alias_magic": "BasicMagics",
"autocall": "AutoMagics",
"automagic": "AutoMagics",
"autosave": "KernelMagics",
"bookmark": "OSMagics",
"cat": "Other",
"cd": "OSMagics",
"clear": "KernelMagics",
"colors": "BasicMagics",
"config": "ConfigMagics",
"connect_info": "KernelMagics",
"cp": "Other",
"debug": "ExecutionMagics",
"dhist": "OSMagics",
"dirs": "OSMagics",
Min RK
pass on IPython Kernel example notebooks...
r20547 "doctest_mode": "BasicMagics",
Min RK
upate exmaple notebooks to nbformat v4
r18669 "ed": "Other",
"edit": "KernelMagics",
"env": "OSMagics",
"gui": "BasicMagics",
"hist": "Other",
"history": "HistoryMagics",
"install_default_config": "DeprecatedMagics",
"install_ext": "ExtensionMagics",
"install_profiles": "DeprecatedMagics",
"killbgscripts": "ScriptMagics",
"ldir": "Other",
"less": "KernelMagics",
"lf": "Other",
"lk": "Other",
"ll": "Other",
"load": "CodeMagics",
"load_ext": "ExtensionMagics",
"loadpy": "CodeMagics",
"logoff": "LoggingMagics",
"logon": "LoggingMagics",
"logstart": "LoggingMagics",
"logstate": "LoggingMagics",
"logstop": "LoggingMagics",
"ls": "Other",
"lsmagic": "BasicMagics",
"lx": "Other",
"macro": "ExecutionMagics",
"magic": "BasicMagics",
"man": "KernelMagics",
"matplotlib": "PylabMagics",
"mkdir": "Other",
"more": "KernelMagics",
"mv": "Other",
Min RK
pass on IPython Kernel example notebooks...
r20547 "namespace": "Other",
Min RK
upate exmaple notebooks to nbformat v4
r18669 "notebook": "BasicMagics",
"page": "BasicMagics",
"pastebin": "CodeMagics",
"pdb": "ExecutionMagics",
"pdef": "NamespaceMagics",
"pdoc": "NamespaceMagics",
"pfile": "NamespaceMagics",
"pinfo": "NamespaceMagics",
"pinfo2": "NamespaceMagics",
"popd": "OSMagics",
"pprint": "BasicMagics",
"precision": "BasicMagics",
"profile": "BasicMagics",
"prun": "ExecutionMagics",
"psearch": "NamespaceMagics",
"psource": "NamespaceMagics",
"pushd": "OSMagics",
"pwd": "OSMagics",
"pycat": "OSMagics",
"pylab": "PylabMagics",
"qtconsole": "KernelMagics",
"quickref": "BasicMagics",
"recall": "HistoryMagics",
"rehashx": "OSMagics",
"reload_ext": "ExtensionMagics",
"rep": "Other",
"rerun": "HistoryMagics",
"reset": "NamespaceMagics",
"reset_selective": "NamespaceMagics",
"rm": "Other",
"rmdir": "Other",
"run": "ExecutionMagics",
"save": "CodeMagics",
"sc": "OSMagics",
Min RK
pass on IPython Kernel example notebooks...
r20547 "set_env": "OSMagics",
Min RK
upate exmaple notebooks to nbformat v4
r18669 "store": "StoreMagics",
"sx": "OSMagics",
"system": "OSMagics",
"tb": "ExecutionMagics",
Min RK
pass on IPython Kernel example notebooks...
r20547 "tic": "TimerMagics",
Min RK
upate exmaple notebooks to nbformat v4
r18669 "time": "ExecutionMagics",
"timeit": "ExecutionMagics",
Min RK
pass on IPython Kernel example notebooks...
r20547 "toc": "TimerMagics",
Min RK
upate exmaple notebooks to nbformat v4
r18669 "unalias": "OSMagics",
"unload_ext": "ExtensionMagics",
"who": "NamespaceMagics",
"who_ls": "NamespaceMagics",
"whos": "NamespaceMagics",
"xdel": "NamespaceMagics",
"xmode": "BasicMagics"
}
},
"text/plain": [
"Available line magics:\n",
Min RK
pass on IPython Kernel example notebooks...
r20547 "%alias %alias_magic %autocall %automagic %autosave %bookmark %cat %cd %clear %colors %config %connect_info %cp %debug %dhist %dirs %doctest_mode %ed %edit %env %gui %hist %history %install_default_config %install_ext %install_profiles %killbgscripts %ldir %less %lf %lk %ll %load %load_ext %loadpy %logoff %logon %logstart %logstate %logstop %ls %lsmagic %lx %macro %magic %man %matplotlib %mkdir %more %mv %namespace %notebook %page %pastebin %pdb %pdef %pdoc %pfile %pinfo %pinfo2 %popd %pprint %precision %profile %prun %psearch %psource %pushd %pwd %pycat %pylab %qtconsole %quickref %recall %rehashx %reload_ext %rep %rerun %reset %reset_selective %rm %rmdir %run %save %sc %set_env %store %sx %system %tb %tic %time %timeit %toc %unalias %unload_ext %who %who_ls %whos %xdel %xmode\n",
Min RK
upate exmaple notebooks to nbformat v4
r18669 "\n",
"Available cell magics:\n",
"%%! %%HTML %%SVG %%bash %%capture %%debug %%file %%html %%javascript %%latex %%perl %%prun %%pypy %%python %%python2 %%python3 %%ruby %%script %%sh %%svg %%sx %%system %%time %%timeit %%writefile\n",
"\n",
"Automagic is ON, % prefix IS NOT needed for line magics."
]
},
Min RK
pass on IPython Kernel example notebooks...
r20547 "execution_count": 30,
Brian E. Granger
Work on IPython Kernel notebooks.
r17503 "metadata": {},
Min RK
upate exmaple notebooks to nbformat v4
r18669 "output_type": "execute_result"
}
],
"source": [
"%lsmagic"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Running normal Python code: execution and errors"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Not only can you input normal Python code, you can even paste straight from a Python or IPython shell session:"
]
},
{
"cell_type": "code",
Min RK
pass on IPython Kernel example notebooks...
r20547 "execution_count": 31,
Min RK
upate exmaple notebooks to nbformat v4
r18669 "metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1\n",
"1\n",
"2\n",
"3\n",
"5\n",
"8\n"
Brian E. Granger
Work on IPython Kernel notebooks.
r17503 ]
Min RK
upate exmaple notebooks to nbformat v4
r18669 }
],
"source": [
">>> # Fibonacci series:\n",
"... # the sum of two elements defines the next\n",
"... a, b = 0, 1\n",
">>> while b < 10:\n",
Min RK
pass on IPython Kernel example notebooks...
r20547 "... print(b)\n",
Min RK
upate exmaple notebooks to nbformat v4
r18669 "... a, b = b, a+b"
]
},
{
"cell_type": "code",
Min RK
pass on IPython Kernel example notebooks...
r20547 "execution_count": 32,
Min RK
upate exmaple notebooks to nbformat v4
r18669 "metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
Min RK
pass on IPython Kernel example notebooks...
r20547 "0 1 2 3 4 5 6 7 8 9 "
Brian E. Granger
Work on IPython Kernel notebooks.
r17503 ]
Min RK
upate exmaple notebooks to nbformat v4
r18669 }
],
"source": [
"In [1]: for i in range(10):\n",
Min RK
pass on IPython Kernel example notebooks...
r20547 " ...: print(i, end=' ')\n",
Min RK
upate exmaple notebooks to nbformat v4
r18669 " ...: "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"And when your code produces errors, you can control how they are displayed with the `%xmode` magic:"
]
},
{
"cell_type": "code",
Min RK
pass on IPython Kernel example notebooks...
r20547 "execution_count": 33,
Min RK
upate exmaple notebooks to nbformat v4
r18669 "metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
Min RK
pass on IPython Kernel example notebooks...
r20547 "Overwriting mod.py\n"
Brian E. Granger
Work on IPython Kernel notebooks.
r17503 ]
Min RK
upate exmaple notebooks to nbformat v4
r18669 }
],
"source": [
"%%writefile mod.py\n",
"\n",
"def f(x):\n",
" return 1.0/(x-1)\n",
"\n",
"def g(y):\n",
" return f(y+1)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now let's call the function `g` with an argument that would produce an error:"
]
},
{
"cell_type": "code",
Min RK
pass on IPython Kernel example notebooks...
r20547 "execution_count": 34,
Min RK
upate exmaple notebooks to nbformat v4
r18669 "metadata": {
"collapsed": false
},
"outputs": [
{
"ename": "ZeroDivisionError",
"evalue": "float division by zero",
"output_type": "error",
"traceback": [
Min RK
pass on IPython Kernel example notebooks...
r20547 "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[1;31mZeroDivisionError\u001b[0m Traceback (most recent call last)",
"\u001b[1;32m<ipython-input-40-a54c5799f57e>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mmod\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 2\u001b[1;33m \u001b[0mmod\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mg\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m",
"\u001b[1;32m/Users/minrk/dev/ip/mine/examples/IPython Kernel/mod.py\u001b[0m in \u001b[0;36mg\u001b[1;34m(y)\u001b[0m\n\u001b[0;32m 4\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 5\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0mg\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0my\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 6\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0mf\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0my\u001b[0m\u001b[1;33m+\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m",
"\u001b[1;32m/Users/minrk/dev/ip/mine/examples/IPython Kernel/mod.py\u001b[0m in \u001b[0;36mf\u001b[1;34m(x)\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 2\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0mf\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mx\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 3\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[1;36m1.0\u001b[0m\u001b[1;33m/\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mx\u001b[0m\u001b[1;33m-\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 4\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 5\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0mg\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0my\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
Min RK
upate exmaple notebooks to nbformat v4
r18669 "\u001b[1;31mZeroDivisionError\u001b[0m: float division by zero"
Brian E. Granger
Work on IPython Kernel notebooks.
r17503 ]
Min RK
upate exmaple notebooks to nbformat v4
r18669 }
],
"source": [
"import mod\n",
"mod.g(0)"
]
},
{
"cell_type": "code",
Min RK
pass on IPython Kernel example notebooks...
r20547 "execution_count": 35,
Min RK
upate exmaple notebooks to nbformat v4
r18669 "metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Exception reporting mode: Plain\n"
Brian E. Granger
Work on IPython Kernel notebooks.
r17503 ]
},
{
Min RK
upate exmaple notebooks to nbformat v4
r18669 "ename": "ZeroDivisionError",
"evalue": "float division by zero",
"output_type": "error",
"traceback": [
"Traceback \u001b[1;36m(most recent call last)\u001b[0m:\n",
Min RK
pass on IPython Kernel example notebooks...
r20547 " File \u001b[0;32m\"<ipython-input-41-8932f4bf53fa>\"\u001b[0m, line \u001b[0;32m2\u001b[0m, in \u001b[0;35m<module>\u001b[0m\n mod.g(0)\n",
" File \u001b[0;32m\"/Users/minrk/dev/ip/mine/examples/IPython Kernel/mod.py\"\u001b[0m, line \u001b[0;32m6\u001b[0m, in \u001b[0;35mg\u001b[0m\n return f(y+1)\n",
"\u001b[1;36m File \u001b[1;32m\"/Users/minrk/dev/ip/mine/examples/IPython Kernel/mod.py\"\u001b[1;36m, line \u001b[1;32m3\u001b[1;36m, in \u001b[1;35mf\u001b[1;36m\u001b[0m\n\u001b[1;33m return 1.0/(x-1)\u001b[0m\n",
Min RK
upate exmaple notebooks to nbformat v4
r18669 "\u001b[1;31mZeroDivisionError\u001b[0m\u001b[1;31m:\u001b[0m float division by zero\n"
Brian E. Granger
Work on IPython Kernel notebooks.
r17503 ]
Min RK
upate exmaple notebooks to nbformat v4
r18669 }
],
"source": [
"%xmode plain\n",
"mod.g(0)"
]
},
{
"cell_type": "code",
Min RK
pass on IPython Kernel example notebooks...
r20547 "execution_count": 36,
Min RK
upate exmaple notebooks to nbformat v4
r18669 "metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Exception reporting mode: Verbose\n"
Brian E. Granger
Work on IPython Kernel notebooks.
r17503 ]
},
{
Min RK
upate exmaple notebooks to nbformat v4
r18669 "ename": "ZeroDivisionError",
"evalue": "float division by zero",
"output_type": "error",
"traceback": [
Min RK
pass on IPython Kernel example notebooks...
r20547 "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[1;31mZeroDivisionError\u001b[0m Traceback (most recent call last)",
"\u001b[1;32m<ipython-input-42-539f73e80e01>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[0mget_ipython\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mmagic\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'xmode verbose'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 2\u001b[1;33m \u001b[0mmod\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mg\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m \u001b[1;36mglobal\u001b[0m \u001b[0;36mmod.g\u001b[0m \u001b[1;34m= <function g at 0x105887d08>\u001b[0m\n",
"\u001b[1;32m/Users/minrk/dev/ip/mine/examples/IPython Kernel/mod.py\u001b[0m in \u001b[0;36mg\u001b[1;34m(y=0)\u001b[0m\n\u001b[0;32m 4\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 5\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0mg\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0my\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 6\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0mf\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0my\u001b[0m\u001b[1;33m+\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m \u001b[1;36mglobal\u001b[0m \u001b[0;36mf\u001b[0m \u001b[1;34m= <function f at 0x105887d90>\u001b[0m\u001b[1;34m\n \u001b[0m\u001b[0;36my\u001b[0m \u001b[1;34m= 0\u001b[0m\n",
"\u001b[1;32m/Users/minrk/dev/ip/mine/examples/IPython Kernel/mod.py\u001b[0m in \u001b[0;36mf\u001b[1;34m(x=1)\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 2\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0mf\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mx\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 3\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[1;36m1.0\u001b[0m\u001b[1;33m/\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mx\u001b[0m\u001b[1;33m-\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m \u001b[0;36mx\u001b[0m \u001b[1;34m= 1\u001b[0m\n\u001b[0;32m 4\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 5\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0mg\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0my\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
Min RK
upate exmaple notebooks to nbformat v4
r18669 "\u001b[1;31mZeroDivisionError\u001b[0m: float division by zero"
Brian E. Granger
Work on IPython Kernel notebooks.
r17503 ]
Min RK
upate exmaple notebooks to nbformat v4
r18669 }
],
"source": [
"%xmode verbose\n",
"mod.g(0)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The default `%xmode` is \"context\", which shows additional context but not all local variables. Let's restore that one for the rest of our session."
]
},
{
"cell_type": "code",
Min RK
pass on IPython Kernel example notebooks...
r20547 "execution_count": 37,
Min RK
upate exmaple notebooks to nbformat v4
r18669 "metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Exception reporting mode: Context\n"
Brian E. Granger
Work on IPython Kernel notebooks.
r17503 ]
Min RK
upate exmaple notebooks to nbformat v4
r18669 }
],
"source": [
"%xmode context"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Running code in other languages with special `%%` magics"
]
},
{
"cell_type": "code",
Min RK
pass on IPython Kernel example notebooks...
r20547 "execution_count": 38,
Min RK
upate exmaple notebooks to nbformat v4
r18669 "metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"July"
Brian E. Granger
Work on IPython Kernel notebooks.
r17503 ]
Min RK
upate exmaple notebooks to nbformat v4
r18669 }
],
"source": [
"%%perl\n",
"@months = (\"July\", \"August\", \"September\");\n",
"print $months[0];"
]
},
{
"cell_type": "code",
Min RK
pass on IPython Kernel example notebooks...
r20547 "execution_count": 39,
Min RK
upate exmaple notebooks to nbformat v4
r18669 "metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Hello World!\n"
Brian E. Granger
Work on IPython Kernel notebooks.
r17503 ]
Min RK
upate exmaple notebooks to nbformat v4
r18669 }
],
"source": [
"%%ruby\n",
"name = \"world\"\n",
"puts \"Hello #{name.capitalize}!\""
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Raw Input in the notebook"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Since 1.0 the IPython notebook web application support `raw_input` which for example allow us to invoke the `%debug` magic in the notebook:"
]
},
{
"cell_type": "code",
Min RK
pass on IPython Kernel example notebooks...
r20547 "execution_count": 40,
Min RK
upate exmaple notebooks to nbformat v4
r18669 "metadata": {
"collapsed": false
},
"outputs": [
{
"ename": "ZeroDivisionError",
"evalue": "float division by zero",
"output_type": "error",
"traceback": [
Min RK
pass on IPython Kernel example notebooks...
r20547 "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[1;31mZeroDivisionError\u001b[0m Traceback (most recent call last)",
"\u001b[1;32m<ipython-input-46-5e708f13c839>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mmod\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mg\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m",
"\u001b[1;32m/Users/minrk/dev/ip/mine/examples/IPython Kernel/mod.py\u001b[0m in \u001b[0;36mg\u001b[1;34m(y)\u001b[0m\n\u001b[0;32m 4\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 5\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0mg\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0my\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 6\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0mf\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0my\u001b[0m\u001b[1;33m+\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m",
"\u001b[1;32m/Users/minrk/dev/ip/mine/examples/IPython Kernel/mod.py\u001b[0m in \u001b[0;36mf\u001b[1;34m(x)\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 2\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0mf\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mx\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 3\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[1;36m1.0\u001b[0m\u001b[1;33m/\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mx\u001b[0m\u001b[1;33m-\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 4\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 5\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0mg\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0my\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
Min RK
upate exmaple notebooks to nbformat v4
r18669 "\u001b[1;31mZeroDivisionError\u001b[0m: float division by zero"
Brian E. Granger
Work on IPython Kernel notebooks.
r17503 ]
Min RK
upate exmaple notebooks to nbformat v4
r18669 }
],
"source": [
"mod.g(0)"
]
},
{
"cell_type": "code",
Min RK
pass on IPython Kernel example notebooks...
r20547 "execution_count": 41,
Min RK
upate exmaple notebooks to nbformat v4
r18669 "metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
Min RK
pass on IPython Kernel example notebooks...
r20547 "> \u001b[1;32m/Users/minrk/dev/ip/mine/examples/IPython Kernel/mod.py\u001b[0m(3)\u001b[0;36mf\u001b[1;34m()\u001b[0m\n",
"\u001b[1;32m 2 \u001b[1;33m\u001b[1;32mdef\u001b[0m \u001b[0mf\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mx\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
"\u001b[0m\u001b[1;32m----> 3 \u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[1;36m1.0\u001b[0m\u001b[1;33m/\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mx\u001b[0m\u001b[1;33m-\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
"\u001b[0m\u001b[1;32m 4 \u001b[1;33m\u001b[1;33m\u001b[0m\u001b[0m\n",
Min RK
upate exmaple notebooks to nbformat v4
r18669 "\u001b[0m\n",
"ipdb> up\n",
Min RK
pass on IPython Kernel example notebooks...
r20547 "> \u001b[1;32m/Users/minrk/dev/ip/mine/examples/IPython Kernel/mod.py\u001b[0m(6)\u001b[0;36mg\u001b[1;34m()\u001b[0m\n",
"\u001b[1;32m 4 \u001b[1;33m\u001b[1;33m\u001b[0m\u001b[0m\n",
"\u001b[0m\u001b[1;32m 5 \u001b[1;33m\u001b[1;32mdef\u001b[0m \u001b[0mg\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0my\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
"\u001b[0m\u001b[1;32m----> 6 \u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0mf\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0my\u001b[0m\u001b[1;33m+\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
Min RK
upate exmaple notebooks to nbformat v4
r18669 "\u001b[0m\n",
Min RK
pass on IPython Kernel example notebooks...
r20547 "ipdb> down\n",
"> \u001b[1;32m/Users/minrk/dev/ip/mine/examples/IPython Kernel/mod.py\u001b[0m(3)\u001b[0;36mf\u001b[1;34m()\u001b[0m\n",
"\u001b[1;32m 2 \u001b[1;33m\u001b[1;32mdef\u001b[0m \u001b[0mf\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mx\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
"\u001b[0m\u001b[1;32m----> 3 \u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[1;36m1.0\u001b[0m\u001b[1;33m/\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mx\u001b[0m\u001b[1;33m-\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
"\u001b[0m\u001b[1;32m 4 \u001b[1;33m\u001b[1;33m\u001b[0m\u001b[0m\n",
"\u001b[0m\n",
"ipdb> bt\n",
" \u001b[1;32m<ipython-input-46-5e708f13c839>\u001b[0m(1)\u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n",
"\u001b[1;32m----> 1 \u001b[1;33m\u001b[0mmod\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mg\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
"\u001b[0m\n",
" \u001b[1;32m/Users/minrk/dev/ip/mine/examples/IPython Kernel/mod.py\u001b[0m(6)\u001b[0;36mg\u001b[1;34m()\u001b[0m\n",
"\u001b[0;32m 2 \u001b[0m\u001b[1;32mdef\u001b[0m \u001b[0mf\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mx\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
"\u001b[0;32m 3 \u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[1;36m1.0\u001b[0m\u001b[1;33m/\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mx\u001b[0m\u001b[1;33m-\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
"\u001b[0;32m 4 \u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
"\u001b[0;32m 5 \u001b[0m\u001b[1;32mdef\u001b[0m \u001b[0mg\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0my\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
"\u001b[1;32m----> 6 \u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0mf\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0my\u001b[0m\u001b[1;33m+\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
"\u001b[0m\n",
"> \u001b[1;32m/Users/minrk/dev/ip/mine/examples/IPython Kernel/mod.py\u001b[0m(3)\u001b[0;36mf\u001b[1;34m()\u001b[0m\n",
"\u001b[1;32m 1 \u001b[1;33m\u001b[1;33m\u001b[0m\u001b[0m\n",
"\u001b[0m\u001b[1;32m 2 \u001b[1;33m\u001b[1;32mdef\u001b[0m \u001b[0mf\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mx\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
"\u001b[0m\u001b[1;32m----> 3 \u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[1;36m1.0\u001b[0m\u001b[1;33m/\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mx\u001b[0m\u001b[1;33m-\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
"\u001b[0m\u001b[1;32m 4 \u001b[1;33m\u001b[1;33m\u001b[0m\u001b[0m\n",
"\u001b[0m\u001b[1;32m 5 \u001b[1;33m\u001b[1;32mdef\u001b[0m \u001b[0mg\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0my\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
Min RK
upate exmaple notebooks to nbformat v4
r18669 "\u001b[0m\n",
"ipdb> exit\n"
Brian E. Granger
Work on IPython Kernel notebooks.
r17503 ]
Min RK
upate exmaple notebooks to nbformat v4
r18669 }
],
"source": [
"%debug"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Don't foget to exit your debugging session. Raw input can of course be use to ask for user input:"
]
},
{
"cell_type": "code",
Min RK
pass on IPython Kernel example notebooks...
r20547 "execution_count": 42,
Min RK
upate exmaple notebooks to nbformat v4
r18669 "metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
Min RK
pass on IPython Kernel example notebooks...
r20547 "Are you enjoying this tutorial? yes\n",
"enjoy is: yes\n"
Brian E. Granger
Work on IPython Kernel notebooks.
r17503 ]
Min RK
upate exmaple notebooks to nbformat v4
r18669 }
],
"source": [
Min RK
pass on IPython Kernel example notebooks...
r20547 "enjoy = input('Are you enjoying this tutorial? ')\n",
"print('enjoy is:', enjoy)"
Min RK
upate exmaple notebooks to nbformat v4
r18669 ]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Plotting in the notebook"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This magic configures matplotlib to render its figures inline:"
]
},
{
"cell_type": "code",
Min RK
pass on IPython Kernel example notebooks...
r20547 "execution_count": 43,
Min RK
upate exmaple notebooks to nbformat v4
r18669 "metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"%matplotlib inline"
]
},
{
"cell_type": "code",
Min RK
pass on IPython Kernel example notebooks...
r20547 "execution_count": 44,
Min RK
upate exmaple notebooks to nbformat v4
r18669 "metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"import numpy as np\n",
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "code",
Min RK
pass on IPython Kernel example notebooks...
r20547 "execution_count": 45,
Min RK
upate exmaple notebooks to nbformat v4
r18669 "metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": [
Min RK
pass on IPython Kernel example notebooks...
r20547 "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\n",
"qrEMrySp3RYqr2pqnZqWw9o1DcMrrSQPr6y8ml1lhldWXo3OyqvyTRVedXr9tcChZJv5bC9qUVJR\n",
"DK8kqd2+T/aCaTNwcs1rmYSVV5qG4ZVWkrcNWnk1uwyvmuF2sgH3G+PA+2lYebW0PLw6fOhZy1to\n",
"GXSWm5rI8EqSWiw+OflKvPmoOtcyrvjk9wFk7xBeWvNyNJtqCa/iz+4xwD0sDgRXM5XaNhgHKx8b\n",
"b/qzUA7DqwaIzzfysGna6isrr5aWz6matG0wD72cd6VGMrySJM1keEVWdbUKuHTQTXbVvRjNpLoq\n",
"r/Ig5NpBN9lT8WNrPGXPvDoSWA3cNugmO0p6jLbLA44i2tVyDmyfTFHhlZVXS5t25pU7DarRDK8k\n",
"SV+Nx0fWuorx5UPmvzn0LGl5dYVXecvgVRU/rsZ3K7ADOKzT60+zg9dy8pbB75dwbWXygMOB7fXL\n",
"515NO7TdyqulGV5prhleSZIWwqvYwjIrfjQeDa80qW3xeFLFP/vOu5oRsdUpn3tVxtB2512V7zZg\n",
"L7ApDqQuQh5e+SJ/PFZelauwmVcFrEUq3Cy9SJEklWDQTa4le3G2CTi15uWMIw+vLqx1FZpZg25y\n",
"B1klwDpgS4UPbXg1W8psHTS8Ktmgm+xlsb3vyGHnjiH/vjmnbDxWXpWrqJlXhrJqJMMrSRLMWOtg\n",
"p9dfhZVXKkYdrYOGV7OlzPAqD00Nr8pV9ND24+PxuoKu1xZTV17Fv//5/Q2v7s22Qc01wytJEsze\n",
"0Pb7kb0IuRUDAE3H8EorycMr2wZnV17xc+zQs0aXh47OKhtPEZVXG4G1wF2DbnL39EuaK4ZXmmuG\n",
"V5IkmL3wamFYe5xJI03K8EoryWde2TY4u/IKqeOHnjWCTq+/kSxA2UE2T0ujK2LmlfOuljftzKv8\n",
"fs68UiMZXkmSYLFt8MdmZGi7865UlDrCqxPi0fBqNjjzavYVOXQ/r7q6zjdPxlZE5ZUtg8ubduaV\n",
"lVdqtFl4gSJJKtmgm1xP9kJ6I/CgmpczCuddqSiVhlexauM4YBfOy5kVtg3OvsIqr/a7hi2D4yui\n",
"8iqfW2bl1X3ZNqi5ZnglScrNUuug4ZWKUnXl1cn54w66yZ6KHlPTsfJq9pVSeVXAtdrGyqtyLbQN\n",
"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\n",
"gUJ07DcuELgAAAAASUVORK5CYII=\n"
Min RK
upate exmaple notebooks to nbformat v4
r18669 ],
"text/plain": [
Min RK
pass on IPython Kernel example notebooks...
r20547 "<matplotlib.figure.Figure at 0x106c2a9b0>"
Min RK
upate exmaple notebooks to nbformat v4
r18669 ]
},
Min RK
pass on IPython Kernel example notebooks...
r20547 "metadata": {
"image/png": {
"height": 392,
"width": 599
}
},
Min RK
upate exmaple notebooks to nbformat v4
r18669 "output_type": "display_data"
}
],
"source": [
"x = np.linspace(0, 2*np.pi, 300)\n",
"y = np.sin(x**2)\n",
"plt.plot(x, y)\n",
"plt.title(\"A little chirp\")\n",
"fig = plt.gcf() # let's keep the figure object around for later..."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## The IPython kernel/client model"
]
},
{
"cell_type": "code",
Min RK
pass on IPython Kernel example notebooks...
r20547 "execution_count": 46,
Min RK
upate exmaple notebooks to nbformat v4
r18669 "metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"{\n",
Min RK
pass on IPython Kernel example notebooks...
r20547 " \"stdin_port\": 62401,\n",
" \"key\": \"64c935a7-64e8-4ab7-ab22-6e0f3ff84e02\",\n",
" \"hb_port\": 62403,\n",
" \"transport\": \"tcp\",\n",
" \"signature_scheme\": \"hmac-sha256\",\n",
" \"shell_port\": 62399,\n",
" \"control_port\": 62402,\n",
" \"ip\": \"127.0.0.1\",\n",
" \"iopub_port\": 62400\n",
Min RK
upate exmaple notebooks to nbformat v4
r18669 "}\n",
"\n",
"Paste the above JSON into a file, and connect with:\n",
" $> ipython <app> --existing <file>\n",
"or, if you are local, you can connect with just:\n",
Min RK
pass on IPython Kernel example notebooks...
r20547 " $> ipython <app> --existing kernel-25383540-ce7f-4529-900a-ded0e510d5d8.json \n",
Min RK
upate exmaple notebooks to nbformat v4
r18669 "or even just:\n",
" $> ipython <app> --existing \n",
"if this is the most recent IPython session you have started.\n"
Brian E. Granger
Work on IPython Kernel notebooks.
r17503 ]
}
],
Min RK
upate exmaple notebooks to nbformat v4
r18669 "source": [
"%connect_info"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can connect automatically a Qt Console to the currently running kernel with the `%qtconsole` magic, or by typing `ipython console --existing <kernel-UUID>` in any terminal:"
]
},
{
"cell_type": "code",
Min RK
pass on IPython Kernel example notebooks...
r20547 "execution_count": 47,
Min RK
upate exmaple notebooks to nbformat v4
r18669 "metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"%qtconsole"
]
Brian E. Granger
Work on IPython Kernel notebooks.
r17503 }
Min RK
upate exmaple notebooks to nbformat v4
r18669 ],
Min RK
add kernel metadata to example notebooks
r20278 "metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.4.2"
}
},
Min RK
upate exmaple notebooks to nbformat v4
r18669 "nbformat": 4,
"nbformat_minor": 0
Min RK
add kernel metadata to example notebooks
r20278 }