From 32e895cffd449438aa09c62ee96e6428d7c06c75 Mon Sep 17 00:00:00 2001 From: Stefan Kuethe Date: Mon, 12 Feb 2024 14:20:20 +0100 Subject: [PATCH] Update data so that redefine can be called multiple times --- docs/examples/playground/app1.py | 22 ++++++++++++++++++++++ docs/examples/playground/app2.py | 27 +++++++++++++++++++++++++++ shinyobservable/_core.py | 2 +- 3 files changed, 50 insertions(+), 1 deletion(-) create mode 100644 docs/examples/playground/app1.py create mode 100644 docs/examples/playground/app2.py diff --git a/docs/examples/playground/app1.py b/docs/examples/playground/app1.py new file mode 100644 index 0000000..5143e8d --- /dev/null +++ b/docs/examples/playground/app1.py @@ -0,0 +1,22 @@ +from htmltools import a +from shiny.express import ui +from shinyobservable import Observable, ObservableRenderer + +# NOTEBOOK = "https://observablehq.com/@d3/zoomable-sunburst" +NOTEBOOK = "https://observablehq.com/@eoda/test" + +ui.h1("Observable Notebook in Shiny") +ui.div(a(NOTEBOOK, href=NOTEBOOK, target="_blank")) +ui.hr() + + +# Embed selected cells +@ObservableRenderer +def render_cells(): + return Observable(NOTEBOOK, cells=[2, 3, 4]) + + +# Include entire notebook +# @ObservableRenderer +def render_notebook(): + return Observable(NOTEBOOK) diff --git a/docs/examples/playground/app2.py b/docs/examples/playground/app2.py new file mode 100644 index 0000000..13b48bc --- /dev/null +++ b/docs/examples/playground/app2.py @@ -0,0 +1,27 @@ +from htmltools import a +from shiny.express import ui +from shinyobservable import Observable, ObservableRenderer + +NOTEBOOK = "https://observablehq.com/@eoda/playground" + +ui.h1("Observable Notebook in Shiny") +ui.div(a(NOTEBOOK, href=NOTEBOOK, target="_blank")) +ui.hr() + + +# Embed selected cells +@ObservableRenderer +def render_cells(): + return ( + Observable(NOTEBOOK, cells=["viewof echart", "echart"]) + .redefine( + chartData=dict(x=["A", "B", "C", "D", "E"], y=[100, 150, 120, 40, 80]) + ) + .redefine(lineColor="green") + ) + + +# Include entire notebook +# @ObservableRenderer +def render_notebook(): + return Observable(NOTEBOOK) diff --git a/shinyobservable/_core.py b/shinyobservable/_core.py index 45f6d95..37ebb8c 100644 --- a/shinyobservable/_core.py +++ b/shinyobservable/_core.py @@ -46,7 +46,7 @@ def redefine(self, **kwargs) -> Observable: ... ) >>> """ - self.data = kwargs + self.data.update(kwargs) return self def to_dict(self):