录音机 在launcher中显示_JupyterLab插件系统在DSW项目中的落地实战

本文介绍了DSW平台如何基于JupyterLab的扩展开发机制实现业务逻辑定制,探讨了JupyterLab扩展的种类和开发流程,包括应用插件、mime renderer扩展、主题扩展和document widget扩展。DSW业务插件如python和sql扩展提供了智能提示、语法高亮等功能,提升算法建模体验。用户可以通过Extension Manager管理安装的插件。
摘要由CSDN通过智能技术生成

DSW 是算法建模同学使用的平台,而 Jupyterlab 提供了类 IDE 的交互式建模工具。如何在开源 Jupyterlab 基础上定制 DSW 特有的 业务逻辑 和 增强功能 的同时,又不影响 开源的更新,无疑是对设计和开发同学的挑战。而利用 Jupyterlab 开源扩展开发机制无疑是比修改源码等其它方式更好的选择,这样不仅从代码层面完全解耦了业务逻辑和开源项目,而且从产品功能层面可以快速定制包含插件功能的镜像版本提供给用户,用户也可以管理自己的插件,自由选择安装或卸载开源插件或者 dsw 业务插件。甚至未来,dsw 业务插件也可以直接贡献到开源社区。
那么,Jupyterlab 开源扩展开发机制到底是什么?它将如何影响我们的产品功能的设计呢?下面为大家详细介绍一下。

JupyterLab 扩展开发

Extension)扩展的定义:主要用于扩展 JupyterLab 功能,一个扩展包含 1 个或多个插件(Plugins)。

JupyterLab扩展:

每个扩展都是一个有效的 npm 包,并遵循如下规范:
1). 导出 1 个或更多 JupyterLab plugins 作为默认导出
2). 在 package.json 里有一个 jupyterlab 属性,或者是一个字符串路径定义的特别的模块

"jupyterlab": {
  "extension": true
}

3). 推荐在 package.json 文件里也包括 jupyterlab-extension 关键词

"keywords": [
  "jupyter",
  "jupyterlab",
  "jupyterlab-extension"
],

编译扩展

使用 webpack 编译 JupyterLab 扩展,可以通过自己配置 webpack,来编译扩展。

JupyterLab 提供以下 4 种扩展方式:

1.应用插件:
应用插件扩展主要是扩展 JupyterLab 的功能。

2.mime renderer Extensions:
是扩展一种文件类型的渲染 或 扩展一种 mime 数据的渲染。通过 mine renderer extension,我们可以为特定类型的文件打开方式或渲染方式进行扩展,比如 @ali/dsw-python-extension 插件这里对 .py 文件打开使用 LSP-Editor 就是使用了 mine renderer extension,对 mime type 为 text/x-python 的文件使用自定义组件进行渲染。或者是对notebook output 的 mime type 类型做特定渲染,比如 @ali/dsw-sql-extension 插件就是对 notebook output 特定的 mime type 为 application/json+dswsqlresult 类型的做了特殊渲染,如图9。
可以使用 mimerender-cookiecutter-ts 创建, 和其它标准扩展不同的是在 package.json 里有:(例如:jupyterlab-mp4 插件

"jupyterlab": {
  "mimeExtension": true
},

3.主题扩展:
主题扩展允许自定义 JupyterLab 主题。
可以使用 TypeScript theme cookiecutter 创建。例如:JupyterLab Light Theme 插件

4.document widget 扩展:
document widget 代表一种文档模型,一个文档模型可以对应多个 document widget。
例如:

a). ipywidgets 扩展的创建是为了 NotebookPanel widgets
b). 在 NotebookPanel widgets 的 toolbar

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值