跳转到主要内容

轻松创建自定义jupyter小部件

项目描述

anywidget logo. A circular icon with two connected arrows pointing clockwise, symbolizing a refresh or restart action
anywidget

轻松创建自定义jupyter小部件

安装 . 文档 . discord . 了解

关于

anywidget 使用现代网络标准简化自定义Jupyter小部件的创建和分发。

  • 🛠️ 创建无需复杂cookiecutter模板的小部件
  • 📚 如其他Python包一样 发布到PyPI
  • 🤖 在 .ipynb.py 文件中 内原型设计
  • 🚀 在 JupyterJupyterLabGoogle ColabVSCode 等中 运行
  • ⚡ 使用类似现代Web框架的 即时HMR 进行开发

Jupyter博客中了解更多。

安装

anywidget 可在 PyPI 上找到

pip install "anywidget[dev]"

同样也在 conda-forge

conda install -c conda-forge anywidget

用法

import anywidget
import traitlets

class CounterWidget(anywidget.AnyWidget):
    # Widget front-end JavaScript code
    _esm = """
    function render({ model, el }) {
      let button = document.createElement("button");
      button.innerHTML = `count is ${model.get("value")}`;
      button.addEventListener("click", () => {
        model.set("value", model.get("value") + 1);
        model.save_changes();
      });
      model.on("change:value", () => {
        button.innerHTML = `count is ${model.get("value")}`;
      });
      el.appendChild(button);
    }
    export default { render };
    """
    # Stateful property that can be accessed by JavaScript & Python
    value = traitlets.Int(0).tag(sync=True)

前端代码也可以存在于单独的文件中(推荐)

import pathlib
import anywidget
import traitlets

class CounterWidget(anywidget.AnyWidget):
    _esm = pathlib.Path("index.js")
    _css = pathlib.Path("styles.css")
    value = traitlets.Int(0).tag(sync=True)

阅读文档了解更多。

软件包

除了主要的Python包之外,anywidget 还提供了一套工具,帮助您构建和分发自定义Jupyter小部件。

名称 描述 版本(点击查看变更日志)
anywidget 主要Python包 version
npm:@anywidget/types 客户端类型声明 version
npm:@anywidget/vite Vite插件 version
npm:@anywidget/react React框架适配器 version
npm:@anywidget/svelte Svelte框架适配器 version
npm:create-anywidget 用于引导新项目的CLI version
jsr:@anywidget/deno 用于Deno Jupyter内核的后端 version

支持

遇到问题?在我们的Discord上寻求帮助或打开讨论

贡献

欢迎新贡献者!查看我们的贡献者指南以获取帮助开始。

加入我们的Discord(https://discord.gg/W5h4vPMbDQ)群组,与其他维护者见面。我们将立即帮助你完成首次贡献!

许可

MIT

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码分布

anywidget-0.9.13.tar.gz (9.7 MB 查看哈希)

上传时间 源代码

构建分布

anywidget-0.9.13-py3-none-any.whl (213.7 kB 查看哈希)

上传时间 Python 3

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面