diff --git a/IPython/html/tests/widgets/widget.js b/IPython/html/tests/widgets/widget.js
index 787b0f2..005d75e 100644
--- a/IPython/html/tests/widgets/widget.js
+++ b/IPython/html/tests/widgets/widget.js
@@ -147,7 +147,7 @@ casper.notebook_test(function () {
var textbox = {};
throttle_index = this.append_cell(
'import time\n' +
- 'textbox = widgets.TextWidget()\n' +
+ 'textbox = widgets.Text()\n' +
'display(textbox)\n' +
'textbox.add_class("my-throttle-textbox", selector="input")\n' +
'def handle_change(name, old, new):\n' +
diff --git a/IPython/html/tests/widgets/widget_bool.js b/IPython/html/tests/widgets/widget_bool.js
index 4fd1007..0fe80b9 100644
--- a/IPython/html/tests/widgets/widget_bool.js
+++ b/IPython/html/tests/widgets/widget_bool.js
@@ -7,8 +7,8 @@ casper.notebook_test(function () {
this.execute_cell_then(index);
var bool_index = this.append_cell(
- 'bool_widgets = [widgets.CheckboxWidget(description="Title", value=True),\n' +
- ' widgets.ToggleButtonWidget(description="Title", value=True)]\n' +
+ 'bool_widgets = [widgets.Checkbox(description="Title", value=True),\n' +
+ ' widgets.ToggleButton(description="Title", value=True)]\n' +
'display(bool_widgets[0])\n' +
'display(bool_widgets[1])\n' +
'print("Success")');
diff --git a/IPython/html/tests/widgets/widget_button.js b/IPython/html/tests/widgets/widget_button.js
index ae0aec6..304f64d 100644
--- a/IPython/html/tests/widgets/widget_button.js
+++ b/IPython/html/tests/widgets/widget_button.js
@@ -7,7 +7,7 @@ casper.notebook_test(function () {
this.execute_cell_then(index);
var button_index = this.append_cell(
- 'button = widgets.ButtonWidget(description="Title")\n' +
+ 'button = widgets.Button(description="Title")\n' +
'display(button)\n' +
'print("Success")\n' +
'def handle_click(sender):\n' +
diff --git a/IPython/html/tests/widgets/widget_container.js b/IPython/html/tests/widgets/widget_container.js
index e3faa75..102436b 100644
--- a/IPython/html/tests/widgets/widget_container.js
+++ b/IPython/html/tests/widgets/widget_container.js
@@ -7,8 +7,8 @@ casper.notebook_test(function () {
this.execute_cell_then(index);
var container_index = this.append_cell(
- 'container = widgets.ContainerWidget()\n' +
- 'button = widgets.ButtonWidget()\n'+
+ 'container = widgets.Container()\n' +
+ 'button = widgets.Button()\n'+
'container.children = [button]\n'+
'display(container)\n'+
'container.add_class("my-test-class")\n'+
diff --git a/IPython/html/tests/widgets/widget_float.js b/IPython/html/tests/widgets/widget_float.js
index a26c42d..a2f4e74 100644
--- a/IPython/html/tests/widgets/widget_float.js
+++ b/IPython/html/tests/widgets/widget_float.js
@@ -9,7 +9,7 @@ casper.notebook_test(function () {
var float_text = {};
float_text.query = '.widget-area .widget-subarea .widget-hbox-single .my-second-float-text';
float_text.index = this.append_cell(
- 'float_widget = widgets.FloatTextWidget()\n' +
+ 'float_widget = widgets.FloatText()\n' +
'display(float_widget)\n' +
'float_widget.add_class("my-second-float-text", selector="input")\n' +
'print(float_widget.model_id)\n');
@@ -59,8 +59,8 @@ casper.notebook_test(function () {
var slider = {};
slider.query = '.widget-area .widget-subarea .widget-hbox-single .slider';
slider.index = this.append_cell(
- 'floatrange = [widgets.BoundedFloatTextWidget(), \n' +
- ' widgets.FloatSliderWidget()]\n' +
+ 'floatrange = [widgets.BoundedFloatText(), \n' +
+ ' widgets.FloatSlider()]\n' +
'[display(floatrange[i]) for i in range(2)]\n' +
'print("Success")\n');
this.execute_cell_then(slider.index, function(index){
diff --git a/IPython/html/tests/widgets/widget_image.js b/IPython/html/tests/widgets/widget_image.js
index 04b1451..c858c68 100644
--- a/IPython/html/tests/widgets/widget_image.js
+++ b/IPython/html/tests/widgets/widget_image.js
@@ -18,7 +18,7 @@ casper.notebook_test(function () {
var image_index = this.append_cell(
'import base64\n' +
'data = base64.b64decode("' + test_jpg + '")\n' +
- 'image = widgets.ImageWidget()\n' +
+ 'image = widgets.Image()\n' +
'image.format = "jpeg"\n' +
'image.value = data\n' +
'image.width = "50px"\n' +
diff --git a/IPython/html/tests/widgets/widget_int.js b/IPython/html/tests/widgets/widget_int.js
index 4393664..a9bc43d 100644
--- a/IPython/html/tests/widgets/widget_int.js
+++ b/IPython/html/tests/widgets/widget_int.js
@@ -9,7 +9,7 @@ casper.notebook_test(function () {
var int_text = {};
int_text.query = '.widget-area .widget-subarea .widget-hbox-single .my-second-int-text';
int_text.index = this.append_cell(
- 'int_widget = widgets.IntTextWidget()\n' +
+ 'int_widget = widgets.IntText()\n' +
'display(int_widget)\n' +
'int_widget.add_class("my-second-int-text", selector="input")\n' +
'print(int_widget.model_id)\n');
diff --git a/IPython/html/tests/widgets/widget_selection.js b/IPython/html/tests/widgets/widget_selection.js
index 25d5b86..dac47e0 100644
--- a/IPython/html/tests/widgets/widget_selection.js
+++ b/IPython/html/tests/widgets/widget_selection.js
@@ -44,10 +44,10 @@ casper.notebook_test(function () {
//values=["' + selection_values + '"[i] for i in range(4)]
selection_index = this.append_cell(
'values=["' + selection_values + '"[i] for i in range(4)]\n' +
- 'selection = [widgets.DropdownWidget(values=values),\n' +
- ' widgets.ToggleButtonsWidget(values=values),\n' +
- ' widgets.RadioButtonsWidget(values=values),\n' +
- ' widgets.SelectWidget(values=values)]\n' +
+ 'selection = [widgets.Dropdown(values=values),\n' +
+ ' widgets.ToggleButtons(values=values),\n' +
+ ' widgets.RadioButtons(values=values),\n' +
+ ' widgets.Select(values=values)]\n' +
'[display(selection[i]) for i in range(4)]\n' +
'for widget in selection:\n' +
' def handle_change(name,old,new):\n' +
diff --git a/IPython/html/tests/widgets/widget_selectioncontainer.js b/IPython/html/tests/widgets/widget_selectioncontainer.js
index 1cc9526..57e9bd1 100644
--- a/IPython/html/tests/widgets/widget_selectioncontainer.js
+++ b/IPython/html/tests/widgets/widget_selectioncontainer.js
@@ -9,10 +9,10 @@ casper.notebook_test(function () {
// Test tab view
var multicontainer1_query = '.widget-area .widget-subarea div div.nav-tabs';
var multicontainer1_index = this.append_cell(
- 'multicontainer = widgets.TabWidget()\n' +
- 'page1 = widgets.TextWidget()\n' +
- 'page2 = widgets.TextWidget()\n' +
- 'page3 = widgets.TextWidget()\n' +
+ 'multicontainer = widgets.Tab()\n' +
+ 'page1 = widgets.Text()\n' +
+ 'page2 = widgets.Text()\n' +
+ 'page3 = widgets.Text()\n' +
'multicontainer.children = [page1, page2, page3]\n' +
'display(multicontainer)\n' +
'multicontainer.selected_index = 0\n' +
@@ -64,10 +64,10 @@ casper.notebook_test(function () {
// Test accordion view
var multicontainer2_query = '.widget-area .widget-subarea .panel-group';
var multicontainer2_index = this.append_cell(
- 'multicontainer = widgets.AccordionWidget()\n' +
- 'page1 = widgets.TextWidget()\n' +
- 'page2 = widgets.TextWidget()\n' +
- 'page3 = widgets.TextWidget()\n' +
+ 'multicontainer = widgets.Accordion()\n' +
+ 'page1 = widgets.Text()\n' +
+ 'page2 = widgets.Text()\n' +
+ 'page3 = widgets.Text()\n' +
'multicontainer.children = [page1, page2, page3]\n' +
'multicontainer.set_title(2, "good")\n' +
'display(multicontainer)\n' +
diff --git a/IPython/html/tests/widgets/widget_string.js b/IPython/html/tests/widgets/widget_string.js
index 1288cbd..8e9acee 100644
--- a/IPython/html/tests/widgets/widget_string.js
+++ b/IPython/html/tests/widgets/widget_string.js
@@ -7,10 +7,10 @@ casper.notebook_test(function () {
this.execute_cell_then(index);
var string_index = this.append_cell(
- 'string_widget = [widgets.TextWidget(value = "xyz", placeholder = "abc"),\n' +
- ' widgets.TextareaWidget(value = "xyz", placeholder = "def"),\n' +
- ' widgets.HTMLWidget(value = "xyz"),\n' +
- ' widgets.LatexWidget(value = "$\\\\LaTeX{}$")]\n' +
+ 'string_widget = [widgets.Text(value = "xyz", placeholder = "abc"),\n' +
+ ' widgets.Textarea(value = "xyz", placeholder = "def"),\n' +
+ ' widgets.HTML(value = "xyz"),\n' +
+ ' widgets.Latex(value = "$\\\\LaTeX{}$")]\n' +
'[display(widget) for widget in string_widget]\n'+
'print("Success")');
this.execute_cell_then(string_index, function(index){
diff --git a/IPython/html/widgets/__init__.py b/IPython/html/widgets/__init__.py
index 40c81ce..eb75346 100644
--- a/IPython/html/widgets/__init__.py
+++ b/IPython/html/widgets/__init__.py
@@ -1,8 +1,20 @@
from .widget import Widget, DOMWidget, CallbackDispatcher
+from .widget_bool import Checkbox, ToggleButton
+from .widget_button import Button
+from .widget_container import Container, Popup, FlexContainer, HBox, VBox
+from .widget_float import FloatText, BoundedFloatText, FloatSlider, FloatProgress
+from .widget_image import Image
+from .widget_int import IntText, BoundedIntText, IntSlider, IntProgress
+from .widget_selection import RadioButtons, ToggleButtons, Dropdown, Select
+from .widget_selectioncontainer import Tab, Accordion
+from .widget_string import HTML, Latex, Text, Textarea
+from .interaction import interact, interactive, fixed
+
+# Deprecated classes
from .widget_bool import CheckboxWidget, ToggleButtonWidget
from .widget_button import ButtonWidget
-from .widget_container import ContainerWidget, PopupWidget, FlexContainerWidget, HBoxWidget, VBoxWidget
+from .widget_container import ContainerWidget, PopupWidget
from .widget_float import FloatTextWidget, BoundedFloatTextWidget, FloatSliderWidget, FloatProgressWidget
from .widget_image import ImageWidget
from .widget_int import IntTextWidget, BoundedIntTextWidget, IntSliderWidget, IntProgressWidget
diff --git a/IPython/html/widgets/interaction.py b/IPython/html/widgets/interaction.py
index 1b59de8..c8a3592 100644
--- a/IPython/html/widgets/interaction.py
+++ b/IPython/html/widgets/interaction.py
@@ -21,9 +21,9 @@ except ImportError:
from inspect import getcallargs
from IPython.core.getipython import get_ipython
-from IPython.html.widgets import (Widget, TextWidget,
- FloatSliderWidget, IntSliderWidget, CheckboxWidget, DropdownWidget,
- ContainerWidget, DOMWidget)
+from IPython.html.widgets import (Widget, Text,
+ FloatSlider, IntSlider, Checkbox, Dropdown,
+ Container, DOMWidget)
from IPython.display import display, clear_output
from IPython.utils.py3compat import string_types, unicode_type
from IPython.utils.traitlets import HasTraits, Any, Unicode
@@ -70,17 +70,17 @@ def _get_min_max_value(min, max, value=None, step=None):
def _widget_abbrev_single_value(o):
"""Make widgets from single values, which can be used as parameter defaults."""
if isinstance(o, string_types):
- return TextWidget(value=unicode_type(o))
+ return Text(value=unicode_type(o))
elif isinstance(o, dict):
- return DropdownWidget(values=o)
+ return Dropdown(values=o)
elif isinstance(o, bool):
- return CheckboxWidget(value=o)
+ return Checkbox(value=o)
elif isinstance(o, float):
min, max, value = _get_min_max_value(None, None, o)
- return FloatSliderWidget(value=o, min=min, max=max)
+ return FloatSlider(value=o, min=min, max=max)
elif isinstance(o, int):
min, max, value = _get_min_max_value(None, None, o)
- return IntSliderWidget(value=o, min=min, max=max)
+ return IntSlider(value=o, min=min, max=max)
else:
return None
@@ -89,13 +89,13 @@ def _widget_abbrev(o):
float_or_int = (float, int)
if isinstance(o, (list, tuple)):
if o and all(isinstance(x, string_types) for x in o):
- return DropdownWidget(values=[unicode_type(k) for k in o])
+ return Dropdown(values=[unicode_type(k) for k in o])
elif _matches(o, (float_or_int, float_or_int)):
min, max, value = _get_min_max_value(o[0], o[1])
if all(isinstance(_, int) for _ in o):
- cls = IntSliderWidget
+ cls = IntSlider
else:
- cls = FloatSliderWidget
+ cls = FloatSlider
return cls(value=value, min=min, max=max)
elif _matches(o, (float_or_int, float_or_int, float_or_int)):
step = o[2]
@@ -103,9 +103,9 @@ def _widget_abbrev(o):
raise ValueError("step must be >= 0, not %r" % step)
min, max, value = _get_min_max_value(o[0], o[1], step=step)
if all(isinstance(_, int) for _ in o):
- cls = IntSliderWidget
+ cls = IntSlider
else:
- cls = FloatSliderWidget
+ cls = FloatSlider
return cls(value=value, min=min, max=max, step=step)
else:
return _widget_abbrev_single_value(o)
@@ -176,7 +176,7 @@ def interactive(__interact_f, **kwargs):
f = __interact_f
co = kwargs.pop('clear_output', True)
kwargs_widgets = []
- container = ContainerWidget()
+ container = Container()
container.result = None
container.args = []
container.kwargs = dict()
diff --git a/IPython/html/widgets/widget_bool.py b/IPython/html/widgets/widget_bool.py
index ac07d7f..daeba19 100644
--- a/IPython/html/widgets/widget_bool.py
+++ b/IPython/html/widgets/widget_bool.py
@@ -1,4 +1,4 @@
-"""BoolWidget class.
+"""Bool class.
Represents a boolean using a widget.
"""
@@ -15,20 +15,23 @@ Represents a boolean using a widget.
#-----------------------------------------------------------------------------
from .widget import DOMWidget
from IPython.utils.traitlets import Unicode, Bool
+from IPython.utils.warn import DeprecatedClass
#-----------------------------------------------------------------------------
# Classes
#-----------------------------------------------------------------------------
-class _BoolWidget(DOMWidget):
+class _Bool(DOMWidget):
value = Bool(False, help="Bool value", sync=True)
description = Unicode('', help="Description of the boolean (label).", sync=True)
disabled = Bool(False, help="Enable or disable user changes.", sync=True)
-class CheckboxWidget(_BoolWidget):
+class Checkbox(_Bool):
_view_name = Unicode('CheckboxView', sync=True)
-class ToggleButtonWidget(_BoolWidget):
+class ToggleButton(_Bool):
_view_name = Unicode('ToggleButtonView', sync=True)
+CheckboxWidget = DeprecatedClass(Checkbox, 'CheckboxWidget')
+ToggleButtonWidget = DeprecatedClass(ToggleButton, 'ToggleButtonWidget')
diff --git a/IPython/html/widgets/widget_button.py b/IPython/html/widgets/widget_button.py
index 3fdfe72..c191c4e 100644
--- a/IPython/html/widgets/widget_button.py
+++ b/IPython/html/widgets/widget_button.py
@@ -1,4 +1,4 @@
-"""ButtonWidget class.
+"""Button class.
Represents a button in the frontend using a widget. Allows user to listen for
click events on the button and trigger backend code when the clicks are fired.
@@ -16,11 +16,12 @@ click events on the button and trigger backend code when the clicks are fired.
#-----------------------------------------------------------------------------
from .widget import DOMWidget, CallbackDispatcher
from IPython.utils.traitlets import Unicode, Bool
+from IPython.utils.warn import DeprecatedClass
#-----------------------------------------------------------------------------
# Classes
#-----------------------------------------------------------------------------
-class ButtonWidget(DOMWidget):
+class Button(DOMWidget):
_view_name = Unicode('ButtonView', sync=True)
# Keys
@@ -29,7 +30,7 @@ class ButtonWidget(DOMWidget):
def __init__(self, **kwargs):
"""Constructor"""
- super(ButtonWidget, self).__init__(**kwargs)
+ super(Button, self).__init__(**kwargs)
self._click_handlers = CallbackDispatcher()
self.on_msg(self._handle_button_msg)
@@ -54,3 +55,6 @@ class ButtonWidget(DOMWidget):
Content of the msg."""
if content.get('event', '') == 'click':
self._click_handlers(self)
+
+
+ButtonWidget = DeprecatedClass(Button, 'ButtonWidget')
diff --git a/IPython/html/widgets/widget_container.py b/IPython/html/widgets/widget_container.py
index 2d67d35..adbb1e0 100644
--- a/IPython/html/widgets/widget_container.py
+++ b/IPython/html/widgets/widget_container.py
@@ -1,4 +1,4 @@
-"""ContainerWidget class.
+"""Container class.
Represents a container that can be used to group other widgets.
"""
@@ -8,8 +8,9 @@ Represents a container that can be used to group other widgets.
from .widget import DOMWidget
from IPython.utils.traitlets import Unicode, Tuple, TraitError, Int, CaselessStrEnum
+from IPython.utils.warn import DeprecatedClass
-class ContainerWidget(DOMWidget):
+class Container(DOMWidget):
_view_name = Unicode('ContainerView', sync=True)
# Child widgets in the container.
@@ -19,22 +20,22 @@ class ContainerWidget(DOMWidget):
def __init__(self, children = (), **kwargs):
kwargs['children'] = children
- super(ContainerWidget, self).__init__(**kwargs)
- self.on_displayed(ContainerWidget._fire_children_displayed)
+ super(Container, self).__init__(**kwargs)
+ self.on_displayed(Container._fire_children_displayed)
def _fire_children_displayed(self):
for child in self.children:
child._handle_displayed()
-class PopupWidget(ContainerWidget):
+class Popup(Container):
_view_name = Unicode('PopupView', sync=True)
description = Unicode(sync=True)
button_text = Unicode(sync=True)
-class FlexContainerWidget(ContainerWidget):
+class FlexContainer(Container):
_view_name = Unicode('FlexContainerView', sync=True)
flex = Int(0, sync=True, help="""Specify the flexible-ness of the model.""")
def _flex_changed(self, name, old, new):
@@ -51,9 +52,13 @@ class FlexContainerWidget(ContainerWidget):
default_value='start', allow_none=False, sync=True)
-class VBoxWidget(FlexContainerWidget):
+class VBox(FlexContainer):
_view_name = Unicode('VBoxContainerView', sync=True)
-class HBoxWidget(FlexContainerWidget):
+class HBox(FlexContainer):
_view_name = Unicode('HBoxContainerView', sync=True)
+
+ContainerWidget = DeprecatedClass(Container, 'ContainerWidget')
+PopupWidget = DeprecatedClass(Popup, 'PopupWidget')
+
diff --git a/IPython/html/widgets/widget_float.py b/IPython/html/widgets/widget_float.py
index 7ddcd90..9e4a0af 100644
--- a/IPython/html/widgets/widget_float.py
+++ b/IPython/html/widgets/widget_float.py
@@ -1,4 +1,4 @@
-"""FloatWidget class.
+"""Float class.
Represents an unbounded float using a widget.
"""
@@ -15,17 +15,18 @@ Represents an unbounded float using a widget.
#-----------------------------------------------------------------------------
from .widget import DOMWidget
from IPython.utils.traitlets import Unicode, CFloat, Bool, Enum
+from IPython.utils.warn import DeprecatedClass
#-----------------------------------------------------------------------------
# Classes
#-----------------------------------------------------------------------------
-class _FloatWidget(DOMWidget):
+class _Float(DOMWidget):
value = CFloat(0.0, help="Float value", sync=True)
disabled = Bool(False, help="Enable or disable user changes", sync=True)
description = Unicode(help="Description of the value this widget represents", sync=True)
-class _BoundedFloatWidget(_FloatWidget):
+class _BoundedFloat(_Float):
max = CFloat(100.0, help="Max value", sync=True)
min = CFloat(0.0, help="Min value", sync=True)
step = CFloat(0.1, help="Minimum step that the value can take (ignored by some views)", sync=True)
@@ -42,20 +43,27 @@ class _BoundedFloatWidget(_FloatWidget):
self.value = min(max(new, self.min), self.max)
-class FloatTextWidget(_FloatWidget):
+class FloatText(_Float):
_view_name = Unicode('FloatTextView', sync=True)
-class BoundedFloatTextWidget(_BoundedFloatWidget):
+class BoundedFloatText(_BoundedFloat):
_view_name = Unicode('FloatTextView', sync=True)
-class FloatSliderWidget(_BoundedFloatWidget):
+class FloatSlider(_BoundedFloat):
_view_name = Unicode('FloatSliderView', sync=True)
orientation = Enum([u'horizontal', u'vertical'], u'horizontal',
help="Vertical or horizontal.", sync=True)
readout = Bool(True, help="Display the current value of the slider next to it.", sync=True)
-class FloatProgressWidget(_BoundedFloatWidget):
+class FloatProgress(_BoundedFloat):
_view_name = Unicode('ProgressView', sync=True)
+
+_FloatWidget = DeprecatedClass(_Float, '_FloatWidget')
+_BoundedFloatWidget = DeprecatedClass(_BoundedFloat, '_BoundedFloatWidget')
+FloatTextWidget = DeprecatedClass(FloatText, 'FloatTextWidget')
+BoundedFloatTextWidget = DeprecatedClass(BoundedFloatText, 'BoundedFloatTextWidget')
+FloatSliderWidget = DeprecatedClass(FloatSlider, 'FloatSliderWidget')
+FloatProgressWidget = DeprecatedClass(FloatProgress, 'FloatProgressWidget')
diff --git a/IPython/html/widgets/widget_image.py b/IPython/html/widgets/widget_image.py
index 0e18bde..e03f16a 100644
--- a/IPython/html/widgets/widget_image.py
+++ b/IPython/html/widgets/widget_image.py
@@ -1,4 +1,4 @@
-"""ImageWidget class.
+"""Image class.
Represents an image in the frontend using a widget.
"""
@@ -17,11 +17,12 @@ import base64
from .widget import DOMWidget
from IPython.utils.traitlets import Unicode, CUnicode, Bytes
+from IPython.utils.warn import DeprecatedClass
#-----------------------------------------------------------------------------
# Classes
#-----------------------------------------------------------------------------
-class ImageWidget(DOMWidget):
+class Image(DOMWidget):
_view_name = Unicode('ImageView', sync=True)
# Define the custom state properties to sync with the front-end
@@ -33,3 +34,5 @@ class ImageWidget(DOMWidget):
value = Bytes()
def _value_changed(self, name, old, new):
self._b64value = base64.b64encode(new)
+
+ImageWidget = DeprecatedClass(Image, 'ImageWidget')
diff --git a/IPython/html/widgets/widget_int.py b/IPython/html/widgets/widget_int.py
index 4c9aa2c..4a7a332 100644
--- a/IPython/html/widgets/widget_int.py
+++ b/IPython/html/widgets/widget_int.py
@@ -1,4 +1,4 @@
-"""IntWidget class.
+"""Int class.
Represents an unbounded int using a widget.
"""
@@ -15,17 +15,18 @@ Represents an unbounded int using a widget.
#-----------------------------------------------------------------------------
from .widget import DOMWidget
from IPython.utils.traitlets import Unicode, CInt, Bool, Enum
+from IPython.utils.warn import DeprecatedClass
#-----------------------------------------------------------------------------
# Classes
#-----------------------------------------------------------------------------
-class _IntWidget(DOMWidget):
+class _Int(DOMWidget):
value = CInt(0, help="Int value", sync=True)
disabled = Bool(False, help="Enable or disable user changes", sync=True)
description = Unicode(help="Description of the value this widget represents", sync=True)
-class _BoundedIntWidget(_IntWidget):
+class _BoundedInt(_Int):
step = CInt(1, help="Minimum step that the value can take (ignored by some views)", sync=True)
max = CInt(100, help="Max value", sync=True)
min = CInt(0, help="Min value", sync=True)
@@ -41,20 +42,27 @@ class _BoundedIntWidget(_IntWidget):
self.value = min(max(new, self.min), self.max)
-class IntTextWidget(_IntWidget):
+class IntText(_Int):
_view_name = Unicode('IntTextView', sync=True)
-class BoundedIntTextWidget(_BoundedIntWidget):
+class BoundedIntText(_BoundedInt):
_view_name = Unicode('IntTextView', sync=True)
-class IntSliderWidget(_BoundedIntWidget):
+class IntSlider(_BoundedInt):
_view_name = Unicode('IntSliderView', sync=True)
orientation = Enum([u'horizontal', u'vertical'], u'horizontal',
help="Vertical or horizontal.", sync=True)
readout = Bool(True, help="Display the current value of the slider next to it.", sync=True)
-class IntProgressWidget(_BoundedIntWidget):
+class IntProgress(_BoundedInt):
_view_name = Unicode('ProgressView', sync=True)
+
+_IntWidget = DeprecatedClass(_Int, '_IntWidget')
+_BoundedIntWidget = DeprecatedClass(_BoundedInt, '_BoundedIntWidget')
+IntTextWidget = DeprecatedClass(IntText, 'IntTextWidget')
+BoundedIntTextWidget = DeprecatedClass(BoundedIntText, 'BoundedIntTextWidget')
+IntSliderWidget = DeprecatedClass(IntSlider, 'IntSliderWidget')
+IntProgressWidget = DeprecatedClass(IntProgress, 'IntProgressWidget')
diff --git a/IPython/html/widgets/widget_selection.py b/IPython/html/widgets/widget_selection.py
index e9706d1..25000d3 100644
--- a/IPython/html/widgets/widget_selection.py
+++ b/IPython/html/widgets/widget_selection.py
@@ -1,4 +1,4 @@
-"""SelectionWidget classes.
+"""Selection classes.
Represents an enumeration using a widget.
"""
@@ -20,11 +20,12 @@ from threading import Lock
from .widget import DOMWidget
from IPython.utils.traitlets import Unicode, List, Bool, Any, Dict, TraitError
from IPython.utils.py3compat import unicode_type
+from IPython.utils.warn import DeprecatedClass
#-----------------------------------------------------------------------------
# SelectionWidget
#-----------------------------------------------------------------------------
-class _SelectionWidget(DOMWidget):
+class _Selection(DOMWidget):
"""Base class for Selection widgets
``values`` can be specified as a list or dict. If given as a list,
@@ -109,17 +110,23 @@ class _SelectionWidget(DOMWidget):
self.value_lock.release()
-class ToggleButtonsWidget(_SelectionWidget):
+class ToggleButtons(_Selection):
_view_name = Unicode('ToggleButtonsView', sync=True)
-class DropdownWidget(_SelectionWidget):
+class Dropdown(_Selection):
_view_name = Unicode('DropdownView', sync=True)
-class RadioButtonsWidget(_SelectionWidget):
+class RadioButtons(_Selection):
_view_name = Unicode('RadioButtonsView', sync=True)
-class SelectWidget(_SelectionWidget):
+class Select(_Selection):
_view_name = Unicode('SelectView', sync=True)
+
+_SelectionWidget = DeprecatedClass(_Selection, '_SelectionWidget')
+ToggleButtonsWidget = DeprecatedClass(ToggleButtons, 'ToggleButtonsWidget')
+DropdownWidget = DeprecatedClass(Dropdown, 'DropdownWidget')
+RadioButtonsWidget = DeprecatedClass(RadioButtons, 'RadioButtonsWidget')
+SelectWidget = DeprecatedClass(Select, 'SelectWidget')
diff --git a/IPython/html/widgets/widget_selectioncontainer.py b/IPython/html/widgets/widget_selectioncontainer.py
index ef91559..4871374 100644
--- a/IPython/html/widgets/widget_selectioncontainer.py
+++ b/IPython/html/widgets/widget_selectioncontainer.py
@@ -1,4 +1,4 @@
-"""SelectionContainerWidget class.
+"""SelectionContainer class.
Represents a multipage container that can be used to group other widgets into
pages.
@@ -16,11 +16,12 @@ pages.
#-----------------------------------------------------------------------------
from .widget_container import ContainerWidget
from IPython.utils.traitlets import Unicode, Dict, CInt
+from IPython.utils.warn import DeprecatedClass
#-----------------------------------------------------------------------------
# Classes
#-----------------------------------------------------------------------------
-class _SelectionContainerWidget(ContainerWidget):
+class _SelectionContainer(ContainerWidget):
_titles = Dict(help="Titles of the pages", sync=True)
selected_index = CInt(0, sync=True)
@@ -50,9 +51,13 @@ class _SelectionContainerWidget(ContainerWidget):
return None
-class AccordionWidget(_SelectionContainerWidget):
+class Accordion(_SelectionContainer):
_view_name = Unicode('AccordionView', sync=True)
-class TabWidget(_SelectionContainerWidget):
+class Tab(_SelectionContainer):
_view_name = Unicode('TabView', sync=True)
+
+_SelectionContainerWidget = DeprecatedClass(_SelectionContainer, '_SelectionContainerWidget')
+AccordionWidget = DeprecatedClass(Accordion, 'AccordionWidget')
+TabWidget = DeprecatedClass(Tab, 'TabWidget')
diff --git a/IPython/html/widgets/widget_string.py b/IPython/html/widgets/widget_string.py
index 9f6aa30..fbbf327 100644
--- a/IPython/html/widgets/widget_string.py
+++ b/IPython/html/widgets/widget_string.py
@@ -1,4 +1,4 @@
-"""StringWidget class.
+"""String class.
Represents a unicode string using a widget.
"""
@@ -15,37 +15,38 @@ Represents a unicode string using a widget.
#-----------------------------------------------------------------------------
from .widget import DOMWidget, CallbackDispatcher
from IPython.utils.traitlets import Unicode, Bool
+from IPython.utils.warn import DeprecatedClass
#-----------------------------------------------------------------------------
# Classes
#-----------------------------------------------------------------------------
-class _StringWidget(DOMWidget):
+class _String(DOMWidget):
value = Unicode(help="String value", sync=True)
disabled = Bool(False, help="Enable or disable user changes", sync=True)
description = Unicode(help="Description of the value this widget represents", sync=True)
placeholder = Unicode("", help="Placeholder text to display when nothing has been typed", sync=True)
-class HTMLWidget(_StringWidget):
+class HTML(_String):
_view_name = Unicode('HTMLView', sync=True)
-class LatexWidget(_StringWidget):
+class Latex(_String):
_view_name = Unicode('LatexView', sync=True)
-class TextareaWidget(_StringWidget):
+class Textarea(_String):
_view_name = Unicode('TextareaView', sync=True)
def scroll_to_bottom(self):
self.send({"method": "scroll_to_bottom"})
-class TextWidget(_StringWidget):
+class Text(_String):
_view_name = Unicode('TextView', sync=True)
def __init__(self, **kwargs):
- super(TextWidget, self).__init__(**kwargs)
+ super(Text, self).__init__(**kwargs)
self._submission_callbacks = CallbackDispatcher()
self.on_msg(self._handle_string_msg)
@@ -71,3 +72,9 @@ class TextWidget(_StringWidget):
remove: bool (optional)
Whether to unregister the callback"""
self._submission_callbacks.register_callback(callback, remove=remove)
+
+_StringWidget = DeprecatedClass(_String, '_StringWidget')
+HTMLWidget = DeprecatedClass(HTML, 'HTMLWidget')
+LatexWidget = DeprecatedClass(Latex, 'LatexWidget')
+TextareaWidget = DeprecatedClass(Textarea, 'TextareaWidget')
+TextWidget = DeprecatedClass(Text, 'TextWidget')
diff --git a/IPython/utils/warn.py b/IPython/utils/warn.py
index 693eeb3..6ad6acc 100644
--- a/IPython/utils/warn.py
+++ b/IPython/utils/warn.py
@@ -16,6 +16,7 @@ Utilities for warnings. Shoudn't we just use the built in warnings module.
from __future__ import print_function
import sys
+import warnings
from IPython.utils import io
@@ -65,3 +66,16 @@ def fatal(msg,exit_val=1):
warn(msg,exit_val=exit_val,level=4)
+
+def DeprecatedClass(base, class_name):
+ # Hook the init method of the base class.
+ def init_hook(self, *pargs, **kwargs):
+ base.__init__(self, *pargs, **kwargs)
+
+ # Warn once per class.
+ if base not in DeprecatedClass._warned_classes:
+ DeprecatedClass._warned_classes.append(base)
+ warn('"{}" is deprecated, please use "{}" instead.'.format(
+ class_name, base.__name__))
+ return type(class_name, (base,), {'__init__': init_hook})
+DeprecatedClass._warned_classes = []