Skip to content

Commit 77966c4

Browse files
committed
feat: frontend: Allow user to specify custom Solara objects
1 parent 8e0ba9e commit 77966c4

File tree

3 files changed

+12
-4
lines changed

3 files changed

+12
-4
lines changed

examples/schelling_experimental/app.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from mesa_models.experimental import JupyterViz
1+
from mesa_models.experimental import JupyterViz, make_text
22
from model import Schelling
33

44

@@ -46,7 +46,7 @@ def agent_portrayal(agent):
4646
page = JupyterViz(
4747
Schelling,
4848
model_params,
49-
measures=["happy", get_happy_agents],
49+
measures=["happy", make_text(get_happy_agents)],
5050
name="Schelling",
5151
agent_portrayal=agent_portrayal,
5252
)

experimental/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
from .jupyter_viz import JupyterViz # noqa
1+
from .jupyter_viz import JupyterViz, make_text # noqa

experimental/jupyter_viz.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,13 @@ def make_plot(viz, measure):
108108
solara.FigureMatplotlib(fig, dependencies=[viz.model, viz.df])
109109

110110

111+
def make_text(renderer):
112+
def function(viz):
113+
solara.Markdown(renderer(viz.model))
114+
115+
return function
116+
117+
111118
def make_user_input(user_input, k, v):
112119
if v["type"] == "SliderInt":
113120
solara.SliderInt(
@@ -160,7 +167,8 @@ def make_model():
160167
# 4. Plots
161168
for i, measure in enumerate(viz.measures):
162169
if callable(measure):
163-
solara.Markdown(measure(viz.model))
170+
# Is a custom object
171+
measure(viz)
164172
else:
165173
make_plot(viz, measure)
166174

0 commit comments

Comments
 (0)