def load_energy():
    tbl_name = 'energy_usage'
    with gzip.open(os.path.join(DATA_FOLDER, 'energy.json.gz')) as f:
        pdf = pd.read_json(f)
    pdf.to_sql(
        tbl_name,
        db.engine,
        if_exists='replace',
        chunksize=500,
        dtype={
            'source': String(255),
            'target': String(255),
            'value': Float(),
        },
        index=False)

    print("Creating table [wb_health_population] reference")
    tbl = db.session.query(TBL).filter_by(table_name=tbl_name).first()
    if not tbl:
        tbl = TBL(table_name=tbl_name)
    tbl.description = "Energy consumption"
    tbl.is_featured = True
    tbl.database = get_or_create_db(db.session)
    db.session.merge(tbl)
    db.session.commit()
    tbl.fetch_metadata()

    merge_slice(
        Slice(
            slice_name="Energy Sankey",
            viz_type='sankey',
            datasource_type='table',
            table=tbl,
            params=textwrap.dedent("""\
            {
                "collapsed_fieldsets": "",
                "datasource_id": "3",
                "datasource_name": "energy_usage",
                "datasource_type": "table",
                "flt_col_0": "source",
                "flt_eq_0": "",
                "flt_op_0": "in",
                "groupby": [
                    "source",
                    "target"
                ],
                "having": "",
                "metric": "sum__value",
                "row_limit": "5000",
                "slice_id": "",
                "slice_name": "Energy Sankey",
                "viz_type": "sankey",
                "where": ""
            }
            """))
    )

    merge_slice(
        Slice(
            slice_name="Energy Force Layout",
            viz_type='directed_force',
            datasource_type='table',
            table=tbl,
            params=textwrap.dedent("""\
            {
                "charge": "-500",
                "collapsed_fieldsets": "",
                "datasource_id": "1",
                "datasource_name": "energy_usage",
                "datasource_type": "table",
                "flt_col_0": "source",
                "flt_eq_0": "",
                "flt_op_0": "in",
                "groupby": [
                    "source",
                    "target"
                ],
                "having": "",
                "link_length": "200",
                "metric": "sum__value",
                "row_limit": "5000",
                "slice_id": "229",
                "slice_name": "Force",
                "viz_type": "directed_force",
                "where": ""
            }
            """))
    )
    merge_slice(
        Slice(
            slice_name="Heatmap",
            viz_type='heatmap',
            datasource_type='table',
            table=tbl,
            params=textwrap.dedent("""\
            {
                "all_columns_x": "source",
                "all_columns_y": "target",
                "canvas_image_rendering": "pixelated",
                "collapsed_fieldsets": "",
                "datasource_id": "1",
                "datasource_name": "energy_usage",
                "datasource_type": "table",
                "flt_col_0": "source",
                "flt_eq_0": "",
                "flt_op_0": "in",
                "having": "",
                "linear_color_scheme": "blue_white_yellow",
                "metric": "sum__value",
                "normalize_across": "heatmap",
                "slice_id": "229",
                "slice_name": "Heatmap",
                "viz_type": "heatmap",
                "where": "",
                "xscale_interval": "1",
                "yscale_interval": "1"
            }
            """))
    )
Adds all rules (and their dependencies) from the given module.
dataset/ETHPy150Open airbnb/caravel/caravel/data/__init__.py/load_energy--crossover with--dataset/ETHPy150Open google/anvil-build/anvil/graph.py/RuleGraph.add_rules_from_module