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(**kwargs: Any)#
Bases:
EvalWidget
,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='pi') sage: w.get_interact_value() pi^2
- class sage.repl.ipython_kernel.widgets.EvalTextarea(**kwargs: Any)#
Bases:
EvalWidget
,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='pi') sage: w.get_interact_value() pi^2
- class sage.repl.ipython_kernel.widgets.EvalWidget(*args, **kwds)#
Bases:
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(**kwargs: Any)#
Bases:
TransformWidget
,HBox
,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=[['0,0', '0,1'], ['1,0', '1,1']], children=(Label(value=''), VBox(children=(Text(value='0,0'), Text(value='1,0'))), VBox(children=(Text(value='0,1'), Text(value='1,1'))))) sage: w.get_interact_value() [['0,0', '0,1'], ['1,0', '1,1']]
- description#
A trait for unicode strings.
- value#
An instance of a Python list.
- class sage.repl.ipython_kernel.widgets.HTMLText(**kwargs: Any)#
Bases:
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 '' sage: w.description = "text" sage: w.description ''
- property description#
Always return empty string.
EXAMPLES:
sage: from sage.repl.ipython_kernel.widgets import HTMLText sage: w = HTMLText("Hello") sage: w.description ''
- class sage.repl.ipython_kernel.widgets.SageColorPicker(**kwargs: Any)#
Bases:
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(**kwargs: Any)#
Bases:
TransformWidget
,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(**kwargs: Any)#
Bases:
TransformWidget
,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(**kwargs: Any)#
Bases:
TransformWidget
,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(**kwargs: Any)#
Bases:
TransformWidget
,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(**kwargs: Any)#
Bases:
TransformWidget
,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='hello') sage: w.get_interact_value() 'hellohello'
- class sage.repl.ipython_kernel.widgets.TransformTextarea(**kwargs: Any)#
Bases:
TransformWidget
,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='hello') sage: w.get_interact_value() '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'