In [1]:
from pylab import *
from dolo import *
In [2]:
from IPython.html import widgets
In [77]:
def construct_interface():
var_box = widgets.TextWidget(description="variables")
shock_box = widgets.TextWidget(description="shocks")
param_box = widgets.TextWidget(description="parameters")
eq_text = widgets.TextareaWidget()
calib_text = widgets.TextareaWidget()
but_solve = widgets.ButtonWidget(description="Solve")
page1 = widgets.ContainerWidget(children=[var_box, shock_box, param_box, eq_text, calib_text])
order_combo = widgets.RadioButtonsWidget(values=["1","2","3"], value="1", description='Approximation order')
horizon_combo = widgets.IntTextWidget(min=20, max=100, value=50)
page2 = widgets.ContainerWidget(children=[order_combo, horizon_combo, but_solve])
tabs = widgets.TabWidget(children=[page1,page2])
ui = widgets.PopupWidget(children=[tabs])
# what to do when button is clicked
def solve(caller):
model = yaml_import("rbc_dynare.yaml")
from dolo.algos.dynare.perturbations import solve_decision_rule
from dolo.algos.dynare.simulations import stoch_simul
dr = solve_decision_rule(model, order=1)
sim = stoch_simul(dr, plot=False)
sim = stoch_simul(dr, plot=True)
htmlwidget = widgets.HTMLWidget( value=sim._repr_html_() )
page = widgets.ContainerWidget(children=[htmlwidget])
tabs.children = tabs.children + (page,)
tabs.set_title(2,"Simulations")
but_solve.on_click(solve)
return ui
In [78]:
ui = construct_interface()
display(ui)
ui.children[0].set_title(0,'Model')
ui.children[0].set_title(1,'Options')
In [ ]: