{
 "cells": [
  {
   "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"
     ]
    }
   ],
   "source": [
    "print(\"Hi\")"
   ]
  },
  {
   "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": [
    "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."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "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"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "2+10"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "22"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "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"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "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"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "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"
     ]
    }
   ],
   "source": [
    "from __future__ import print_function\n",
    "\n",
    "print('last output:', _)\n",
    "print('next one   :', __)\n",
    "print('and next   :', ___)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "collapsed": false,
    "slideshow": {
     "slide_type": "-"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'_10 == Out[10]'"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "In[11]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'In[11]'"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "_i"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'In[11]'"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "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"
     ]
    }
   ],
   "source": [
    "print('last input:', _i)\n",
    "print('next one  :', _ii)\n",
    "print('and next  :', _iii)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "   1: print(\"Hi\")\n",
      "   2: ?\n",
      "   3:\n",
      "import collections\n",
      "collections.namedtuple?\n",
      "   4: collections.Counter??\n",
      "   5: *int*?\n"
     ]
    }
   ],
   "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": [
      "/Users/minrk/dev/ip/mine/examples/IPython Kernel\r\n"
     ]
    }
   ],
   "source": [
    "!pwd"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "My current directory's files:\n",
      "['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"
     ]
    }
   ],
   "source": [
    "files = !ls\n",
    "print(\"My current directory's files:\")\n",
    "print(files)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[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"
     ]
    }
   ],
   "source": [
    "!echo $files"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "ANIMATIONS USING CLEAR_OUTPUT.IPYNB\r\n"
     ]
    }
   ],
   "source": [
    "!echo {files[0].upper()}"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Note that all this is available even in multiline blocks:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "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",
      "--\n",
      "--\n",
      "--\n",
      "--\n",
      "--\n",
      "--\n",
      "--\n",
      "--\n",
      "--\n",
      "--\n"
     ]
    }
   ],
   "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",
    "        print('--')"
   ]
  },
  {
   "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",
   "execution_count": 23,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "%magic"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Line vs cell magics:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "10000 loops, best of 3: 19.3 µs per loop\n"
     ]
    }
   ],
   "source": [
    "%timeit list(range(1000))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "100000 loops, best of 3: 2.78 µs per loop\n"
     ]
    }
   ],
   "source": [
    "%%timeit\n",
    "list(range(10))\n",
    "list(range(100))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Line magics can be used even inside code blocks:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "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"
     ]
    }
   ],
   "source": [
    "for i in range(1, 5):\n",
    "    size = i*100\n",
    "    print('size:', size, end=' ')\n",
    "    %timeit list(range(size))"
   ]
  },
  {
   "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",
   "execution_count": 27,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "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"
     ]
    }
   ],
   "source": [
    "%%bash\n",
    "echo \"My shell is:\" $SHELL\n",
    "echo \"My disk usage is:\"\n",
    "df -h"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Another interesting cell magic: create any file you want locally from the notebook:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Overwriting test.txt\n"
     ]
    }
   ],
   "source": [
    "%%writefile test.txt\n",
    "This is a test file!\n",
    "It can contain anything I want...\n",
    "\n",
    "And more..."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "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",
      "And more..."
     ]
    }
   ],
   "source": [
    "!cat test.txt"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's see what other magics are currently defined in the system:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "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",
        "doctest_mode": "BasicMagics",
        "ed": "Other",
        "edit": "KernelMagics",
        "env": "OSMagics",
        "gui": "BasicMagics",
        "hist": "Other",
        "history": "HistoryMagics",
        "install_default_config": "DeprecatedMagics",
        "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",
        "namespace": "Other",
        "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",
        "set_env": "OSMagics",
        "store": "StoreMagics",
        "sx": "OSMagics",
        "system": "OSMagics",
        "tb": "ExecutionMagics",
        "tic": "TimerMagics",
        "time": "ExecutionMagics",
        "timeit": "ExecutionMagics",
        "toc": "TimerMagics",
        "unalias": "OSMagics",
        "unload_ext": "ExtensionMagics",
        "who": "NamespaceMagics",
        "who_ls": "NamespaceMagics",
        "whos": "NamespaceMagics",
        "xdel": "NamespaceMagics",
        "xmode": "BasicMagics"
       }
      },
      "text/plain": [
       "Available line magics:\n",
       "%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_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",
       "\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."
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "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",
   "execution_count": 31,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1\n",
      "1\n",
      "2\n",
      "3\n",
      "5\n",
      "8\n"
     ]
    }
   ],
   "source": [
    ">>> # Fibonacci series:\n",
    "... # the sum of two elements defines the next\n",
    "... a, b = 0, 1\n",
    ">>> while b < 10:\n",
    "...     print(b)\n",
    "...     a, b = b, a+b"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0 1 2 3 4 5 6 7 8 9 "
     ]
    }
   ],
   "source": [
    "In [1]: for i in range(10):\n",
    "   ...:     print(i, end=' ')\n",
    "   ...:     "
   ]
  },
  {
   "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",
   "execution_count": 33,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Overwriting mod.py\n"
     ]
    }
   ],
   "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",
   "execution_count": 34,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "ename": "ZeroDivisionError",
     "evalue": "float division by zero",
     "output_type": "error",
     "traceback": [
      "\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",
      "\u001b[1;31mZeroDivisionError\u001b[0m: float division by zero"
     ]
    }
   ],
   "source": [
    "import mod\n",
    "mod.g(0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Exception reporting mode: Plain\n"
     ]
    },
    {
     "ename": "ZeroDivisionError",
     "evalue": "float division by zero",
     "output_type": "error",
     "traceback": [
      "Traceback \u001b[1;36m(most recent call last)\u001b[0m:\n",
      "  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",
      "\u001b[1;31mZeroDivisionError\u001b[0m\u001b[1;31m:\u001b[0m float division by zero\n"
     ]
    }
   ],
   "source": [
    "%xmode plain\n",
    "mod.g(0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Exception reporting mode: Verbose\n"
     ]
    },
    {
     "ename": "ZeroDivisionError",
     "evalue": "float division by zero",
     "output_type": "error",
     "traceback": [
      "\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",
      "\u001b[1;31mZeroDivisionError\u001b[0m: float division by zero"
     ]
    }
   ],
   "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",
   "execution_count": 37,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Exception reporting mode: Context\n"
     ]
    }
   ],
   "source": [
    "%xmode context"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Running code in other languages with special `%%` magics"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "July"
     ]
    }
   ],
   "source": [
    "%%perl\n",
    "@months = (\"July\", \"August\", \"September\");\n",
    "print $months[0];"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Hello World!\n"
     ]
    }
   ],
   "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",
   "execution_count": 40,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "ename": "ZeroDivisionError",
     "evalue": "float division by zero",
     "output_type": "error",
     "traceback": [
      "\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",
      "\u001b[1;31mZeroDivisionError\u001b[0m: float division by zero"
     ]
    }
   ],
   "source": [
    "mod.g(0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "> \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> up\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[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",
      "\u001b[0m\n",
      "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",
      "\u001b[0m\n",
      "ipdb> exit\n"
     ]
    }
   ],
   "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",
   "execution_count": 42,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Are you enjoying this tutorial? yes\n",
      "enjoy is: yes\n"
     ]
    }
   ],
   "source": [
    "enjoy = input('Are you enjoying this tutorial? ')\n",
    "print('enjoy is:', enjoy)"
   ]
  },
  {
   "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",
   "execution_count": 43,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": [
       "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\n",
       "gUJ07DcuELgAAAAASUVORK5CYII=\n"
      ],
      "text/plain": [
       "<matplotlib.figure.Figure at 0x106c2a9b0>"
      ]
     },
     "metadata": {
      "image/png": {
       "height": 392,
       "width": 599
      }
     },
     "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",
   "execution_count": 46,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{\n",
      "  \"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",
      "}\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",
      "    $> ipython <app> --existing kernel-25383540-ce7f-4529-900a-ded0e510d5d8.json \n",
      "or even just:\n",
      "    $> ipython <app> --existing \n",
      "if this is the most recent IPython session you have started.\n"
     ]
    }
   ],
   "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",
   "execution_count": 47,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "%qtconsole"
   ]
  }
 ],
 "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"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}
