Releases: manzt/anywidget
[email protected]
Patch Changes
- Bump
typescript
,react
,react-dom
(#567)
[email protected]
Patch Changes
- fix: Bring back
anywidget.json
to support notebook v6 discovery (#553)
[email protected]
Patch Changes
- Bump dependencies (#547)
[email protected]
Patch Changes
-
Make a blanket
_repr_mimbundle_
implementation (#546)ipywidgets
v7 and v8 switched from using_ipython_display_
to_repr_mimebundle_
for rendering widgets in Jupyter. This means that depending on which version ofipywidgets
used (v7 in Google Colab), anywidget end users need to handle the behavior of both methods. This change adds a blanket implementation of_repr_mimebundle_
so that it is easier to wrap ananywidget
:import anywidget import traitlets class Widget(anywidget.AnyWidget): _esm = "index.js" _css = "style.css" value = traitlets.Unicode("Hello, World!").tag(sync=True) class Wrapper: def __init__(self): self._widget = Widget() # Easy to forward the underlying widget's repr to the wrapper class, across all versions of ipywidgets def _repr_mimebundle_(self, include=None, exclude=None): return self._widget._repr_mimebundle_(include, exclude)
[email protected]
Patch Changes
-
experimental Ensure anywidget.experimental.command is called with self (#545)
-
experimental Replace invoke timeout with more flexible
AbortSignal
(#540)This allows more flexible control over aborting the invoke request, including delegating to third-party libraries that manage cancellation.
export default { async render({ model, el }) { const controller = new AbortController(); // Randomly abort the request after 1 second setTimeout(() => Math.random() < 0.5 && controller.abort(), 1000); const signal = controller.signal; model .invoke("echo", "Hello, world", { signal }) .then((result) => { el.innerHTML = result; }) .catch((err) => { el.innerHTML = `Error: ${err.message}`; }); }, };
-
Updated dependencies [
a4b0ec07b2b8937111487108e9b82daf3d9be2df
]:- @anywidget/[email protected]
@anywidget/[email protected]
Patch Changes
-
experimental Replace invoke timeout with more flexible
AbortSignal
(#540)This allows more flexible control over aborting the invoke request, including delegating to third-party libraries that manage cancellation.
export default { async render({ model, el }) { const controller = new AbortController(); // Randomly abort the request after 1 second setTimeout(() => Math.random() < 0.5 && controller.abort(), 1000); const signal = controller.signal; model .invoke("echo", "Hello, world", { signal }) .then((result) => { el.innerHTML = result; }) .catch((err) => { el.innerHTML = `Error: ${err.message}`; }); }, };
@anywidget/[email protected]
Patch Changes
- Updated dependencies [
a4b0ec07b2b8937111487108e9b82daf3d9be2df
]:- @anywidget/[email protected]
@anywidget/[email protected]
Patch Changes
- Updated dependencies [
a4b0ec07b2b8937111487108e9b82daf3d9be2df
]:- @anywidget/[email protected]
[email protected]
Patch Changes
- Refactor AnyWidget command registration (#526)
[email protected]
Patch Changes
- Update typings with experimental API (#518)