I’ve tried to explore if Panel works in Colab and in my simple example it does.
But I then thought, wouldn’t it be powerful if I could show
or serve
the Panel app in order to get some quick feedback from colleagues or friends.
But it seems that the websockets pose a challenge. How do I solve that?
!pip install --upgrade panel bokeh ipykernel
import panel as pn
import param
pn.extension()
pn.pane.Markdown("Hello World")
pn.config.sizing_mode="stretch_width"
class App(param.Parameterized):
value = param.Integer(default=5, bounds=(0,50), step=5)
value2 = param.Integer(default=5, bounds=(0,50), step=5)
progress = param.Parameter()
view = param.Parameter()
def __init__(self, **params):
super().__init__(**params)
self.progress = pn.widgets.Progress(value=10)
self.view = pn.Column(
"# Hello Panel-Colab World",
pn.Param(self, parameters=["value", "value2"]),
self.progress,
max_width=500,
)
@param.depends("value", "value2", watch=True)
def _update(self):
self.progress.value = self.value+self.value2
app = App()
app.view
from google.colab.output import eval_js
url = eval_js("google.colab.kernel.proxyPort(8000)")
print(url)
websocket_origin = url.replace("https://", "").replace("/", "")
print(websocket_origin)
app.view.show(port=8000, websocket_origin=websocket_origin)