Widgets to be used for the Sage Jupyter notebook¶
These are all based on widgets from ipywidgets
, changing or
combining existing widgets.
-
class
sage.repl.ipython_kernel.widgets.
EvalText
(*args, **kwds)¶ Bases:
sage.repl.ipython_kernel.widgets.EvalWidget
,ipywidgets.widgets.widget_string.Text
A
ipywidgets.Text
widget which evaluates (usingsage_eval()
) its contents and applies an optional transformation.EXAMPLES:
sage: from sage.repl.ipython_kernel.widgets import EvalText sage: w = EvalText(value="pi", transform=lambda x: x^2) sage: w EvalText(value=u'pi') sage: w.get_interact_value() pi^2
-
class
sage.repl.ipython_kernel.widgets.
EvalTextarea
(*args, **kwds)¶ Bases:
sage.repl.ipython_kernel.widgets.EvalWidget
,ipywidgets.widgets.widget_string.Textarea
A
ipywidgets.Textarea
widget which evaluates (usingsage_eval()
) its contents and applies an optional transformation.EXAMPLES:
sage: from sage.repl.ipython_kernel.widgets import EvalTextarea sage: w = EvalTextarea(value="pi", transform=lambda x: x^2) sage: w EvalTextarea(value=u'pi') sage: w.get_interact_value() pi^2
-
class
sage.repl.ipython_kernel.widgets.
EvalWidget
(*args, **kwds)¶ Bases:
sage.repl.ipython_kernel.widgets.TransformWidget
A mixin class for a widget to evaluate (using
sage_eval()
) the widget value and possibly transform it likeTransformWidget
.EXAMPLES:
sage: from ipywidgets import ToggleButtons sage: from sage.repl.ipython_kernel.widgets import EvalWidget sage: class EvalToggleButtons(EvalWidget, ToggleButtons): pass sage: w = EvalToggleButtons(options=["pi", "e"], transform=lambda x: x+x) sage: w EvalToggleButtons(options=('pi', 'e'), value='pi') sage: w.get_interact_value() 2*pi
-
get_value
()¶ Evaluate the bare widget value using
sage_eval()
.EXAMPLES:
sage: from ipywidgets import Dropdown sage: from sage.repl.ipython_kernel.widgets import EvalWidget sage: class EvalDropdown(EvalWidget, Dropdown): pass sage: w = EvalDropdown(options=["the_answer"], transform=RR) sage: w EvalDropdown(options=('the_answer',), value='the_answer') sage: the_answer = 42 sage: w.get_value() 42 sage: w.get_interact_value() 42.0000000000000
-
-
class
sage.repl.ipython_kernel.widgets.
Grid
(nrows, ncols, make_widget, description='', transform=None)¶ Bases:
sage.repl.ipython_kernel.widgets.TransformWidget
,ipywidgets.widgets.widget_box.HBox
,ipywidgets.widgets.valuewidget.ValueWidget
A square grid of widgets whose value is a list of lists of the values of the individual widgets.
This is usually created using the
input_grid()
function.EXAMPLES:
sage: from ipywidgets import Text sage: from sage.repl.ipython_kernel.widgets import Grid sage: w = Grid(2, 2, lambda i,j: Text(value="%s,%s"%(i,j))) sage: w Grid(value=[[u'0,0', u'0,1'], [u'1,0', u'1,1']], children=(Label(value=u''), VBox(children=(Text(value=u'0,0'), Text(value=u'1,0'))), VBox(children=(Text(value=u'0,1'), Text(value=u'1,1'))))) sage: w.get_interact_value() [[u'0,0', u'0,1'], [u'1,0', u'1,1']]
-
description
¶ A trait for unicode strings.
-
value
¶ An instance of a Python list.
-
-
class
sage.repl.ipython_kernel.widgets.
HTMLText
(value=None, **kwargs)¶ Bases:
ipywidgets.widgets.widget_string.HTMLMath
An HTML widget whose
description
is always empty.This is used to display arbitrary HTML text in interacts without a label. The
text_control()
function from SageNB is an alias ofHTMLText
.EXAMPLES:
sage: from sage.repl.ipython_kernel.widgets import HTMLText sage: w = HTMLText("Hello") sage: w.description u'' sage: w.description = "text" sage: w.description u''
-
description
¶ Always return empty string.
EXAMPLES:
sage: from sage.repl.ipython_kernel.widgets import HTMLText sage: w = HTMLText("Hello") sage: w.description u''
-
-
class
sage.repl.ipython_kernel.widgets.
SageColorPicker
(**kwargs)¶ Bases:
ipywidgets.widgets.widget_color.ColorPicker
A color picker widget returning a Sage
Color
.EXAMPLES:
sage: from sage.repl.ipython_kernel.widgets import SageColorPicker sage: SageColorPicker() SageColorPicker(value='black')
-
class
sage.repl.ipython_kernel.widgets.
TransformFloatRangeSlider
(*args, **kwds)¶ Bases:
sage.repl.ipython_kernel.widgets.TransformWidget
,ipywidgets.widgets.widget_float.FloatRangeSlider
An
ipywidgets.FloatRangeSlider
widget with an optional transformation.EXAMPLES:
sage: from sage.repl.ipython_kernel.widgets import TransformFloatRangeSlider sage: w = TransformFloatRangeSlider(min=0, max=100, value=(7,9), transform=lambda x: x[1]-x[0]) sage: w TransformFloatRangeSlider(value=(7.0, 9.0)) sage: w.get_interact_value() 2.0
-
class
sage.repl.ipython_kernel.widgets.
TransformFloatSlider
(*args, **kwds)¶ Bases:
sage.repl.ipython_kernel.widgets.TransformWidget
,ipywidgets.widgets.widget_float.FloatSlider
A
ipywidgets.FloatSlider
widget with an optional transformation.EXAMPLES:
sage: from sage.repl.ipython_kernel.widgets import TransformFloatSlider sage: w = TransformFloatSlider(min=0, max=100, value=7, transform=lambda x: sqrt(x)) sage: w TransformFloatSlider(value=7.0) sage: w.get_interact_value() 2.6457513110645907
-
class
sage.repl.ipython_kernel.widgets.
TransformIntRangeSlider
(*args, **kwds)¶ Bases:
sage.repl.ipython_kernel.widgets.TransformWidget
,ipywidgets.widgets.widget_int.IntRangeSlider
An
ipywidgets.IntRangeSlider
widget with an optional transformation.EXAMPLES:
sage: from sage.repl.ipython_kernel.widgets import TransformIntRangeSlider sage: w = TransformIntRangeSlider(min=0, max=100, value=(7,9), transform=lambda x: x[1]-x[0]) sage: w TransformIntRangeSlider(value=(7, 9)) sage: w.get_interact_value() 2
-
class
sage.repl.ipython_kernel.widgets.
TransformIntSlider
(*args, **kwds)¶ Bases:
sage.repl.ipython_kernel.widgets.TransformWidget
,ipywidgets.widgets.widget_int.IntSlider
An
ipywidgets.IntSlider
widget with an optional transformation.EXAMPLES:
sage: from sage.repl.ipython_kernel.widgets import TransformIntSlider sage: w = TransformIntSlider(min=0, max=100, value=7, transform=lambda x: x^2) sage: w TransformIntSlider(value=7) sage: w.get_interact_value() 49
-
class
sage.repl.ipython_kernel.widgets.
TransformText
(*args, **kwds)¶ Bases:
sage.repl.ipython_kernel.widgets.TransformWidget
,ipywidgets.widgets.widget_string.Text
A
ipywidgets.Text
widget with an optional transformation.EXAMPLES:
sage: from sage.repl.ipython_kernel.widgets import TransformText sage: w = TransformText(value="hello", transform=lambda x: x+x) sage: w TransformText(value=u'hello') sage: w.get_interact_value() u'hellohello'
-
class
sage.repl.ipython_kernel.widgets.
TransformTextarea
(*args, **kwds)¶ Bases:
sage.repl.ipython_kernel.widgets.TransformWidget
,ipywidgets.widgets.widget_string.Textarea
A
ipywidgets.Textarea
widget with an optional transformation.EXAMPLES:
sage: from sage.repl.ipython_kernel.widgets import TransformTextarea sage: w = TransformTextarea(value="hello", transform=lambda x: x+x) sage: w TransformTextarea(value=u'hello') sage: w.get_interact_value() u'hellohello'
-
class
sage.repl.ipython_kernel.widgets.
TransformWidget
(*args, **kwds)¶ Bases:
object
A mixin class for a widget to transform the bare widget value for use in interactive functions.
INPUT:
transform
– a one-argument function which transforms the value of the widget for use by an interactive function.other arguments are passed to the base class
EXAMPLES:
sage: from ipywidgets import ToggleButtons sage: from sage.repl.ipython_kernel.widgets import TransformWidget sage: class TransformToggleButtons(TransformWidget, ToggleButtons): pass sage: w = TransformToggleButtons(options=["pi", "e"], transform=lambda x: x+x) sage: w TransformToggleButtons(options=('pi', 'e'), value='pi') sage: w.get_interact_value() 'pipi'
-
get_interact_value
()¶ Return the transformed value of this widget, by calling the
transform
function.EXAMPLES:
sage: from ipywidgets import Checkbox sage: from sage.repl.ipython_kernel.widgets import TransformWidget sage: class TransformCheckbox(TransformWidget, Checkbox): pass sage: w = TransformCheckbox(value=True, transform=int); w TransformCheckbox(value=True) sage: w.get_interact_value() 1
-
get_value
()¶ Return
self.value
.This is meant to be overridden by sub-classes to change the input of the transform function.
EXAMPLES:
sage: from ipywidgets import ColorPicker sage: from sage.repl.ipython_kernel.widgets import TransformWidget sage: class TransformColorPicker(TransformWidget, ColorPicker): pass sage: TransformColorPicker(value="red").get_value() 'red'