如何将参数从 Jupyter 后端传递到前端扩展
How to pass a parameter from the Jupyter backend to a frontend extension
我目前有一个值作为环境变量存储在 jupyter 服务器所在的环境中 运行。我想以某种方式将该值传递给前端扩展。它不必实时读取环境变量,我只需要在启动时使用变量的值就可以了。有没有一种规范的方法可以在启动时将参数传递给前端扩展?希望能提供从后端设置参数和从前端访问参数的示例。
[更新]
我已经发布了适用于 nbextentions
的解决方案,但我似乎无法找到 labextensions
(打字稿)的等效模式,如有任何帮助,我们将不胜感激。
我可以通过将以下代码添加到我的 jupter_notebook_config.py
来做到这一点
from notebook.services.config import ConfigManager
cm = ConfigManager()
cm.update('notebook', {'variable_being_set': value})
然后我在 main.js
的扩展中定义了参数
// define default values for config parameters
var params = {
variable_being_set : 'default'
};
// to be called once config is loaded, this updates default config vals
// with the ones specified by the server's config file
var update_params = function() {
var config = Jupyter.notebook.config;
for (var key in params) {
if (config.data.hasOwnProperty(key) ){
params[key] = config.data[key];
}
}
};
我的 main.yaml
中也声明了参数
Parameters:
- name: variable_being_set
description: ...
input_type: text
default: `default_value`
这需要一些试验和错误才能找到,因为关于 ConfigManager
class 和 none 的文档很少,它有一个端到端的示例。
我目前有一个值作为环境变量存储在 jupyter 服务器所在的环境中 运行。我想以某种方式将该值传递给前端扩展。它不必实时读取环境变量,我只需要在启动时使用变量的值就可以了。有没有一种规范的方法可以在启动时将参数传递给前端扩展?希望能提供从后端设置参数和从前端访问参数的示例。
[更新]
我已经发布了适用于 nbextentions
的解决方案,但我似乎无法找到 labextensions
(打字稿)的等效模式,如有任何帮助,我们将不胜感激。
我可以通过将以下代码添加到我的 jupter_notebook_config.py
from notebook.services.config import ConfigManager
cm = ConfigManager()
cm.update('notebook', {'variable_being_set': value})
然后我在 main.js
// define default values for config parameters
var params = {
variable_being_set : 'default'
};
// to be called once config is loaded, this updates default config vals
// with the ones specified by the server's config file
var update_params = function() {
var config = Jupyter.notebook.config;
for (var key in params) {
if (config.data.hasOwnProperty(key) ){
params[key] = config.data[key];
}
}
};
我的 main.yaml
Parameters:
- name: variable_being_set
description: ...
input_type: text
default: `default_value`
这需要一些试验和错误才能找到,因为关于 ConfigManager
class 和 none 的文档很少,它有一个端到端的示例。