Support setting a link on traits
- Dominant language
- Python
- Stars
- 653
- Forks
- 217
- Avg merge
- 2d 21h
- Merged PRs (30d)
- 2
Description
I'm looking to start using a standard pattern in our UIs to split our model and views, similar to the points discussed in https://github.com/jupyter-widgets/ipywidgets/issues/2296. However when extending to more complex or nested views it's rather inconvenient to have to define all the links separately as we need to hold a reference to every field.
Instead I'd been keen to introduce the ability to set links directly on traits. This way I can bind to the view's traits without needing to hold a reference to the object. Proposing something along the following lines so that it's backwards compatible with current traitlet usage.
```python
from traitlets import SourceLink, Float, HasTraits
import ipywidgets as widgets
class Model(HasTraits):
a = Float()
def view(model):
return widgets.HBox([
widgets.Label("Value A"),
widgets.FloatText(value = SourceLink(model, "a"))
])
x1 = Model()
view(x1)
```
Having tested locally I think this is easily achievable with minimal changes. However before submitting a PR I wanted to check if any views or comments on the idea or how to approach it.
Contributor guide
Assessment
This issue has not been assessed yet.