迁移用户代码#
这些是针对ipywidgets用户的迁移指南。
从版本7.x迁移到8.0#
关于8.0主要版本所做更改的更多详细信息,请参阅 changelog。
代码#
文件上传#
data 和 metadata 特性已被移除,而 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_tooltip 为 tooltip。
描述清理#
任何继承自DescriptionWidget的小部件(ipywidgets中的大多数小部件)的description字段值,现在将在客户端对某些HTML内容进行安全处理。如果您依赖此值中的HTML,可能需要显式将description_allow_html特性设置为True,具体取决于所使用的标签/属性类型。
建议迁移:只有在完全控制设定值的情况下才设置description_allow_html。
布局边框#
虽然这一改动严格来说向后兼容,但需提醒那些希望使用新功能的用户:
已添加四个属性:border_left、border_right、border_top和border_bottom。
这些属性可分别用于设置相应的CSS边框字符串。设置
border属性会将所有这四个属性覆盖为border的新值。如果
各个属性值被设置为不同的值,当您读取border属性值时,它将返回None。
布局.overflow_x / 溢出y轴#
先前已弃用的特性 overflow_x 和 overflow_y
已被移除。请
改用 overflow 特性。
Widget.widgets 和 Widget.widget_types 属性#
Widget 类的属性 .widgets 和 .widget_types 现已弃用,并移至内部模块级别的私有变量,为 Widget 类未来的使用释放了这些属性名称。
部署#
嵌入式CDN#
请注意,ipywidgets的默认CDN已从unpkg更改为jsDelivr。如果您依赖于unpkg CDN,可以通过在HTML管理器脚本标签上指定数据属性data-jupyter-widgets-cdn来覆盖此设置。详情请参阅embedding。
小部件笔记本扩展#
notebook 包不再是 widgetsnbextension
包的依赖项(因此 notebook 不再是 ipywidgets 的依赖项)。如果您
需要安装 notebook 与 ipywidgets 一起使用,您将需要明确安装
notebook。