Spaces:
Runtime error
Runtime error
| import os | |
| import streamlit.components.v1 as components | |
| _RELEASE = True | |
| if not _RELEASE: | |
| _component_func = components.declare_component( | |
| "observable", | |
| url="http://localhost:3001", | |
| ) | |
| else: | |
| parent_dir = os.path.dirname(os.path.abspath(__file__)) | |
| build_dir = os.path.join(parent_dir, "frontend", "build") | |
| _component_func = components.declare_component("observable", path=build_dir) | |
| def observable(key, notebook, targets=None, redefine={}, observe=[], hide=[]): | |
| """Create a new instance of "observable". | |
| Parameters | |
| ---------- | |
| key: str | |
| A unique string used to avoid constant re-renders to the iframe. | |
| notebook: str | |
| The observablehq.com notebook id to embed. Ex. "@"d3/bar-chart" | |
| or "d/1f434ef3b0569a00" | |
| targets: list or None | |
| An optional list of strings that are the name of the cells to embed. | |
| By default, the entire notebook, including unnamed cells, will be embeded. | |
| observe: list or None | |
| An optional list of strings that are the name of cells to observe. | |
| Whenever these cells change value or become fulfilled, the value will | |
| be passed back into Streamlit as part of the return value. | |
| redefine: dict or None | |
| An optional dict containing the cells you wish to redefine and the values | |
| you wish to redefine them as. The keys are the cell names you want to | |
| redefine, the values are what they will be redefined as. Keep in mind, | |
| there is a serialization process from Streamlit Python -> frontend JavaScript. | |
| hide: list or None | |
| An option list of strings that are the names of cells that will be embeded, | |
| but won't be rendered to the DOM. | |
| Returns | |
| ------- | |
| dict | |
| An object containing the live observed values. If the observe parameter is | |
| empty, then the dict will be empty. The keys are the name of the cell that | |
| is observe, the values are the values of the cells. | |
| """ | |
| component_value = _component_func( | |
| notebook=notebook, targets=targets, observe=observe, redefine=redefine, hide=hide, key=key, name=key | |
| ) | |
| if component_value is None: | |
| return {} | |
| return component_value | |
| # if not _RELEASE: | |
| # import streamlit as st | |
| # observers = observable("World Tour!", | |
| # notebook="@d3/world-tour", | |
| # targets=["canvas"], | |
| # observe=["name"] | |
| # ) | |
| # name = observers.get("name") | |
| # st.write(f"Current country: ** *{name}* **") | |