ipywidgets 更新日志#
这是ipywidgets版本变更的概要。更多详细信息,请参阅GitHub上适当里程碑的问题和拉取请求。
8.0.6#
亮点包括:
8.0.5#
亮点包括:
8.0.4#
亮点包括:
8.0.3#
亮点包括:
8.0#
要查看完整的拉取请求和问题列表,请查看GitHub上的8.0里程碑,或者查看自7.x以来的完整变更列表。要获取关于将使用ipywidgets的代码迁移到8.0的建议,请参阅用户迁移指南。如果您编写自定义智能体,请查看自定义智能体迁移指南以获取关于迁移您的智能体以支持ipywidgets 8的建议。
用户#
以下是ipywidgets 8.0版本中用户可见变更的一些亮点。
日期和时间选择器#
除了现有的DatePicker控件外,我们现在还有新的DatetimePicker和TimePicker控件。(#2715)
from ipywidgets import VBox, TimePicker, DatetimePicker
VBox([
TimePicker(description='Time'),
DatetimePicker(description='Date/Time')
])
堆叠小部件#
新的 Stack 容器部件仅显示所选子部件,而其他子部件保持隐藏。如果您希望根据其他交互显示不同部件的区域,这将非常有用。
from ipywidgets import Stack, Button, IntSlider, Dropdown, VBox, link
s = Stack([Button(description='Click here'), IntSlider()], selected_index=0)
d = Dropdown(options=['button', 'slider'])
link((d, 'index'), (s, 'selected_index'))
VBox([d, s])
文件上传小部件#
文件上传部件已进行全面改进,以更实用的格式处理多个文件:
.value属性现在是一个字典列表,而不是将上传名称映射到内容的字典。每个上传文件的内容是
.content键中的一个内存视图,例如,uploader.value[0].content。.data属性已被移除。.metadata属性已被移除。
详情请参阅用户迁移指南了解如何迁移您的代码。
更多样式选项#
许多样式和布局选项已添加到核心小部件中:
现在支持许多核心小部件的工具提示,而不仅仅是几个描述工具提示 (#2680)
from ipywidgets import Button Button(description="Click me", tooltip='An action')
边框可以通过布局的
border_top、border_right、border_bottom、border_left属性独立设置样式(#2757,#3269)from ipywidgets import Button Button(description="Click me", layout={'border_bottom': '3px solid blue'})
默认情况下描述现在为纯文本以确保安全,但您可以通过
description_allow_html属性设置允许使用 HTML(出于安全考虑,HTML 内容仍会被清理)。(#2785)from ipywidgets import Text Text(description="<b>Name</b>", description_allow_html=True)
许多其他样式属性可以在核心部件上进行设置,例如字体族、大小、样式、粗细、文本颜色和文本装饰。请参阅文档中的表格以获取参考。(#2728)
SelectionSlider 现在有一个
handle_color样式属性 (#3142)要控制键盘导航,可以设置部件是否可制表(即,Tab 键将遍历到该部件)(#2640)
选择容器标题#
Accordion、Tab 和 Stack 小部件现在有一个 .titles 属性,您可以通过构造函数或作为属性获取和设置标题。(#2746, #3296, #3477)
from ipywidgets import Tab, IntSlider, Text
Tab([IntSlider(), Text()], titles=('Slider', 'Text'))
滑块实现#
核心部件中的滑块实现现在使用nouislider。这使我们能够修复长期存在的错误并引入新功能,比如在范围滑块中拖动范围。(#2712, #630, #3216, #2834)
协作#
默认情况下,ipywidgets 8启用了协作模式,其中一个前端的控件更新会反映到其他前端,从而实现多用户之间的一致状态,并修复内核与前端之间的同步。如果这些更新回显消息占用过多带宽或导致交互变慢,您可能希望禁用它们。要跨ipywidgets禁用回显更新消息,请将环境变量JUPYTER_WIDGETS_ECHO设置为0。对于控件作者,若要将自定义控件的特定属性排除在回显更新之外(例如,如果该属性包含大量不需要同步的数据),请使用echo_update=False元数据标记该属性(我们在核心代码中为FileUpload控件的data属性执行此操作)。(#3195, #3343, #3394, #3407)
用于HTML管理器的CDN#
我们已经更方便地从内容分发网络加载widgets。
其他变更#
以下是 ipywidgets 8.0 版本中的一些其他更改的简短列表。
添加一个基于cookiecutter的教程来构建自定义小部件(#2919)
将媒体小部件改为使用内存视图。 (#2723)
在html-manager中升级至FontAwesome 5 (#2713)
从 widgetsnbextension 中移除 notebook 依赖 (#2590)
将范围滑块中的‘value’转换为元组 (#2441)
修复防抖动和节流代码(#3060)
修复选择容器默认索引 (#1823)
移除已弃用的溢出属性 (#2688)
选择: 如果当前没有选择项且选项列表发生变化,则不强制进行选择 (#3284)
为实验室扩展添加本地化支持 (#3286)
修复组合框选项中的字符转义 (#2972)
如果IPython不可用,修改输出以使用通信(#2954)
修复/media类中from_file方法的参数传递问题 (#3074)
Widgetsnbextension: 渲染失败时抛出错误 (#3280)
ErrorWidget as fallback when widgets models or views fail - Following up (#3304)
修复交互式绘图中的matplotlib图表 (#3277)
修复选择平等检查 (#2897)
移除
on_displayedPython回调机制 (#2021)
开发者#
要查看核心控件模型规范变更的概览,请参阅#3455。
Python#
JavaScript#
放弃使用下划线 (#2742)
升级到 es2017 javascript (#2725)
Widgetmanagerbase: 改进 create_view 返回类型 (#2662)
重构JupyterLab小部件管理器以便复用 (#2532)
使更多实验室管理器依赖项变为可选(#2528)
从
jp-outputarea-output节点中移除类jupyter-widgets(#2500)将
pWidget重命名为luminoWidget并弃用pWidget(#3118, #3141, #3358,)添加
layout、style和shown事件 (#3300)实现
jupyter.widget.control通信通道 (#3313)更新至 TypeScript 4.3 (#3162)
为调整大小事件添加事件监听器 (#3124)
移除
process.cwd的 polyfill (#3315)确保 buffer 是一个 DataView (#3127)
弃用过于宽泛的CSS类
widget并引入类似的jupyter-widgetCSS类 (#3146)通过控制通信获取完整的小部件状态 (#3021)
导出 LabWidgetManager 和 KernelWidgetManager (#3166)
更实用的语义化版本范围消息 (#3185)
使基础小部件管理器
.get_model()方法始终返回一个Promise,如果请求的模型未注册则会被拒绝。要测试模型是否已注册,请使用新的.has_model()方法(#3389)
文档改进#
文档全面修订 (#3104, #3096, #3099, #3076, #2824, #3246, #3243, #3103, #3165, #3283, #2927, #3062, #3129, #3130, #3155, )
从微件列表笔记本中移除步骤参数 (#3106)
从文档中移除额外要求以修复RTD构建 (#3098)
将7.x分支的文档要求与主分支对齐(#3094)
从README的安装中移除失效的深层链接 (#3225)
修复关于在HTML中嵌入小部件的文档(#3224)
修复示例web3中运行过程中缺失的进程 (#3223)
完成
interactive的文档字符串。(#3169)取消固定ipykernel<6用于文档 (#3168)
检查里程碑并生成变更日志(#3125)
将图表示例改为接收元组而不是字典 (#3117)
修复防抖动和节流代码(#3060)
变量检查器示例使用了错误的回调参数签名 (#3302)
仓库维护#
此版本的贡献者#
@afonit | @alex-rind | @Alexboiboi | @azjps | @blois | @bollwyvl | @bsyouness | @casperdcl | @crahan | @davidbrochart | @deisi | @dependabot | @elliothershberg | @fperez | @giswqs | @github-actions | @hai-schrodinger | @ianhi | @ibdafna | @jasongrout | @jbpauly | @joequant | @joseph2rs | @jpn– | @jtpio | @keatonb | @kedarisetti | @kefirbandi | @maartenbreddels | @manuvazquez | @marimeireles | @MartinKolarik | @martinRenou | @mbektas | @meeseeksdev | @meeseeksmachine | @mgeier | @MicaelJarniac | @minrk | @MSeal | @mwcraig | @NichtJens | @nmstoker | @partev | @pbugnion | @raziqraif | @rsheftel | @shaperilio | @smeng9 | @snickell | @StefanBrand | @stonebig | @SylvainCorlay | @thomasaarholt | @trungleduc | @vidartf | @willingc | @zerline
7.7.1#
要查看完整的拉取请求列表,请访问 GitHub 上的 7.7.1 milestone。
亮点包括:
修复FontAwesome 4和5版本的破损链接图标 #3495
修复消息节流错误 #3494
修复状态消息解析以更宽松 #3486
修复Python 3.11上的测试 #3480
改进首页文档 #3496
7.7
要查看完整的拉取请求和问题列表,请查看GitHub上的7.7 milestone。
亮点包括:
修复 Python 3.10 上的安装问题。 #3368
如果无法渲染部件则抛出错误,使渲染系统能够回退到渲染可用的其他数据类型(若存在)。#3290
创建一个新的控件通信通道,实现更高效地获取内核控件状态。#3201
重构获取内核小部件状态的逻辑到管理器基类中。该逻辑首先尝试使用新的小部件控制通信通道,如果失败则回退到现有的逐个请求每个小部件状态的方法。#3337
启用HTMLManager输出控件以渲染状态更新。#3372
如果JupyterLab CSS变量已定义,则不重置它们。#3344
修复变量检查器示例。#3302
引入新的widget manager
has_model方法,用于同步检查widget模型是否已注册。#3377解决Chrome渲染组合框箭头中的错误。#3375
可选地将来自前端的更新消息回显到其他前端。这使不同前端中的小部件视图能够同时保持状态一致,并确保来自内核和前端的同步更新解决为一致状态。在ipywidgets 7.7中默认关闭此功能,预计在ipywidgets 8.0中将默认开启。要启用ipywidgets间的回显更新消息,请将环境变量
JUPYTER_WIDGETS_ECHO设置为1。要将特定属性从回显更新中排除,请用echo_update=False元数据标记该属性(我们在核心中为FileUpload小部件的data属性执行此操作)。#3400, #3394
7.6#
要查看完整的拉取请求和问题列表,请参阅GitHub上的7.6.0 milestone。
此版本的主要变化是安装 ipywidgets 7.6.0 现在将自动启用 JupyterLab 3.0 中的 ipywidgets 支持——用户无需额外的 JupyterLab 安装步骤,无需重新构建 JupyterLab,也不需要安装 Node.js。只需使用 pip (pip install ipywidgets==7.6.0) 或 conda/mamba (conda install -c conda-forge ipywidgets=7.6.0) 安装 python ipywidgets 包,ipywidgets 将自动在经典 Jupyter Notebook 和 JupyterLab 3.0 中工作。
这是通过新的Python包jupyterlab_widgets版本1.0实现的,ipywidgets7.6.0现在依赖它(类似于ipywidgets已经依赖widgetsnbextension包为经典Jupyter Notebook配置ipywidgets一样)。jupyterlab_widgets Python包是一个JupyterLab 3.0预构建扩展,这意味着它可以安装到JupyterLab 3.0中,而无需重新构建JupyterLab,也不需要安装Node.js。
Widget 维护者更新#
自定义小部件维护者需要做出两项更改以更新至 JupyterLab 3:
将
@jupyter-widgets/base依赖版本更新至包含^4以在 JupyterLab 3.0 中工作。例如,如果您之前依赖@jupyter-widgets/base版本^2 || ^3,请更新至^2 || ^3 || ^4以便您的部件能在经典 Jupyter Notebook、JupyterLab 1、JupyterLab 2 和 JupyterLab 3 中工作。详情背景请参阅 #2472。在
package.json中,在jupyterlab键内添加以下sharedPackages配置。详情请参阅JupyterLab扩展文档。"jupyterlab": { "sharedPackages": { "@jupyter-widgets/base": { "bundled": false, "singleton": true } } }
除了这两个步骤以更新至JupyterLab 3外,我们还建议您将小部件的JupyterLab扩展设置为JupyterLab 3.0的预构建扩展。用户将能够在不重新构建JupyterLab或需要Node.js的情况下安装您的JupyterLab 3.0预构建扩展。有关更多详细信息,请参阅JupyterLab 3扩展开发者文档或新的小部件扩展cookiecutter。
7.5#
如需查看完整的拉取请求和问题列表,请访问GitHub上的7.5里程碑。
变化包括:
新增用于定位交互式微件的
AppLayout和GridLayout模板。#2333新增
FileUpload窗口部件,允许用户从浏览器上传文件。#2258新增
ComboBox小部件。#2390JupyterLab的CSS变量现在默认暴露,即使在经典notebook的情况下也是如此。#2418
Widget 维护者更新#
自定义小部件维护者需要更新其@jupyter-widgets/base依赖版本以在JupyterLab 1.0中工作。例如,如果您依赖于@jupyter-widgets/base版本^1.1,请更新到^1.1 || ^2,以便您的小部件在经典notebook、JupyterLab 0.35和JupyterLab 1.0中工作。有关背景信息,请参阅#2472。
7.4#
要查看完整的拉取请求和问题列表,请查看GitHub上的7.4里程碑。
变化包括:
要查看完整的拉取请求和问题列表,请查看 GitHub 上的7.3 milestone。
变化包括:
引入了一个新的
GridBox控件,并在布局中添加了相关的CSS网格属性。这允许使用CSS网格规范来布置控件。有关一些示例,请参阅控件样式文档。由于此及其他模型规范变更,基础包和控制包中的控件视图和模块版本均进行了升级。(#2107, #2064, #1942)带有
description属性的小部件现在也有一个description_tooltip属性,用于在描述上设置工具提示。工具提示默认为描述文本。将description_tooltip设置为''会移除它,将其设置为None则使工具提示默认为描述文本。(#2070)'transparent'现在是颜色属性的有效值。(#2128)图像小部件
repr现在会截断图像值,以防止在笔记本中产生大量输出。(#2111)停止支持 Python 3.3。Python 3.3 的支持已于 2017年9月在 Python 社区中停止。(#2129)
许可证信息已整合到 LICENSE 文件中,COPYING.md 文件已被移除。如果您正在重新打包 ipywidgets 或 widgetsnbextension,请确保包含 LICENSE 文件而不是 COPYING.md。(#2133, #2048, #1701, #1706)
7.2#
要查看完整的拉取请求和问题列表,请参见GitHub上的7.2 milestone。
用户可见的变更包括:
新的
FloatLogSlider小部件是一个对数刻度滑块,适用于探索广泛的数量级范围。(#1928, #2014)from ipywidgets import FloatLogSlider FloatLogSlider()
link和dlink现在为了方便从 ipywidgets 中导出,这样您可以直接从 ipywidgets 导入它们,而不需要从 traitlets 导入。(#1923)为
interact_manual()新增了一个选项manual_name,用于更改更新按钮的名称,例如interact_manual(manual_name='Update')。(#1924)Output 部件现在有一个
.capture()方法,它返回一个装饰器以捕获函数的输出。from ipywidgets import Output out = Output() @out.capture() def f(): print('This output is captured')
.capture()方法有一个clear_output布尔参数,用于每次运行函数时自动清除输出,以及一个与clear_output等待参数相对应的wait参数。(#1934)输出部件在其自己的章节中有更全面的文档。(#2020)
现在安装
widgetsnbextension会自动在Jupyter Notebook 5.3或更高版本中启用nbextension。(#1911)如果未安装小部件,小部件的默认渲染现在是文本形式的小部件简短描述,而非更长的HTML消息。(#2007)
开发者的变化包括:
7.1#
要查看完整的拉取请求和问题列表,请查看 GitHub 上的 7.1 milestone。
我们更新了@jupyter-widgets/controls小部件规范版本至1.1.0,从而将版本号提升至7.1。新的小部件模型规范现在包含了ToggleButtonsStyle小部件的新属性description_width和font_weight。此版本还包含其他错误修复。
7.0.x 补丁版本#
请查看GitHub里程碑中的7.0.1、7.0.2、7.0.3、7.0.4和7.0.5版本,了解这些版本中的错误修复情况。
7.0#
要查看完整的拉取请求和问题列表,请参阅 GitHub 上的 7.0 里程碑。
ipywidgets 7.0 版本中主要用户可见的变更包括:
部件现在在经典笔记本的输出区域中显示,并被视为任何其他输出。这使得部件能更自然地与其他单元格输出协同工作。要删除部件,请清除单元格中的输出。由部件视图触发的函数输出会附加到包含部件视图的输出区域。这意味着打印的文本将被附加到输出中,并且调用
clear_output()将删除整个输出,包括部件视图。(#1274, #1353)移除了版本验证检查,因为它引发了过多关于未安装小部件JavaScript或版本号错误的误报警。现在由用户自行确保ipywidgets和widgetsnbextension包的兼容性。(#1219)
文档主题已更改为新的标准Jupyter主题。(#1363)
为了方便,可以使用字典设置
layout和style属性,这将自动转换为Layout或Style对象,例如IntSlider(layout={'width': '100%'}, style={'handle_color': 'lightgreen'})。(#1253)Select 小部件现已恢复为列表框而非下拉菜单,回归到6.0版本之前的行为。(#1238)
Select和SelectMultiple部件现在具有一个
rows属性,用于指定显示的行数,与Textarea部件保持一致。layout.height属性会覆盖此设置以控制部件的高度。(#1250)选择控件 (
Select,Dropdown,ToggleButtons, 等) 新增了.value,.label, 和.index特性,以便更轻松地访问或更改所选选项。(#1262, #1513)选择容器小部件(
Accordion,Tabs)可以将其.selected_index设为None以取消所有项目的选择。(#1495)Play小部件的范围现在变为包含式(最大值就是最大值,而非最大值减一),以与滑块保持一致现在
Play小部件具有一个可选的重复切换按钮(默认可见)。(#1190)对文本、滑块、滑块范围和进度小部件的重构导致进度小部件失去了其
step属性(之前被忽略),并且其中一些小部件的_model_name和/或_view_name属性发生了改变(#1290)Checkbox的描述现在位于复选框右侧且可点击。Checkbox小部件新增了indent属性(默认为True),以便与带有描述的控件对齐。若要使复选框左对齐,请将indent设置为False。(#1346)一个新的密码小部件,其行为与文本小部件完全相同,但隐藏输入的文本:
Password()(#1310)一个新的SelectionRangeSlider小部件,用于从有序对象列表中选择范围。例如,这可以实现一个滑块来选择日期范围。(#1356)
Label小部件现在没有宽度限制。(#1269)描述宽度现在可以通过
.style.description_width属性来配置 (#1376)ToggleButtons 新增了一个
.style.button_width属性,用于设置按钮的 CSS 宽度。将其设置为'initial'可使按钮根据内容宽度自动调整大小。(#1257)number sliders 的
readout_format属性现在会验证其参数. (#1550)IntRangeSlider小部件现在有一个.readout_format特性,用于控制显示格式的格式化。(#1446)Text、Textarea、IntText、BoundedIntText、FloatText和BoundedFloatText小组件都获得了一个continuous_update属性(对于Text和TextArea默认为True,其他默认为False)。(#1545)IntText,BoundedIntText,FloatText和BoundedFloatText部件现在以HTML数字输入形式呈现,并具有控制分辨率的step属性。(#1545)Text.on_submit回调已弃用;请将continuous_update设置为False并观察value属性:mywidget.observe(callback, 'value')。Textarea.scroll_to_bottom方法已移除。(#1545)部件上的
msg_throttle属性现已移除,代码中内置了等同于msg_throttle=1的消息节流机制。(#1557)使用函数注解来为函数指定交互控件现已被弃用,并将在未来版本的ipywidgets中移除。(#1292)
现在有两种简单的将小部件嵌入HTML页面的方式:一种是使用不依赖require.js且仅支持基础小部件的简单脚本标签,另一种是支持自定义小部件的require模块。详见迁移指南获取更多详情。 (#1615, #1629, #1630)
如果您正在开发自定义小部件或小部件管理器,以下是一些可能影响您的主要变更。迁移指南还详细介绍了如何升级自定义小部件。
在Python/内核端:
Python的
@register装饰器对于窗口小部件类不再接受字符串参数,而是使用类中的_model_*和_view_*特征来注册窗口小部件类。使用@register('name')作为装饰器已弃用,应更改为仅@register。#1228, #1276小部件现在需要正确定义的
_model_module和_view_moduleUnicode 特性。选择小部件现在同步所选项目的索引,而非标签。(#1262)
Python的
ipywidget.domwidget.LabeledWidget现在更名为ipywidget.widget_description.DescriptionWidget,并且新增了一个ipywidget.widget_description.DescriptionStyle,让用户能够设置描述的CSS宽度。自定义序列化器现在可以返回一个包含二进制对象的结构(
memoryview、bytearray或Python 3的bytes对象)。在这种情况下,同步信息将是一个二进制消息,对于二进制数据来说比base64编码更高效。Image小部件现在使用这种二进制同步。(#1194、#1595、#1643)
在 JavaScript 端:
jupyter-js-widgetsJavascript包已被拆分为@jupyter-widgets/base包(包含基础小部件类、DOM小部件以及相关的布局和样式类)和@jupyter-widgets/controls包(包含其余的Jupyter小部件控件)。自定义小部件的作者需要更新以依赖@jupyter-widgets/base而不是jupyter-js-widgets(如果您使用了控件包中的类,您还需要依赖@jupyter-widgets/controls)。请参阅cookie cutter以使用新包生成一个简单的自定义小部件示例。Javascript中的自定义序列化器现在为同步模式,并应返回小部件状态的快照。默认序列化器会对可JSON化的对象进行拷贝。(#1270)
自定义序列化器现在可以返回包含二进制对象(
ArrayBuffer、DataView,或类型化数组如Int8Array、Float64Array等)的结构。在这种情况下,同步消息将是一个二进制消息,这对于二进制数据相比base64编码效率更高。图像控件现在使用这种二进制同步。(#1194、#1643)自定义序列化器的第二个参数是小组件实例,而自定义反序列化器的第二个参数是小组件管理器。
Javascript 模型
.id属性已被重命名为.model_id,以避免与 Backbone.id属性冲突。(#1410)
关于小部件管理器与同步消息协议:
部件协议经过了重大修改。新部件消息传递协议(版本2)在版本2协议文档中进行了说明。
现在,小部件使用
display_data消息显示,而不是使用自定义通信消息。请参阅 ipywidgets 实现作为示例。(#1274)自定义widget管理器现在完全负责加载widget模型和视图类。Widget管理器应根据其环境提供适当的输出模型和视图类,以便
Outputwidget正常工作。(#1313)小部件管理器的
clear_state方法不再具有commlessOnly参数。当调用clear_state时,小部件管理器中的所有模型将被关闭并清除。(#1354)
6.0#
ipywidgets 6.0 中主要用户可见的变更包括:
在各种Web上下文中渲染Jupyter交互式小部件
sphinx文档:http://ipywidgets.readthedocs.io/en/latest/examples/Widget%20List.html nbviewer:http://nbviewer.jupyter.org/github/jupyter-widgets/ipywidgets/blob/main/docs/source/examples/Widget%20List.ipynb 静态网页:http://jupyter.org/widgets
在核心控件集合中添加了日期选择器控件。
对@interact中自动控制生成语法的更改,灵感来自Sage交互语法。
移除在5.0版本中已被弃用的API,包括DOMWidgets属性中的顶层样式以及
@interact行为中的一些特殊情况。提供了一个新的 API 用于小部件的自定义样式,通过一个顶层的
style属性。例如,滑块手柄的颜色可以通过slider.style.handle_color来设置。移除代理(Proxy)和占位代理(PlaceProxy)部件。
移除已弃用的
FlexBox部件。请改用Box、HBox或VBox部件。可以使用layout属性设置各种伸缩属性。移除已弃用的
Latex部件。请改用新的HTMLMath部件,并在其中使用$或$$分隔符包含 LaTeX 数学公式。移除弃用的小部件布局属性,例如
.width、.height等。请改用带有Layout小部件的layout属性来管理各种布局属性。Label组件现在具有与各种组件上的标签保持一致的样式。要使用包含数学公式的自由格式文本,请使用新的HTMLMath组件。移除Dropdown小部件的
button_style属性添加一个OutputWidget用于捕获输出和富显示对象。@interact 已改为使用OutputWidget来处理函数输出,而非覆盖单元格的输出区域。
jupyter-js-widgets的Javascript实现现在依赖PhosphorJS框架来管理丰富的布局以及更好地集成JupyterLab。
大量错误修复。
自定义小部件作者须知:
ipywidgets 6.0 在 JavaScript 侧处理默认值方面破坏了向后兼容性。现在,核心组件模型的默认值通过一个返回字典的 default() 方法指定,而不是一个 default 字典属性。如果您希望您的库向后兼容 ipywidgets 5.x,可以像这样使用 _.result:
...
defaults: function() {
return _.extend(_.result(this, 'widgets.DOMWidgetModel.prototype.defaults'), {
....
})
},
...
当在经典笔记本中使用自定义部件时,这不会产生影响,但在Web环境中部署交互式部件时却非常重要。
5.x#
4.1.x#
4.1.1#
4.1.0#
4.0.x#
4.0.3#
版本更新,修复了各种错误。
4.0.2#
添加README.rst文档。
4.0.1#
移除ipynb检查点。
4.0.0#
作为独立软件包的 ipywidgets 首次发布。