In [1]:
import jinja2
import json
from IPython.display import display, display_pretty, Javascript, HTML
from IPython import get_ipython


def render_card(card):
    ipython = get_ipython()
    display(Javascript("""
    require.config({
        paths: {
            feed: '//localhost:5000/static/dist/experiment.bundle',
        },
    });
    """))

    display(HTML("""
      <link href="//localhost:5000/static/dist/index.css" rel="stylesheet" type="text/css">
    """));

    display(HTML("""<div id="card"/>"""))


    template = jinja2.Template("""
        require(["feed"], function(feed) {
        var React = feed.React;
        var ReactDOM = feed.ReactDOM;
        var card = {{ card }};

        ReactDOM.render(
            React.createElement(feed.wrapper, {card: card}, feed.cardMap(card)),
            document.getElementById('card')
            );
        });
    """)
    display(Javascript(template.render(card=json.dumps(card))))

In [2]:
card = {
    "card_type": "pie",
    "control_period": {},
    "created_at": "Sun, 17 Jan 2016 18:51:21 GMT",
    "data": {
        "battle_measures": [],
        "measure": "count",
        "values": [
            {
                "label": "new",
                "value": 44
            },
            {
                "label": "returning",
                "value": 1
            }
        ]
    },
    "description": "",
    "feedback": {
        "favorite": False,
        "first_showed_at": "Sun, 17 Jan 2016 18:51:21 GMT",
        "impressions": [
            {
                "position": -1,
                "showed_at": "Sun, 17 Jan 2016 18:51:21 GMT"
            }
        ],
        "last_showed_at": "Sun, 17 Jan 2016 18:51:21 GMT"
    },
    "id": "569901ade68a632c114a0882",
    "published_at": "Fri, 15 Jan 2016 14:26:53 GMT",
    "tags": [],
    "target_period": {
        "period_end": "Fri, 01 Jan 2016 00:00:00 GMT",
        "period_length": "month",
        "period_meaning": "last month",
        "period_start": "Tue, 01 Dec 2015 00:00:00 GMT"
    },
    "title": "New vs Returning Customers",
    "user_id": "569656d8daf4e85c04d9ef0b"
}

In [3]:
render_card(card)



In [ ]: