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)[source]¶
- Bases: - EvalWidget,- Text- A - ipywidgets.Textwidget which evaluates (using- sage_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() # needs sage.symbolic pi^2 - >>> from sage.all import * >>> from sage.repl.ipython_kernel.widgets import EvalText >>> w = EvalText(value='pi', transform=lambda x: x**Integer(2)) >>> w EvalText(value='pi') >>> w.get_interact_value() # needs sage.symbolic pi^2 
- class sage.repl.ipython_kernel.widgets.EvalTextarea(**kwargs: Any)[source]¶
- Bases: - EvalWidget,- Textarea- A - ipywidgets.Textareawidget which evaluates (using- sage_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() # needs sage.symbolic pi^2 - >>> from sage.all import * >>> from sage.repl.ipython_kernel.widgets import EvalTextarea >>> w = EvalTextarea(value='pi', transform=lambda x: x**Integer(2)) >>> w EvalTextarea(value='pi') >>> w.get_interact_value() # needs sage.symbolic pi^2 
- class sage.repl.ipython_kernel.widgets.EvalWidget(*args, **kwds)[source]¶
- Bases: - TransformWidget- A mixin class for a widget to evaluate (using - sage_eval()) the widget value and possibly transform it like- TransformWidget.- 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() # needs sage.symbolic 2*pi - >>> from sage.all import * >>> from ipywidgets import ToggleButtons >>> from sage.repl.ipython_kernel.widgets import EvalWidget >>> class EvalToggleButtons(EvalWidget, ToggleButtons): pass >>> w = EvalToggleButtons(options=["pi", "e"], transform=lambda x: x+x) >>> w EvalToggleButtons(options=('pi', 'e'), value='pi') >>> w.get_interact_value() # needs sage.symbolic 2*pi - get_value()[source]¶
- 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 - >>> from sage.all import * >>> from ipywidgets import Dropdown >>> from sage.repl.ipython_kernel.widgets import EvalWidget >>> class EvalDropdown(EvalWidget, Dropdown): pass >>> w = EvalDropdown(options=["the_answer"], transform=RR) >>> w EvalDropdown(options=('the_answer',), value='the_answer') >>> the_answer = Integer(42) >>> w.get_value() 42 >>> w.get_interact_value() 42.0000000000000 
 
- class sage.repl.ipython_kernel.widgets.Grid(**kwargs: Any)[source]¶
- 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']] - >>> from sage.all import * >>> from ipywidgets import Text >>> from sage.repl.ipython_kernel.widgets import Grid >>> w = Grid(Integer(2), Integer(2), lambda i,j: Text(value="%s,%s"%(i,j))) >>> 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'))))) >>> w.get_interact_value() [['0,0', '0,1'], ['1,0', '1,1']] 
- class sage.repl.ipython_kernel.widgets.HTMLText(**kwargs: Any)[source]¶
- Bases: - HTMLMath- An HTML widget whose - descriptionis always empty.- This is used to display arbitrary HTML text in interacts without a label. The - text_control()function from SageNB is an alias of- HTMLText.- EXAMPLES: - sage: from sage.repl.ipython_kernel.widgets import HTMLText sage: w = HTMLText("Hello") sage: w.description '' sage: w.description = "text" sage: w.description '' - >>> from sage.all import * >>> from sage.repl.ipython_kernel.widgets import HTMLText >>> w = HTMLText("Hello") >>> w.description '' >>> w.description = "text" >>> 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 '' - >>> from sage.all import * >>> from sage.repl.ipython_kernel.widgets import HTMLText >>> w = HTMLText("Hello") >>> w.description '' 
 
- class sage.repl.ipython_kernel.widgets.SageColorPicker(**kwargs: Any)[source]¶
- 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') - >>> from sage.all import * >>> from sage.repl.ipython_kernel.widgets import SageColorPicker >>> SageColorPicker() SageColorPicker(value='black') - get_interact_value()[source]¶
- Return a Sage - Colorcorresponding to the value of this widget.- EXAMPLES: - sage: from sage.repl.ipython_kernel.widgets import SageColorPicker sage: SageColorPicker().get_interact_value() # needs sage.plot RGB color (0.0, 0.0, 0.0) - >>> from sage.all import * >>> from sage.repl.ipython_kernel.widgets import SageColorPicker >>> SageColorPicker().get_interact_value() # needs sage.plot RGB color (0.0, 0.0, 0.0) 
 
- class sage.repl.ipython_kernel.widgets.TransformFloatRangeSlider(**kwargs: Any)[source]¶
- Bases: - TransformWidget,- FloatRangeSlider- An - ipywidgets.FloatRangeSliderwidget 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 - >>> from sage.all import * >>> from sage.repl.ipython_kernel.widgets import TransformFloatRangeSlider >>> w = TransformFloatRangeSlider(min=Integer(0), max=Integer(100), value=(Integer(7), Integer(9)), ... transform=lambda x: x[Integer(1)] - x[Integer(0)]) >>> w TransformFloatRangeSlider(value=(7.0, 9.0)) >>> w.get_interact_value() 2.0 
- class sage.repl.ipython_kernel.widgets.TransformFloatSlider(**kwargs: Any)[source]¶
- Bases: - TransformWidget,- FloatSlider- A - ipywidgets.FloatSliderwidget 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() # needs sage.symbolic 2.6457513110645907 - >>> from sage.all import * >>> from sage.repl.ipython_kernel.widgets import TransformFloatSlider >>> w = TransformFloatSlider(min=Integer(0), max=Integer(100), value=Integer(7), transform=lambda x: sqrt(x)) >>> w TransformFloatSlider(value=7.0) >>> w.get_interact_value() # needs sage.symbolic 2.6457513110645907 
- class sage.repl.ipython_kernel.widgets.TransformIntRangeSlider(**kwargs: Any)[source]¶
- Bases: - TransformWidget,- IntRangeSlider- An - ipywidgets.IntRangeSliderwidget 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 - >>> from sage.all import * >>> from sage.repl.ipython_kernel.widgets import TransformIntRangeSlider >>> w = TransformIntRangeSlider(min=Integer(0), max=Integer(100), value=(Integer(7), Integer(9)), ... transform=lambda x: x[Integer(1)] - x[Integer(0)]) >>> w TransformIntRangeSlider(value=(7, 9)) >>> w.get_interact_value() 2 
- class sage.repl.ipython_kernel.widgets.TransformIntSlider(**kwargs: Any)[source]¶
- Bases: - TransformWidget,- IntSlider- An - ipywidgets.IntSliderwidget 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 - >>> from sage.all import * >>> from sage.repl.ipython_kernel.widgets import TransformIntSlider >>> w = TransformIntSlider(min=Integer(0), max=Integer(100), value=Integer(7), transform=lambda x: x**Integer(2)) >>> w TransformIntSlider(value=7) >>> w.get_interact_value() 49 
- class sage.repl.ipython_kernel.widgets.TransformText(**kwargs: Any)[source]¶
- Bases: - TransformWidget,- Text- A - ipywidgets.Textwidget 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' - >>> from sage.all import * >>> from sage.repl.ipython_kernel.widgets import TransformText >>> w = TransformText(value='hello', transform=lambda x: x + x) >>> w TransformText(value='hello') >>> w.get_interact_value() 'hellohello' 
- class sage.repl.ipython_kernel.widgets.TransformTextarea(**kwargs: Any)[source]¶
- Bases: - TransformWidget,- Textarea- A - ipywidgets.Textareawidget 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' - >>> from sage.all import * >>> from sage.repl.ipython_kernel.widgets import TransformTextarea >>> w = TransformTextarea(value='hello', transform=lambda x: x + x) >>> w TransformTextarea(value='hello') >>> w.get_interact_value() 'hellohello' 
- class sage.repl.ipython_kernel.widgets.TransformWidget(*args, **kwds)[source]¶
- 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' - >>> from sage.all import * >>> from ipywidgets import ToggleButtons >>> from sage.repl.ipython_kernel.widgets import TransformWidget >>> class TransformToggleButtons(TransformWidget, ToggleButtons): pass >>> w = TransformToggleButtons(options=["pi", "e"], transform=lambda x: x + x) >>> w TransformToggleButtons(options=('pi', 'e'), value='pi') >>> w.get_interact_value() 'pipi' - get_interact_value()[source]¶
- Return the transformed value of this widget, by calling the - transformfunction.- 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 - >>> from sage.all import * >>> from ipywidgets import Checkbox >>> from sage.repl.ipython_kernel.widgets import TransformWidget >>> class TransformCheckbox(TransformWidget, Checkbox): pass >>> w = TransformCheckbox(value=True, transform=int); w TransformCheckbox(value=True) >>> w.get_interact_value() 1 
 - get_value()[source]¶
- 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' - >>> from sage.all import * >>> from ipywidgets import ColorPicker >>> from sage.repl.ipython_kernel.widgets import TransformWidget >>> class TransformColorPicker(TransformWidget, ColorPicker): pass >>> TransformColorPicker(value='red').get_value() 'red'