{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div><style>/*\n",
       " * Override Jupyter's default css inside elements with the hrepr class.\n",
       " */\n",
       "\n",
       ".rendered_html .hrepr table {\n",
       "\tmargin-top: 0px;\n",
       "\tmargin-bottom: 0px;\n",
       "\ttable-layout: auto;\n",
       "}\n",
       "\n",
       ".rendered_html tr, .rendered_html th, .rendered_html td {\n",
       "\tpadding: 2px;\n",
       "\ttext-align: left;\n",
       "}\n",
       "</style><style>\n",
       ":root, :host {\n",
       "\t--instance-color: #00a;\n",
       "\t--dict-color: #00a;\n",
       "\t--tuple-color: #080;\n",
       "\t--list-color: #080;\n",
       "\t--set-color: #080;\n",
       "\t--frozenset-color: #88f;\n",
       "\t--struct-border: 2px;\n",
       "}\n",
       "\n",
       "/* Scalar/string formatting */\n",
       "\n",
       ".hreprv-True, .hreprv-False, .hreprv-None, .hreprt-int, .hreprt-float {\n",
       "\tfont-weight: bold;\n",
       "}\n",
       "\n",
       ".hreprt-int, .hreprt-float {\n",
       "\tcolor: #88f;\n",
       "}\n",
       "\n",
       ".hreprt-str {\n",
       "\tcolor: #666;\n",
       "\twhite-space: pre;\n",
       "}\n",
       "\n",
       ".hreprt-str:before {\n",
       "\tcontent: \"“\";\n",
       "\tcolor: #888;\n",
       "}\n",
       "\n",
       ".hreprt-str:after {\n",
       "\tcontent: \"”\";\n",
       "\tcolor: #888;\n",
       "}\n",
       "\n",
       ".hreprt-bytes {\n",
       "\tcolor: #666;\n",
       "\tfont-family: monospace;\n",
       "\twhite-space: pre;\n",
       "}\n",
       "\n",
       ".hreprt-bytes:before {\n",
       "\tcontent: \"b“\";\n",
       "}\n",
       "\n",
       ".hreprt-bytes:after {\n",
       "\tcontent: \"”\";\n",
       "}\n",
       "\n",
       ".hreprv-True {\n",
       "\tcolor: green;\n",
       "}\n",
       "\n",
       ".hreprv-False {\n",
       "\tcolor: red;\n",
       "}\n",
       "\n",
       ".hreprv-None {\n",
       "\tcolor: grey;\n",
       "}\n",
       "\n",
       "/* Generic layouts */\n",
       "\n",
       ".hreprl-h, .hreprl-s {\n",
       "\tdisplay: inline-flex;\n",
       "\tflex-direction: row;\n",
       "\tflex-wrap: wrap;\n",
       "}\n",
       "\n",
       ".hreprl-v {\n",
       "\tdisplay: inline-flex;\n",
       "\tflex-direction: column;\n",
       "}\n",
       "\n",
       ".hrepr-body.hreprl-h,\n",
       ".hrepr-body.hreprl-v {\n",
       "\tbackground: #ddd;\n",
       "}\n",
       "\n",
       ".hrepr-body.hreprl-v > *,\n",
       ".hrepr-body.hreprl-h > * {\n",
       "\tmargin: 2px;\n",
       "\tpadding: 1px;\n",
       "\tbackground: white;\n",
       "\tdisplay: inline-flex;\n",
       "\tplace-items: center;\n",
       "}\n",
       "\n",
       ".hrepr-body.hreprl-s > * {\n",
       "\tpadding: 1px;\n",
       "}\n",
       "\n",
       ".hrepr-bracketed {\n",
       "\tdisplay: inline-flex;\n",
       "\tflex-direction: row;\n",
       "}\n",
       "\n",
       ".hrepr-bracketed {\n",
       "\tdisplay: inline-flex;\n",
       "\tflex-direction: row;\n",
       "\tplace-items: center;\n",
       "\tbackground: black;\n",
       "\tborder: var(--struct-border) solid black;\n",
       "}\n",
       "\n",
       ".hrepr-bracketed > .hrepr-open {\n",
       "\tpadding-right: var(--struct-border);\n",
       "}\n",
       ".hrepr-bracketed > .hrepr-close {\n",
       "\tpadding-left: var(--struct-border);\n",
       "}\n",
       ".hrepr-bracketed > .hrepr-open,\n",
       ".hrepr-bracketed > .hrepr-close,\n",
       ".hrepr-instance > .hrepr-title,\n",
       ".hreprl-s {\n",
       "\tcolor: white;\n",
       "\tfont-weight: bold;\n",
       "}\n",
       "\n",
       ".hrepr-instance {\n",
       "\tbackground: var(--instance-color);\n",
       "\tborder: var(--struct-border) solid var(--instance-color);\n",
       "}\n",
       ".hrepr-instance > .hrepr-title {\n",
       "\tcolor: white;\n",
       "\tfont-weight: bold;\n",
       "}\n",
       ".hrepr-instance.hreprl-v > .hrepr-title {\n",
       "\tpadding-bottom: var(--struct-border);\n",
       "}\n",
       ".hrepr-instance.hreprl-h > .hrepr-title,\n",
       ".hrepr-instance.hreprl-s > .hrepr-title {\n",
       "\tpadding-right: var(--struct-border);\n",
       "\tplace-self: center;\n",
       "}\n",
       "\n",
       "\n",
       "/* Colors for structures. */\n",
       "\n",
       ".hreprt-dict {\n",
       "\tbackground: var(--dict-color);\n",
       "\tborder-color: var(--dict-color);\n",
       "}\n",
       "\n",
       ".hreprt-list {\n",
       "\tbackground: var(--list-color);\n",
       "\tborder-color: var(--list-color);\n",
       "}\n",
       "\n",
       ".hreprt-tuple {\n",
       "\tbackground: var(--tuple-color);\n",
       "\tborder-color: var(--tuple-color);\n",
       "}\n",
       "\n",
       ".hreprt-set {\n",
       "\tbackground: var(--set-color);\n",
       "\tborder-color: var(--set-color);\n",
       "}\n",
       "\n",
       ".hreprt-frozenset {\n",
       "\tbackground: var(--frozenset-color);\n",
       "\tborder-color: var(--frozenset-color);\n",
       "}\n",
       "\n",
       "table.hrepr-body {\n",
       "\tborder-collapse: collapse;\n",
       "\twidth: 100%;\n",
       "}\n",
       "\n",
       "table.hrepr-body > tbody > tr:nth-child(even) {\n",
       "\tbackground: #ddd;\n",
       "}\n",
       "\n",
       "table.hrepr-body > tbody > tr:nth-child(odd) {\n",
       "\tbackground: #fff;\n",
       "}\n",
       "\n",
       "\n",
       "/* References */\n",
       "\n",
       ".hrepr-ref {\n",
       "\tfont-weight: bold;\n",
       "\tcolor: magenta;\n",
       "}\n",
       "\n",
       ".hrepr-refbox {\n",
       "\tdisplay: inline-block;\n",
       "\tposition: relative;\n",
       "}\n",
       "\n",
       "/* .hrepr-refbox > :first-child {\n",
       "\tposition: absolute;\n",
       "\tcolor: white;\n",
       "\tbackground: magenta;\n",
       "\tpadding: 2px;\n",
       "\tfont-size: 9px;\n",
       "\tleft: 0px;\n",
       "\ttop: 0px;\n",
       "} */\n",
       "</style><script type=\"text/javascript\" src=\"https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js\"></script><script>requirejs.config({paths: {plotly: \"https://cdn.plot.ly/plotly-latest.min.js?noext\"}});</script><div class=\"hrepr\"><div class=\"hrepr-bracketed hreprt-list\"><div class=\"hrepr-open\">[</div><div class=\"hrepr-body hreprl-h\"><div><div id=\"_hrepr_7\"></div><script>require(['plotly'], function (plotly) {(function () {let plotdiv = document.getElementById('_hrepr_7');plotly.newPlot(plotdiv, [{\"x\": [0, 1, 2, 3, 4, 5, 6], \"y\": [1, 7, 12, 5, 10, 8, 31]}]);})();});</script></div></div><div class=\"hrepr-close\">]</div></div></div></div>"
      ],
      "text/plain": [
       "<div class=\"hrepr-bracketed hreprt-list\"><div class=\"hrepr-open\">[</div><div class=\"hrepr-body hreprl-h\"><div><div id=\"_hrepr_7\"></div><script>require(['plotly'], function (plotly) {(function () {let plotdiv = document.getElementById('_hrepr_7');plotly.newPlot(plotdiv, [{\"x\": [0, 1, 2, 3, 4, 5, 6], \"y\": [1, 7, 12, 5, 10, 8, 31]}]);})();});</script></div></div><div class=\"hrepr-close\">]</div></div>"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from hrepr import hrepr\n",
    "import json\n",
    "\n",
    "class Test0:\n",
    "    def __init__(self, data):\n",
    "        self.data = data\n",
    "\n",
    "    @classmethod\n",
    "    def __hrepr_resources__(cls, H):\n",
    "        return [\n",
    "            H.script(\n",
    "                src=\"https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js\"\n",
    "            ),\n",
    "            H.script(\"\"\"\n",
    "                requirejs.config({\n",
    "                    base: '/static/base',\n",
    "                    paths: {plotly: \"https://cdn.plot.ly/plotly-latest.min.js?noext\"}\n",
    "                });\n",
    "            \"\"\")\n",
    "        ]\n",
    "        # return H.script(type=\"text/javascript\", src=\"https://cdn.plot.ly/plotly-latest.min.js\")\n",
    "\n",
    "    def __hrepr__(self, H, hrepr):\n",
    "        pid = f\"plot{id(self)}\"\n",
    "        return H.inline(\n",
    "            H.div(id=pid),\n",
    "            H.script(f\"\"\"\n",
    "            require([\"plotly\"], function(plotly) {{\n",
    "                plotly.newPlot(\n",
    "                    document.getElementById('{pid}'),\n",
    "                    [{{x: [1, 2, 3, 4, 5], y: [1, 2, 4, 8, 16]}}]\n",
    "                );\n",
    "            }});\n",
    "            \"\"\")\n",
    "        )\n",
    "\n",
    "\n",
    "class Test:\n",
    "    def __init__(self, data):\n",
    "        self.data = data\n",
    "\n",
    "    @classmethod\n",
    "    def __hrepr_resources__(cls, H):\n",
    "        return H.require(\n",
    "            name=\"plotly\",\n",
    "            src=\"https://cdn.plot.ly/plotly-latest.min.js?noext\",\n",
    "        )\n",
    "\n",
    "    def __hrepr__(self, H, hrepr):\n",
    "        data = {\n",
    "            \"x\": list(range(len(self.data))),\n",
    "            \"y\": list(self.data),\n",
    "        }\n",
    "        return H.script(\n",
    "            f\"plotly.newPlot(plotdiv, [{json.dumps(data)}]);\",\n",
    "            require=\"plotly\",\n",
    "            create_div=\"plotdiv\",\n",
    "        )\n",
    "\n",
    "hrepr([Test([1, 7, 12, 5, 10, 8, 31])])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div><style>/*\n",
       " * Override Jupyter's default css inside elements with the hrepr class.\n",
       " */\n",
       "\n",
       ".rendered_html .hrepr table {\n",
       "\tmargin-top: 0px;\n",
       "\tmargin-bottom: 0px;\n",
       "\ttable-layout: auto;\n",
       "}\n",
       "\n",
       ".rendered_html tr, .rendered_html th, .rendered_html td {\n",
       "\tpadding: 2px;\n",
       "\ttext-align: left;\n",
       "}\n",
       "</style><script type=\"text/javascript\" src=\"https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js\"></script><script>requirejs.config({paths: {cytoscape: \"https://cdnjs.cloudflare.com/ajax/libs/cytoscape/3.17.0/cytoscape.man\"}});</script><style>\n",
       ":root, :host {\n",
       "\t--instance-color: #00a;\n",
       "\t--dict-color: #00a;\n",
       "\t--tuple-color: #080;\n",
       "\t--list-color: #080;\n",
       "\t--set-color: #080;\n",
       "\t--frozenset-color: #88f;\n",
       "\t--struct-border: 2px;\n",
       "}\n",
       "\n",
       "/* Scalar/string formatting */\n",
       "\n",
       ".hreprv-True, .hreprv-False, .hreprv-None, .hreprt-int, .hreprt-float {\n",
       "\tfont-weight: bold;\n",
       "}\n",
       "\n",
       ".hreprt-int, .hreprt-float {\n",
       "\tcolor: #88f;\n",
       "}\n",
       "\n",
       ".hreprt-str {\n",
       "\tcolor: #666;\n",
       "\twhite-space: pre;\n",
       "}\n",
       "\n",
       ".hreprt-str:before {\n",
       "\tcontent: \"“\";\n",
       "\tcolor: #888;\n",
       "}\n",
       "\n",
       ".hreprt-str:after {\n",
       "\tcontent: \"”\";\n",
       "\tcolor: #888;\n",
       "}\n",
       "\n",
       ".hreprt-bytes {\n",
       "\tcolor: #666;\n",
       "\tfont-family: monospace;\n",
       "\twhite-space: pre;\n",
       "}\n",
       "\n",
       ".hreprt-bytes:before {\n",
       "\tcontent: \"b“\";\n",
       "}\n",
       "\n",
       ".hreprt-bytes:after {\n",
       "\tcontent: \"”\";\n",
       "}\n",
       "\n",
       ".hreprv-True {\n",
       "\tcolor: green;\n",
       "}\n",
       "\n",
       ".hreprv-False {\n",
       "\tcolor: red;\n",
       "}\n",
       "\n",
       ".hreprv-None {\n",
       "\tcolor: grey;\n",
       "}\n",
       "\n",
       "/* Generic layouts */\n",
       "\n",
       ".hreprl-h, .hreprl-s {\n",
       "\tdisplay: inline-flex;\n",
       "\tflex-direction: row;\n",
       "\tflex-wrap: wrap;\n",
       "}\n",
       "\n",
       ".hreprl-v {\n",
       "\tdisplay: inline-flex;\n",
       "\tflex-direction: column;\n",
       "}\n",
       "\n",
       ".hrepr-body.hreprl-h,\n",
       ".hrepr-body.hreprl-v {\n",
       "\tbackground: #ddd;\n",
       "}\n",
       "\n",
       ".hrepr-body.hreprl-v > *,\n",
       ".hrepr-body.hreprl-h > * {\n",
       "\tmargin: 2px;\n",
       "\tpadding: 1px;\n",
       "\tbackground: white;\n",
       "\tdisplay: inline-flex;\n",
       "\tplace-items: center;\n",
       "}\n",
       "\n",
       ".hrepr-body.hreprl-s > * {\n",
       "\tpadding: 1px;\n",
       "}\n",
       "\n",
       ".hrepr-bracketed {\n",
       "\tdisplay: inline-flex;\n",
       "\tflex-direction: row;\n",
       "}\n",
       "\n",
       ".hrepr-bracketed {\n",
       "\tdisplay: inline-flex;\n",
       "\tflex-direction: row;\n",
       "\tplace-items: center;\n",
       "\tbackground: black;\n",
       "\tborder: var(--struct-border) solid black;\n",
       "}\n",
       "\n",
       ".hrepr-bracketed > .hrepr-open {\n",
       "\tpadding-right: var(--struct-border);\n",
       "}\n",
       ".hrepr-bracketed > .hrepr-close {\n",
       "\tpadding-left: var(--struct-border);\n",
       "}\n",
       ".hrepr-bracketed > .hrepr-open,\n",
       ".hrepr-bracketed > .hrepr-close,\n",
       ".hrepr-instance > .hrepr-title,\n",
       ".hreprl-s {\n",
       "\tcolor: white;\n",
       "\tfont-weight: bold;\n",
       "}\n",
       "\n",
       ".hrepr-instance {\n",
       "\tbackground: var(--instance-color);\n",
       "\tborder: var(--struct-border) solid var(--instance-color);\n",
       "}\n",
       ".hrepr-instance > .hrepr-title {\n",
       "\tcolor: white;\n",
       "\tfont-weight: bold;\n",
       "}\n",
       ".hrepr-instance.hreprl-v > .hrepr-title {\n",
       "\tpadding-bottom: var(--struct-border);\n",
       "}\n",
       ".hrepr-instance.hreprl-h > .hrepr-title,\n",
       ".hrepr-instance.hreprl-s > .hrepr-title {\n",
       "\tpadding-right: var(--struct-border);\n",
       "\tplace-self: center;\n",
       "}\n",
       "\n",
       "\n",
       "/* Colors for structures. */\n",
       "\n",
       ".hreprt-dict {\n",
       "\tbackground: var(--dict-color);\n",
       "\tborder-color: var(--dict-color);\n",
       "}\n",
       "\n",
       ".hreprt-list {\n",
       "\tbackground: var(--list-color);\n",
       "\tborder-color: var(--list-color);\n",
       "}\n",
       "\n",
       ".hreprt-tuple {\n",
       "\tbackground: var(--tuple-color);\n",
       "\tborder-color: var(--tuple-color);\n",
       "}\n",
       "\n",
       ".hreprt-set {\n",
       "\tbackground: var(--set-color);\n",
       "\tborder-color: var(--set-color);\n",
       "}\n",
       "\n",
       ".hreprt-frozenset {\n",
       "\tbackground: var(--frozenset-color);\n",
       "\tborder-color: var(--frozenset-color);\n",
       "}\n",
       "\n",
       "table.hrepr-body {\n",
       "\tborder-collapse: collapse;\n",
       "\twidth: 100%;\n",
       "}\n",
       "\n",
       "table.hrepr-body > tbody > tr:nth-child(even) {\n",
       "\tbackground: #ddd;\n",
       "}\n",
       "\n",
       "table.hrepr-body > tbody > tr:nth-child(odd) {\n",
       "\tbackground: #fff;\n",
       "}\n",
       "\n",
       "\n",
       "/* References */\n",
       "\n",
       ".hrepr-ref {\n",
       "\tfont-weight: bold;\n",
       "\tcolor: magenta;\n",
       "}\n",
       "\n",
       ".hrepr-refbox {\n",
       "\tdisplay: inline-block;\n",
       "\tposition: relative;\n",
       "}\n",
       "\n",
       "/* .hrepr-refbox > :first-child {\n",
       "\tposition: absolute;\n",
       "\tcolor: white;\n",
       "\tbackground: magenta;\n",
       "\tpadding: 2px;\n",
       "\tfont-size: 9px;\n",
       "\tleft: 0px;\n",
       "\ttop: 0px;\n",
       "} */\n",
       "</style><div class=\"hrepr\"><div id=\"_hrepr_12\"></div><script>require(['cytoscape'], function (cytoscape) {(function () {let cydiv = document.getElementById('_hrepr_12');\n",
       "cydiv.style.height = \"300px\";\n",
       "cydiv.style.width = \"300px\";\n",
       "var cy = cytoscape({\n",
       "\n",
       "  container: cydiv,\n",
       "\n",
       "  elements: [ // list of graph elements to start with\n",
       "    { // node a\n",
       "      data: { id: 'a' }\n",
       "    },\n",
       "    { // node b\n",
       "      data: { id: 'b' }\n",
       "    },\n",
       "    { // edge ab\n",
       "      data: { id: 'ab', source: 'a', target: 'b' }\n",
       "    }\n",
       "  ],\n",
       "\n",
       "  style: [ // the stylesheet for the graph\n",
       "    {\n",
       "      selector: 'node',\n",
       "      style: {\n",
       "        'background-color': '#666',\n",
       "        'label': 'data(id)'\n",
       "      }\n",
       "    },\n",
       "\n",
       "    {\n",
       "      selector: 'edge',\n",
       "      style: {\n",
       "        'width': 3,\n",
       "        'line-color': '#ccc',\n",
       "        'target-arrow-color': '#ccc',\n",
       "        'target-arrow-shape': 'triangle',\n",
       "        'curve-style': 'bezier'\n",
       "      }\n",
       "    }\n",
       "  ],\n",
       "\n",
       "  layout: {\n",
       "    name: 'grid',\n",
       "    rows: 1\n",
       "  }\n",
       "\n",
       "});\n",
       "})();});</script></div></div>"
      ],
      "text/plain": [
       "<div id=\"_hrepr_12\"></div><script>require(['cytoscape'], function (cytoscape) {(function () {let cydiv = document.getElementById('_hrepr_12');\n",
       "cydiv.style.height = \"300px\";\n",
       "cydiv.style.width = \"300px\";\n",
       "var cy = cytoscape({\n",
       "\n",
       "  container: cydiv,\n",
       "\n",
       "  elements: [ // list of graph elements to start with\n",
       "    { // node a\n",
       "      data: { id: 'a' }\n",
       "    },\n",
       "    { // node b\n",
       "      data: { id: 'b' }\n",
       "    },\n",
       "    { // edge ab\n",
       "      data: { id: 'ab', source: 'a', target: 'b' }\n",
       "    }\n",
       "  ],\n",
       "\n",
       "  style: [ // the stylesheet for the graph\n",
       "    {\n",
       "      selector: 'node',\n",
       "      style: {\n",
       "        'background-color': '#666',\n",
       "        'label': 'data(id)'\n",
       "      }\n",
       "    },\n",
       "\n",
       "    {\n",
       "      selector: 'edge',\n",
       "      style: {\n",
       "        'width': 3,\n",
       "        'line-color': '#ccc',\n",
       "        'target-arrow-color': '#ccc',\n",
       "        'target-arrow-shape': 'triangle',\n",
       "        'curve-style': 'bezier'\n",
       "      }\n",
       "    }\n",
       "  ],\n",
       "\n",
       "  layout: {\n",
       "    name: 'grid',\n",
       "    rows: 1\n",
       "  }\n",
       "\n",
       "});\n",
       "})();});</script>"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from hrepr import hrepr\n",
    "\n",
    "cycode = \"\"\"\n",
    "cydiv.style.height = \"300px\";\n",
    "cydiv.style.width = \"300px\";\n",
    "var cy = cytoscape({\n",
    "\n",
    "  container: cydiv,\n",
    "\n",
    "  elements: [ // list of graph elements to start with\n",
    "    { // node a\n",
    "      data: { id: 'a' }\n",
    "    },\n",
    "    { // node b\n",
    "      data: { id: 'b' }\n",
    "    },\n",
    "    { // edge ab\n",
    "      data: { id: 'ab', source: 'a', target: 'b' }\n",
    "    }\n",
    "  ],\n",
    "\n",
    "  style: [ // the stylesheet for the graph\n",
    "    {\n",
    "      selector: 'node',\n",
    "      style: {\n",
    "        'background-color': '#666',\n",
    "        'label': 'data(id)'\n",
    "      }\n",
    "    },\n",
    "\n",
    "    {\n",
    "      selector: 'edge',\n",
    "      style: {\n",
    "        'width': 3,\n",
    "        'line-color': '#ccc',\n",
    "        'target-arrow-color': '#ccc',\n",
    "        'target-arrow-shape': 'triangle',\n",
    "        'curve-style': 'bezier'\n",
    "      }\n",
    "    }\n",
    "  ],\n",
    "\n",
    "  layout: {\n",
    "    name: 'grid',\n",
    "    rows: 1\n",
    "  }\n",
    "\n",
    "});\n",
    "\"\"\"\n",
    "\n",
    "class Graph:\n",
    "    def __init__(self, data):\n",
    "        self.data = data\n",
    "\n",
    "    @classmethod\n",
    "    def __hrepr_resources__(cls, H):\n",
    "        return H.require(\n",
    "            name=\"cytoscape\",\n",
    "            src=\"https://cdnjs.cloudflare.com/ajax/libs/cytoscape/3.17.0/cytoscape.min.js?noext\",\n",
    "        )\n",
    "\n",
    "    def __hrepr__(self, H, hrepr):\n",
    "        \n",
    "        data = {\n",
    "            \"x\": list(range(len(self.data))),\n",
    "            \"y\": list(self.data),\n",
    "        }\n",
    "        return H.script(\n",
    "            cycode,\n",
    "            require=\"cytoscape\",\n",
    "            create_div=\"cydiv\",\n",
    "        )\n",
    "\n",
    "hrepr(Graph({}))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "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.7.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
