{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Customizing IPython - Magics"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "IPython extends Python by adding shell-like commands called **magics**."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "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_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",
        "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",
        "time": "ExecutionMagics",
        "timeit": "ExecutionMagics",
        "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_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  %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  %time  %timeit  %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": 1,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "%lsmagic"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "import numpy"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "100 loops, best of 3: 18.3 ms per loop\n"
     ]
    }
   ],
   "source": [
    "%timeit A=numpy.random.random((1000,1000))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1 loops, best of 3: 22.2 ms per loop\n"
     ]
    }
   ],
   "source": [
    "%%timeit -n 1\n",
    "\n",
    "A=numpy.random.random((1000,1000))\n",
    "b = A.sum()\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Defining your own magic"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "As we have seen already, IPython has cell and line magics. You can define your own magics using any Python function and the `register_magic_function` method:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "ip = get_ipython()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "import time\n",
    "\n",
    "def sleep_magic(line):\n",
    "    \"\"\"A simple function for sleeping\"\"\"\n",
    "    t = float(line)\n",
    "    time.sleep(t)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "ip.register_magic_function?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "ip.register_magic_function(sleep_magic, \"line\", \"sleep\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "%sleep 2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "%sleep?"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Exercise"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Define `%tic` and `%toc` magics, which can be use for simple timings, e.g. where\n",
    "\n",
    "```python\n",
    "for p in range(1,4):\n",
    "    N = 10**p\n",
    "    print \"N=%i\" % N\n",
    "    %tic\n",
    "    A = np.random.random((N,N))\n",
    "    np.linalg.eigvals(A)\n",
    "    %toc\n",
    "```\n",
    "\n",
    "each `%toc` will print the time since the last `%tic`. Create separate `tic` and `toc` functions that read and write\n",
    "a global time variable."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "%load soln/tictocf.py"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "N=10\n",
      "644 µs\n",
      "N=100\n",
      "15.8 ms\n",
      "N=1000\n",
      "9.05 s\n"
     ]
    }
   ],
   "source": [
    "import numpy as np\n",
    "import sys\n",
    "for p in range(1,4):\n",
    "    N = 10**p\n",
    "    print(\"N=%i\" % N)\n",
    "    sys.stdout.flush()\n",
    "    %tic\n",
    "    A = np.random.random((N,N))\n",
    "    np.linalg.eigvals(A)\n",
    "    %toc"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Cell Magic"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Cell magics** take two args:\n",
    "\n",
    "1. the **line** on the same line of the magic \n",
    "2. the **cell** the multiline body of the cell after the first line"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "def dummy_cell_magic(line, cell):\n",
    "    \"\"\"dummy cell magic for displaying the line and cell it is passed\"\"\"\n",
    "    print(\"line: %r\" % line)\n",
    "    print(\"cell: %r\" % cell)\n",
    "\n",
    "ip.register_magic_function(dummy_cell_magic, \"cell\", \"dummy\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "line: 'this is the line'\n",
      "cell: 'this\\nis the\\ncell'\n"
     ]
    }
   ],
   "source": [
    "%%dummy this is the line\n",
    "this\n",
    "is the\n",
    "cell"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "('x', range(0, 5))"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "def parse_magic_line(line):\n",
    "    \"\"\"parse a magic line into a name and eval'd expression\"\"\"\n",
    "    name, values_s = line.split(None, 1)\n",
    "    values = eval(values_s, get_ipython().user_ns)\n",
    "    return name, values\n",
    "\n",
    "parse_magic_line(\"x range(5)\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Excercise"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Can you write and register a **cell magic** that automates the outer iteration,\n",
    "timing a block for various values of a particular variable:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "%load soln/scalemagic.py"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "N=10\n",
      "562 µs\n",
      "N=100\n",
      "15.5 ms\n",
      "N=1000\n",
      "9.23 s\n"
     ]
    }
   ],
   "source": [
    "%%scale N [ int(10**p) for p in range(1,4) ]\n",
    "\n",
    "A = np.random.random((N,N))\n",
    "np.linalg.eigvals(A)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "N=64\n",
      "7.77 ms\n",
      "N=90\n",
      "10.4 ms\n",
      "N=128\n",
      "23 ms\n",
      "N=181\n",
      "59.6 ms\n",
      "N=256\n",
      "170 ms\n",
      "N=362\n",
      "351 ms\n",
      "N=512\n",
      "1.46 s\n",
      "N=724\n",
      "2.98 s\n",
      "N=1024\n",
      "16.9 s\n",
      "N=1448\n",
      "37.2 s\n",
      "N=2048\n",
      "234 s\n"
     ]
    }
   ],
   "source": [
    "%%scale N [ int(2**p) for p in np.linspace(6, 11, 11) ]\n",
    "\n",
    "A = np.random.random((N,N))\n",
    "np.linalg.eigvals(A)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Executing Notebooks"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can load a notebook into memory using `IPython.nbformat`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "import io\n",
    "import os\n",
    "\n",
    "import IPython.nbformat as nbf"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "def load_notebook(filename):\n",
    "    \"\"\"load a notebook object from a filename\"\"\"\n",
    "    if not os.path.exists(filename) and not filename.endswith(\".ipynb\"):\n",
    "        filename = filename + \".ipynb\"\n",
    "    with io.open(filename) as f:\n",
    "        return nbf.read(f, as_version=4)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "nb = load_notebook(\"_Sample\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**A notebook is just a dictionary** with attribute access for convenience."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "dict_keys(['cells', 'nbformat', 'nbformat_minor', 'metadata'])"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "nb.keys()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[{'cell_type': 'markdown', 'metadata': {}, 'source': '# A sample notebook'},\n",
       " {'cell_type': 'code',\n",
       "  'execution_count': None,\n",
       "  'metadata': {'collapsed': False},\n",
       "  'outputs': [],\n",
       "  'source': \"print('hello')\"},\n",
       " {'cell_type': 'code',\n",
       "  'execution_count': None,\n",
       "  'metadata': {'collapsed': False},\n",
       "  'outputs': [],\n",
       "  'source': '%matplotlib inline\\nimport matplotlib.pyplot as plt\\nimport numpy as np\\nplt.plot(np.random.random(100))'},\n",
       " {'cell_type': 'markdown',\n",
       "  'metadata': {},\n",
       "  'source': 'A function for displaying the summary of a notebook object.\\nIt prints a simple summary, such as:\\n\\n```\\n  1   markdown cells, total:   4 lines\\n  5       code cells, total:   4 lines\\n  1    heading cells, total:   1 lines\\n```'},\n",
       " {'cell_type': 'code',\n",
       "  'execution_count': None,\n",
       "  'metadata': {'collapsed': False},\n",
       "  'outputs': [],\n",
       "  'source': 'def nb_info(nb):\\n    \"\"\"display a summary of the contents of a notebook\"\"\"\\n    cell_counts = {}\\n    cell_lines = {}\\n    \\n    for cell in nb.cells:\\n        cell_type = cell.cell_type\\n        count = cell_counts.setdefault(cell_type, 0)\\n        lines = cell_counts.setdefault(cell_type, 0)\\n        cell_counts[cell_type] = count + 1\\n        try:\\n            content = cell.source\\n        except AttributeError:\\n            content = cell.input\\n        cell_lines[cell_type] = lines + len(content.splitlines())\\n    \\n    for cell_type in cell_counts:\\n        print(\"%3i %10s cells, total: %3i lines\" % (cell_counts[cell_type], cell_type, cell_lines[cell_type]))\\n'}]"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cells = nb.cells\n",
    "cells"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can see all the cells and their type"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "----- markdown -----\n",
      "# A sample notebook\n",
      "\n",
      "----- code -----\n",
      "print('hello')\n",
      "\n",
      "----- code -----\n",
      "%matplotlib inline\n",
      "import matplotlib.pyplot as plt\n",
      "import numpy as np\n",
      "plt.plot(np.random.random(100))\n",
      "\n",
      "----- markdown -----\n",
      "A function for displaying the summary of a notebook object.\n",
      "It prints a simple summary, such as:\n",
      "\n",
      "```\n",
      "  1   markdown cells, total:   4 lines\n",
      "  5       code cells, total:   4 lines\n",
      "  1    heading cells, total:   1 lines\n",
      "```\n",
      "\n",
      "----- code -----\n",
      "def nb_info(nb):\n",
      "    \"\"\"display a summary of the contents of a notebook\"\"\"\n",
      "    cell_counts = {}\n",
      "    cell_lines = {}\n",
      "    \n",
      "    for cell in nb.cells:\n",
      "        cell_type = cell.cell_type\n",
      "        count = cell_counts.setdefault(cell_type, 0)\n",
      "        lines = cell_counts.setdefault(cell_type, 0)\n",
      "        cell_counts[cell_type] = count + 1\n",
      "        try:\n",
      "            content = cell.source\n",
      "        except AttributeError:\n",
      "            content = cell.input\n",
      "        cell_lines[cell_type] = lines + len(content.splitlines())\n",
      "    \n",
      "    for cell_type in cell_counts:\n",
      "        print(\"%3i %10s cells, total: %3i lines\" % (cell_counts[cell_type], cell_type, cell_lines[cell_type]))\n",
      "\n"
     ]
    }
   ],
   "source": [
    "for cell in cells:\n",
    "    print()\n",
    "    print('----- %s -----' % cell.cell_type)\n",
    "    print(cell.source)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now I can run all of the **code cells** with `get_ipython().run_cell`"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "hello\n"
     ]
    },
    {
     "data": {
      "image/png": [
       "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\n"
      ],
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fdcc8161780>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "for cell in cells:\n",
    "    ip = get_ipython()\n",
    "    if cell.cell_type == 'code':\n",
    "        ip.run_cell(cell.source, silent=True)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "And we can now use the function that was defined in that notebook:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "  2   markdown cells, total:   9 lines\n",
      "  3       code cells, total:  20 lines\n"
     ]
    }
   ],
   "source": [
    "nb_info(nb)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Exercise"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Can you write and register an `%nbrun` line magic to run a notebook?\n",
    "\n",
    "```python\n",
    "%nbrun Sample\n",
    "```"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "%load soln/nbrun.py"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "hello\n"
     ]
    },
    {
     "data": {
      "image/png": [
       "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\n"
      ],
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fdcbb494780>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "%nbrun _Sample"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The common way to make your magics reusable is to [write an Extension](Customizing%20IPython%20-%20Extensions.ipynb), so let's give that a try."
   ]
  }
 ],
 "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.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}
