{
 "metadata": {
  "name": ""
 },
 "nbformat": 3,
 "nbformat_minor": 0,
 "worksheets": [
  {
   "cells": [
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "Uk\u00e1zka pou\u017eit\u00ed n\u00e1stroje IPython na manipulaci se senzorov\u00fdmi daty\n",
      "=======\n",
      "\n",
      "P\u0159\u00edklad vyu\u017e\u00edv\u00e1 moduluvou stavebnici MLAB a jej\u00ed knihovnu https://github.com/MLAB-project/MLAB-I2c-modules \n",
      "\n",
      "Zprovozn\u011bn\u00ed demo k\u00f3du\n",
      "---------------------\n",
      "\n",
      "Nejd\u0159\u00edve zjist\u00edme zda m\u00e1me p\u0159\u00edstup pro z\u00e1pis a \u010dten\u00ed do syst\u00e9mov\u00e9ho za\u0159\u00edzen\u00ed. A jak\u00e9 \u010d\u00edslo m\u00e1 I\u00b2C sb\u011brnice na  kterou m\u00e1me p\u0159ipojen\u00e1 \u010didla. \n"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "!i2cdetect -l"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "i2c-5\ti2c       \ti2c-tiny-usb at bus 002 device 008\tI2C adapter\r\n",
        "i2c-0\ti2c       \tintel drm CRTDDC_A              \tI2C adapter\r\n",
        "i2c-1\ti2c       \tintel drm LVDSBLC_B             \tI2C adapter\r\n",
        "i2c-2\ti2c       \tintel drm LVDSDDC_C             \tI2C adapter\r\n",
        "i2c-3\ti2c       \tintel drm HDMIB                 \tI2C adapter\r\n",
        "i2c-4\ti2c       \tDPDDC-B                         \tI2C adapter\r\n"
       ]
      }
     ],
     "prompt_number": 1
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "Proto\u017ee pro p\u0159ipojen\u00ed \u010didel k po\u010d\u00edta\u010di pou\u017e\u00edv\u00e1me adapt\u00e9r i2c-tiny-usb. Vid\u00edme, \u017ee sb\u011brnice m\u00e1 aktu\u00e1ln\u011b ozna\u010den\u00ed nap\u0159\u00edklad i2c-8. \n",
      "\n",
      "V p\u0159\u00edpad\u011b, \u017ee v\u00fd\u0161e uveden\u00fd p\u0159\u00edklad vr\u00e1t\u00ed chybu, nebo pojmenov\u00e1n\u00ed \"unknown\" tak nem\u00e1me p\u0159\u00edstup k syst\u00e9mov\u00fdm rozhran\u00edm. Ten z\u00edsk\u00e1me vytvo\u0159en\u00edm souboru s n\u00e1sleduj\u00edc\u00edm obsahem ve slo\u017ece:  /etc/udev/rules.d/i2c-devices.rules"
     ]
    },
    {
     "cell_type": "raw",
     "metadata": {},
     "source": [
      "KERNEL==\"i2c-[0-9]*\", GROUP=\"i2c\""
     ]
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "Toto ozna\u010den\u00ed budeme je\u0161t\u011b d\u00e1le pot\u0159ebovat, proto si jej ulo\u017e\u00edme da prom\u011bnn\u00e9. "
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "port = 5"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 2
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "Budeme pokra\u010dovat na\u010dten\u00edm pot\u0159ebn\u00fdch modul\u016f pro zach\u00e1zen\u00ed s I\u00b2C sn\u00edma\u010di."
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "import time\n",
      "import datetime\n",
      "import sys\n",
      "\n",
      "from pymlab import config\n",
      "import matplotlib.pyplot as plt\n",
      "import numpy as np"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 3
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "Nyn\u00ed si nadefinujeme strukturu p\u0159ipojen\u00ed jednotliv\u00fdch \u010didel na I\u00b2C sb\u011brnici."
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "cfg = config.Config(\n",
      "    port = port,\n",
      "    bus = [\n",
      "        {\n",
      "            \"type\": \"i2chub\",\n",
      "            \"address\": 0x72,\n",
      "            \n",
      "            \"children\": [\n",
      "                {\"name\": \"altimet\", \"type\": \"altimet01\" , \"channel\": 7, },   \n",
      "            ],\n",
      "        },\n",
      "    ],\n",
      ")"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 4
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "Tuto strukturu inicializujeme, aby jsme dos\u00e1hli definovan\u00e9 konfigurace \u010didel."
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "cfg.initialize()\n",
      "gauge = cfg.get_device(\"altimet\")\n",
      "time.sleep(0.5)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 5
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "Nyn\u00ed u\u017e m\u016f\u017eeme p\u0159\u00edmo komunikovat se za\u0159\u00edzen\u00edm pojmenovan\u00fdm jako gauge."
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "MEASUREMENTS = 100\n",
      "t = np.zeros(MEASUREMENTS)\n",
      "p = np.zeros(MEASUREMENTS)\n",
      "\n",
      "for n in range(MEASUREMENTS):\n",
      "#    gauge.route()  V p\u0159\u00edpad\u011b v\u00edce \u010didel je pot\u0159eba ke ka\u017ed\u00e9mu p\u0159ed jeho pou\u017eit\u00edm nechat vyroutovat cesutu na sb\u011brnici.\n",
      "    (t[n], p[n]) = gauge.get_tp()\n",
      "    print(n,t[n], p[n])"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "(0, 22.0, 96976.25)\n",
        "(1, 22.0, 96978.0)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(2, 22.0, 96978.0)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(3, 22.0, 96976.75)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(4, 22.0, 96976.75)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(5, 22.0, 96978.5)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(6, 22.0, 96978.5)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(7, 22.0, 96976.25)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(8, 22.0, 96976.25)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(9, 22.0, 96982.25)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(10, 22.0, 96982.25)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(11, 22.0, 96978.0)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(12, 22.0, 96978.0)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(13, 22.0, 96976.75)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(14, 22.0, 96976.75)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(15, 22.0, 96976.0)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(16, 22.0, 96976.0)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(17, 22.0, 96982.0)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(18, 22.0, 96982.0)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(19, 22.0, 96972.75)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(20, 22.0, 96972.75)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(21, 22.0, 96982.0)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(22, 22.0, 96982.0)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(23, 22.0, 96976.75)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(24, 22.0, 96976.75)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(25, 22.0, 96978.75)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(26, 22.0, 96978.75)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(27, 22.0, 96978.5)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(28, 22.0, 96978.5)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(29, 22.0, 96978.75)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(30, 22.0, 96976.75)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(31, 22.0, 96976.75)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(32, 22.0, 96972.75)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(33, 22.0, 96976.75)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(34, 22.0, 96978.5)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(35, 22.0, 96978.5)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(36, 22.0, 96978.25)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(37, 22.0, 96978.25)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(38, 22.0, 96976.5)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(39, 22.0, 96976.5)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(40, 22.0, 96976.75)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(41, 22.0, 96976.75)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(42, 22.0, 96980.75)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(43, 22.0, 96980.75)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(44, 22.0, 96976.25)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(45, 22.0, 96976.25)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(46, 22.0, 96974.25)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(47, 22.0, 96974.25)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(48, 22.0, 96972.25)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(49, 22.0, 96972.25)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(50, 22.0, 96978.25)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(51, 22.0, 96978.25)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(52, 22.0, 96976.25)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(53, 22.0, 96976.25)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(54, 22.0, 96978.5)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(55, 22.0, 96978.5)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(56, 22.0, 96978.5)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(57, 22.0, 96978.5)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(58, 22.0, 96978.0)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(59, 22.0, 96978.0)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(60, 22.0, 96978.0)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(61, 22.0, 96978.25)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(62, 22.0, 96978.25)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(63, 22.0, 96976.0)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(64, 22.0, 96980.0)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(65, 22.0, 96976.0)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(66, 22.0, 96976.0)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(67, 22.0, 96976.0)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(68, 22.0, 96976.0)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(69, 22.0, 96976.5)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(70, 22.0, 96976.5)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(71, 22.0, 96976.75)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(72, 22.0, 96976.75)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(73, 22.0, 96978.75)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(74, 22.0, 96978.75)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(75, 22.0, 96980.75)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(76, 22.0, 96980.75)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(77, 22.0, 96976.25)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(78, 22.0, 96976.25)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(79, 22.0, 96976.75)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(80, 22.0, 96976.75)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(81, 22.0, 96980.25)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(82, 22.0, 96980.25)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(83, 22.0, 96978.25)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(84, 22.0, 96978.25)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(85, 22.0, 96978.75)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(86, 22.0, 96978.75)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(87, 22.0, 96982.0)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(88, 22.0, 96982.0)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(89, 22.0, 96982.75)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(90, 22.0, 96976.0)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(91, 22.0, 96976.0)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(92, 22.0, 96980.75)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(93, 22.0, 96976.75)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(94, 22.0, 96974.25)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(95, 22.0, 96978.25)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(96, 22.0, 96976.5)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(97, 22.0, 96976.5)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(98, 21.9375, 96972.5)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(99, 21.9375, 96972.5)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n"
       ]
      }
     ],
     "prompt_number": 6
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "np.savez(\"data_ground\", t, p)\n",
      "#np.savez(\"data_top\", t, p)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 22
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "amin(p)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 7,
       "text": [
        "96972.25"
       ]
      }
     ],
     "prompt_number": 7
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "amax(p)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 8,
       "text": [
        "96838.75"
       ]
      }
     ],
     "prompt_number": 8
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "std(p)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 9,
       "text": [
        "2.3585270827361722"
       ]
      }
     ],
     "prompt_number": 9
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "plt.plot(p)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 9,
       "text": [
        "[<matplotlib.lines.Line2D at 0xa00bb2c>]"
       ]
      },
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "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\n3AENN2mnAAAAAElFTkSuQmCC\n",
       "text": [
        "<matplotlib.figure.Figure at 0x9eb46cc>"
       ]
      }
     ],
     "prompt_number": 9
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "plt.plot(t)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 11,
       "text": [
        "[<matplotlib.lines.Line2D at 0x9ee51ec>]"
       ]
      },
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "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\n",
       "text": [
        "<matplotlib.figure.Figure at 0x9d764cc>"
       ]
      }
     ],
     "prompt_number": 11
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [],
     "language": "python",
     "metadata": {},
     "outputs": []
    }
   ],
   "metadata": {}
  }
 ]
}