Adding custom keys for core jptr notebook

pull/37/head
Sylvain Corlay 12 years ago
parent 18e77a090a
commit 374459e5e7

@ -77,8 +77,12 @@ def _show_traceback(method):
def register(key=None):
"""Returns a decorator registering a widget class in the widget registry.
If no key is provided, the class name is used as a key. A key is
provided for each core Jupyter widget so that the frontend can use
this key regardless of the language of the kernel"""
def wrap(widget):
l = key if key is not None else widget._view_name.default_value
l = key if key is not None else widget.__module__ + widget.__name__
Widget.widget_types[l] = widget
return widget
return wrap

@ -20,7 +20,6 @@ from IPython.utils.warn import DeprecatedClass
#-----------------------------------------------------------------------------
# Classes
#-----------------------------------------------------------------------------
@register()
class _Bool(DOMWidget):
"""A base class for creating widgets that represent booleans."""
value = Bool(False, help="Bool value", sync=True)
@ -28,13 +27,13 @@ class _Bool(DOMWidget):
disabled = Bool(False, help="Enable or disable user changes.", sync=True)
@register()
@register('jupyter.Checkbox')
class Checkbox(_Bool):
"""Displays a boolean `value`."""
_view_name = Unicode('CheckboxView', sync=True)
@register()
@register('jupyter.ToggleButton')
class ToggleButton(_Bool):
"""Displays a boolean `value`."""

@ -10,7 +10,7 @@ from .widget import DOMWidget, register
from IPython.utils.traitlets import Unicode, Tuple, TraitError, Int, CaselessStrEnum
from IPython.utils.warn import DeprecatedClass
@register()
@register('jupyter.Box')
class Box(DOMWidget):
"""Displays multiple widgets in a group."""
_view_name = Unicode('BoxView', sync=True)
@ -45,7 +45,7 @@ class Box(DOMWidget):
child._handle_displayed()
@register()
@register('jupyter.Popup')
class Popup(Box):
"""Displays multiple widgets in an in page popup div."""
_view_name = Unicode('PopupView', sync=True)
@ -54,7 +54,7 @@ class Popup(Box):
button_text = Unicode(sync=True)
@register()
@register('jupyter.FlexBox')
class FlexBox(Box):
"""Displays multiple widgets using the flexible box model."""
_view_name = Unicode('FlexBoxView', sync=True)

@ -21,7 +21,7 @@ from IPython.utils.warn import DeprecatedClass
#-----------------------------------------------------------------------------
# Classes
#-----------------------------------------------------------------------------
@register()
@register('jupyter.Button')
class Button(DOMWidget):
"""Button widget.

@ -43,17 +43,17 @@ class _BoundedFloat(_Float):
self.value = min(max(new, self.min), self.max)
@register()
@register('jupyter.FloatText')
class FloatText(_Float):
_view_name = Unicode('FloatTextView', sync=True)
@register()
@register('jupyter.BoundedFloatText')
class BoundedFloatText(_BoundedFloat):
_view_name = Unicode('FloatTextView', sync=True)
@register()
@register('jupyter.FloatSlider')
class FloatSlider(_BoundedFloat):
_view_name = Unicode('FloatSliderView', sync=True)
orientation = CaselessStrEnum(values=['horizontal', 'vertical'],
@ -64,7 +64,7 @@ class FloatSlider(_BoundedFloat):
slider_color = Unicode(sync=True)
@register()
@register('jupyter.FloatProgress')
class FloatProgress(_BoundedFloat):
_view_name = Unicode('ProgressView', sync=True)
@ -167,7 +167,7 @@ class _BoundedFloatRange(_FloatRange):
self.lower = low
@register()
@register('jupyter.FloatRangeSlider')
class FloatRangeSlider(_BoundedFloatRange):
_view_name = Unicode('FloatSliderView', sync=True)
orientation = CaselessStrEnum(values=['horizontal', 'vertical'],

@ -22,7 +22,7 @@ from IPython.utils.warn import DeprecatedClass
#-----------------------------------------------------------------------------
# Classes
#-----------------------------------------------------------------------------
@register()
@register('jupyter.Image')
class Image(DOMWidget):
"""Displays an image as a widget.

@ -56,19 +56,19 @@ class _BoundedInt(_Int):
if new > self.max:
raise ValueError("setting min > max")
@register()
@register('jupyter.IntText')
class IntText(_Int):
"""Textbox widget that represents a int."""
_view_name = Unicode('IntTextView', sync=True)
@register()
@register('jupyter.BoundedIntText')
class BoundedIntText(_BoundedInt):
"""Textbox widget that represents a int bounded by a minimum and maximum value."""
_view_name = Unicode('IntTextView', sync=True)
@register()
@register('jupyter.IntSlider')
class IntSlider(_BoundedInt):
"""Slider widget that represents a int bounded by a minimum and maximum value."""
_view_name = Unicode('IntSliderView', sync=True)
@ -80,7 +80,7 @@ class IntSlider(_BoundedInt):
slider_color = Unicode(sync=True)
@register()
@register('jupyter.IntProgress')
class IntProgress(_BoundedInt):
"""Progress bar that represents a int bounded by a minimum and maximum value."""
_view_name = Unicode('ProgressView', sync=True)
@ -180,7 +180,7 @@ class _BoundedIntRange(_IntRange):
self.upper = high
self.lower = low
@register()
@register('jupyter.IntRangeSlider')
class IntRangeSlider(_BoundedIntRange):
_view_name = Unicode('IntSliderView', sync=True)
orientation = CaselessStrEnum(values=['horizontal', 'vertical'],

@ -114,7 +114,7 @@ class _Selection(DOMWidget):
self.value_lock.release()
@register()
@register('jupyter.ToggleButtons')
class ToggleButtons(_Selection):
"""Group of toggle buttons that represent an enumeration. Only one toggle
button can be toggled at any point in time."""
@ -125,7 +125,7 @@ class ToggleButtons(_Selection):
default_value='', allow_none=True, sync=True, help="""Use a
predefined styling for the buttons.""")
@register()
@register('jupyter.Dropdown')
class Dropdown(_Selection):
"""Allows you to select a single item from a dropdown."""
_view_name = Unicode('DropdownView', sync=True)
@ -135,7 +135,7 @@ class Dropdown(_Selection):
default_value='', allow_none=True, sync=True, help="""Use a
predefined styling for the buttons.""")
@register()
@register('jupyter.RadioButtons')
class RadioButtons(_Selection):
"""Group of radio buttons that represent an enumeration. Only one radio
button can be toggled at any point in time."""
@ -143,7 +143,7 @@ class RadioButtons(_Selection):
@register()
@register('jupyter.Select')
class Select(_Selection):
"""Listbox that only allows one item to be selected at any given time."""
_view_name = Unicode('SelectView', sync=True)

@ -51,13 +51,13 @@ class _SelectionContainer(Box):
else:
return None
@register()
@register('jupyter.Accordion')
class Accordion(_SelectionContainer):
"""Displays children each on a separate accordion page."""
_view_name = Unicode('AccordionView', sync=True)
@register()
@register('jupyter.Tab')
class Tab(_SelectionContainer):
"""Displays children each on a separate accordion tab."""
_view_name = Unicode('TabView', sync=True)

@ -28,20 +28,20 @@ class _String(DOMWidget):
placeholder = Unicode("", help="Placeholder text to display when nothing has been typed", sync=True)
@register()
@register('jupyter.HTML')
class HTML(_String):
"""Renders the string `value` as HTML."""
_view_name = Unicode('HTMLView', sync=True)
@register()
@register('jupyter.Latex')
class Latex(_String):
"""Renders math inside the string `value` as Latex (requires $ $ or $$ $$
and similar latex tags)."""
_view_name = Unicode('LatexView', sync=True)
@register()
@register('jupyter.Textarea')
class Textarea(_String):
"""Multiline text area widget."""
_view_name = Unicode('TextareaView', sync=True)
@ -50,7 +50,7 @@ class Textarea(_String):
self.send({"method": "scroll_to_bottom"})
@register()
@register('jupyter.Text')
class Text(_String):
"""Single line textbox widget."""
_view_name = Unicode('TextView', sync=True)

Loading…
Cancel
Save