Show More
The requested changes are too big and content was truncated. Show full diff
@@ -9,4 +9,4 b' from .widget_int import IntTextWidget, BoundedIntTextWidget, IntSliderWidget, In' | |||||
9 | from .widget_selection import RadioButtonsWidget, ToggleButtonsWidget, DropdownWidget, SelectWidget |
|
9 | from .widget_selection import RadioButtonsWidget, ToggleButtonsWidget, DropdownWidget, SelectWidget | |
10 | from .widget_selectioncontainer import TabWidget, AccordionWidget |
|
10 | from .widget_selectioncontainer import TabWidget, AccordionWidget | |
11 | from .widget_string import HTMLWidget, LatexWidget, TextWidget, TextareaWidget |
|
11 | from .widget_string import HTMLWidget, LatexWidget, TextWidget, TextareaWidget | |
12 | from .interaction import interact, interactive, annotate |
|
12 | from .interaction import interact, interactive, annotate, const |
@@ -22,9 +22,10 b' from inspect import getcallargs' | |||||
22 |
|
22 | |||
23 | from IPython.html.widgets import (Widget, TextWidget, |
|
23 | from IPython.html.widgets import (Widget, TextWidget, | |
24 | FloatSliderWidget, IntSliderWidget, CheckboxWidget, DropdownWidget, |
|
24 | FloatSliderWidget, IntSliderWidget, CheckboxWidget, DropdownWidget, | |
25 | ContainerWidget) |
|
25 | ContainerWidget, DOMWidget) | |
26 | from IPython.display import display, clear_output |
|
26 | from IPython.display import display, clear_output | |
27 | from IPython.utils.py3compat import string_types, unicode_type |
|
27 | from IPython.utils.py3compat import string_types, unicode_type | |
|
28 | from IPython.utils.traitlets import HasTraits, Any, Unicode | |||
28 |
|
29 | |||
29 | #----------------------------------------------------------------------------- |
|
30 | #----------------------------------------------------------------------------- | |
30 | # Classes and Functions |
|
31 | # Classes and Functions | |
@@ -107,7 +108,7 b' def _widget_abbrev(o):' | |||||
107 |
|
108 | |||
108 | def _widget_from_abbrev(abbrev): |
|
109 | def _widget_from_abbrev(abbrev): | |
109 | """Build a Widget intstance given an abbreviation or Widget.""" |
|
110 | """Build a Widget intstance given an abbreviation or Widget.""" | |
110 | if isinstance(abbrev, Widget): |
|
111 | if isinstance(abbrev, Widget) or isinstance(abbrev, const): | |
111 | return abbrev |
|
112 | return abbrev | |
112 |
|
113 | |||
113 | widget = _widget_abbrev(abbrev) |
|
114 | widget = _widget_abbrev(abbrev) | |
@@ -211,8 +212,10 b' def interactive(f, *args, **kwargs):' | |||||
211 | kwargs_widgets.extend(_widgets_from_abbreviations(sorted(kwargs.items(), key = lambda x: x[0]))) |
|
212 | kwargs_widgets.extend(_widgets_from_abbreviations(sorted(kwargs.items(), key = lambda x: x[0]))) | |
212 |
|
213 | |||
213 | # This has to be done as an assignment, not using container.children.append, |
|
214 | # This has to be done as an assignment, not using container.children.append, | |
214 | # so that traitlets notices the update. |
|
215 | # so that traitlets notices the update. We skip any objects (such as const) that | |
215 | container.children = args_widgets + kwargs_widgets |
|
216 | # are not DOMWidgets. | |
|
217 | c = [w for w in args_widgets+kwargs_widgets if isinstance(w, DOMWidget)] | |||
|
218 | container.children = c | |||
216 |
|
219 | |||
217 | # Build the callback |
|
220 | # Build the callback | |
218 | def call_f(name, old, new): |
|
221 | def call_f(name, old, new): | |
@@ -261,6 +264,13 b' def interact(*args, **kwargs):' | |||||
261 | return f |
|
264 | return f | |
262 | return dec |
|
265 | return dec | |
263 |
|
266 | |||
|
267 | class const(HasTraits): | |||
|
268 | """A pseudo-widget whose value is constant and never client synced.""" | |||
|
269 | value = Any(help="Any Python object") | |||
|
270 | description = Unicode('', help="Any Python object") | |||
|
271 | def __init__(self, value, **kwargs): | |||
|
272 | super(const, self).__init__(value=value, **kwargs) | |||
|
273 | ||||
264 | def annotate(**kwargs): |
|
274 | def annotate(**kwargs): | |
265 | """Python 3 compatible function annotation for Python 2.""" |
|
275 | """Python 3 compatible function annotation for Python 2.""" | |
266 | if not kwargs: |
|
276 | if not kwargs: |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
General Comments 0
You need to be logged in to leave comments.
Login now