Support an "eval" attribute to evaluate widget values in @interact #724
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Let
W
be aText
widget (or another widget, butText
is a natural use case). If that is used for an interactive (@interact
) function, the function receives the text from the input box, i.e.W.value
as a string. I propose to support an additional evaluation step such that the interactive function could receivef(W.value)
as argument for some callablef
.In the current implementation, this is done with a
W.eval
attribute. If that attribute exists, thenW.eval(W.value)
is passed to the interactive function.The current branch deals with the internal implementation only. At this point, there is no clean user-interface for this (you have to manually set
W.eval = f
or define a custom widget type with aneval
attribute), but that can easily be added later. I also want to avoid bikeshedding about the user-interface, I wanted feedback about the general idea first.Context: this is to support analogous functionality from SageNB to help with OpenDreamKit/OpenDreamKit#94.