迁移用户代码#

这些是针对ipywidgets用户的迁移指南。

从版本7.x迁移到8.0#

关于8.0主要版本所做更改的更多详细信息,请参阅 changelog

代码#

文件上传#

datametadata 特性已被移除,而 value 特性已被重新设计为 一个包含文件信息的字典列表。这些字典的键为:

  • content: 文件数据缓冲区

  • name:文件的名称

  • type: 文件内容的MIME类型

  • size: 缓冲区的大小,单位为字节

  • last_modified: 表示文件报告的“最后修改”值的UTC日期时间

建议迁移: 重写所有使用 FileUpload 的代码,以采用新结构。 如果您需要同时支持 7.x 和 8.x 版本,您可以编写例如 get_file_buffer 及类似函数, 来封装从该部件读取的操作:

  • 对于 .value 属性,要以其原始形式检索,请使用 {f["name"]: f.content.tobytes() for f in uploader.value}

  • 对于.data属性,使用[f.content.tobytes() for f in uploader.value]

  • 对于 .metadata 属性,使用 [{k: v for k, v in f.items() if k != "content"} for f in w.value]

提示工具#

作为让 为所有小部件设置工具提示 成为可能的努力的一部分, 某些小部件的旧 description_tooltip 属性已被弃用。现在所有继承自 DOMWidget 的小部件都有 tooltip 属性作为替代。

建议迁移:当你不再需要支持 ipywidgets 7 时,搜索并替换 description_tooltiptooltip

描述清理#

任何继承自DescriptionWidget的小部件(ipywidgets中的大多数小部件)的description字段值,现在将在客户端对某些HTML内容进行安全处理。如果您依赖此值中的HTML,可能需要显式将description_allow_html特性设置为True,具体取决于所使用的标签/属性类型。

建议迁移:只有在完全控制设定值的情况下才设置description_allow_html

布局边框#

虽然这一改动严格来说向后兼容,但需提醒那些希望使用新功能的用户:

已添加四个属性:border_leftborder_rightborder_topborder_bottom。 这些属性可分别用于设置相应的CSS边框字符串。设置 border属性会将所有这四个属性覆盖为border的新值。如果 各个属性值被设置为不同的值,当您读取border属性值时,它将返回None

布局.overflow_x / 溢出y轴#

先前已弃用的特性 overflow_xoverflow_y 已被移除。请 改用 overflow 特性。

Widget.widgetsWidget.widget_types 属性#

Widget 类的属性 .widgets.widget_types 现已弃用,并移至内部模块级别的私有变量,为 Widget 类未来的使用释放了这些属性名称。

部署#

嵌入式CDN#

请注意,ipywidgets的默认CDN已从unpkg更改为jsDelivr。如果您依赖于unpkg CDN,可以通过在HTML管理器脚本标签上指定数据属性data-jupyter-widgets-cdn来覆盖此设置。详情请参阅embedding

小部件笔记本扩展#

notebook 包不再是 widgetsnbextension 包的依赖项(因此 notebook 不再是 ipywidgets 的依赖项)。如果您 需要安装 notebookipywidgets 一起使用,您将需要明确安装 notebook