跳转到主要内容

使用Ibis表达式评估Vega转换。

项目描述

ibis-vega-transform
binder logo Tests Github Actions StatusBinder

一个用于使用Ibis惰性执行Vega转换的JupyterLab扩展。

使用Ibis表达式进行Python评估的Vega转换。

获取灵感,请参阅 https://github.com/jakevdp/altair-transform

此扩展由名为 ibis-vega-transform 的 Python 包(用于服务器扩展)和名为 ibis-vega-transform 的 NPM 包(用于前端扩展)组成。

要求

  • JupyterLab >= 3.0

入门指南

pip install ibis-vega-transform

然后在笔记本中导入 Python 包,并将 ibis 表达式传递给 Altair 图表

import altair as alt
import ibis_vega_transform
import ibis
import pandas as pd


source = pd.DataFrame({
    'a': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I'],
    'b': [28, 55, 43, 91, 81, 53, 19, 87, 52]
})

# or ibis.pandas if ibis version < 1.4
connection = ibis.backends.pandas.connect({'source': source })
table = connection.table('source')

alt.Chart(table).mark_bar().encode(
    x='a',
    y='b'
)

查看 ./examples/ 目录中的笔记本,以了解使用交互式图表和 OmniSci 后端的一些选项。

用法

导入 ibis_vega_transformaltair 渲染器和数据转换器设置为 "ibis"。它还会对 Ibis 图表构造函数进行 monkeypatch,以处理 ibis 表达式。

现在,每当您将 ibis 表达式传递给图表构造函数时,它将使用自定义的 ibis 渲染器,将所有数据聚合推送到 ibis,而不是在浏览器中。

您还可以设置一个调试标志,以便它拉取 ibis 表达式的第一 N 行并使用默认渲染器。这有助于查看默认管道如何渲染您的图表。如果您遇到错误,我建议首先设置此标志,以查看错误是在 Altair 端还是 ibis-vega-transform 端。如果回退图表渲染正确,则表示错误在此代码库中。如果它错误,则错误在您的代码、Altair 或 Vega 中。

# enable fallback mode
ibis_vega_transform.set_fallback(True)
# disable fallback mode (the default)
ibis_vega_transform.set_fallback(False)

跟踪

如果您想查看交互的跟踪以进行调试和性能分析,请安装 jaeger-all-in-one 二进制文件和 jupyterlab-server-proxy 实验室扩展,以在启动器中看到 Jaeger 图标。

conda install jaeger -c conda-forge
jupyter labextension install jupyterlab-server-proxy-saulshanabrook

Jaeger 服务器实际上直到接收到 HTTP 请求才会启动,因此,在运行您的可视化之前,请点击 JupyterLab 启动器中的“Jaeger”图标或转到 /jaeger 以打开 UI。然后运行您的可视化,您应该会看到跟踪出现在 Jaeger 中。

您可能还需要在您的操作系统上增加最大 UDP 数据包大小,以 适应大日志

Mac

# Edit now
sudo sysctl net.inet.udp.maxdgram=200000
# Edit on restart
echo net.inet.udp.maxdgram=200000 | sudo tee -a /etc/sysctl.conf

故障排除

如果您看到了前端扩展,但它不起作用,请检查服务器扩展是否已启用

jupyter server extension list

如果服务器扩展已安装和启用,但您没有看到前端扩展,请检查前端扩展是否已安装

jupyter labextension list

贡献

开发安装

注意:您将需要 NodeJS 来构建扩展包。

jlpm 命令是 JupyterLab 的固定版本 yarn,它是与 JupyterLab 一起安装的。您可以使用 yarnnpm 替代以下 jlpm

# Clone the repo to your local environment
git clone git@github.com:Quansight/ibis-vega-transform.git

# Change directory to the ibis-vega-transform directory and
# Create a conda environment
cd ibis-vega-transform
conda env create -f binder/environment.yml
conda activate ibis-vega-transform

# Install package in development mode
pip install -e .
# Link your development version of the extension with JupyterLab
jupyter labextension develop . --overwrite
# Rebuild extension Typescript source after making changes
jlpm run build

您可以在不同的终端中同时监视源目录并运行 JupyterLab,以监视扩展源中的更改并自动重新构建扩展。

# Watch the source directory in one terminal, automatically rebuilding when needed
jlpm run watch
# Run JupyterLab in another terminal
jupyter lab

在监视命令运行时,每次保存的更改都将立即在本地构建并可供正在运行的 JupyterLab 使用。刷新 JupyterLab 以在浏览器中加载更改(您可能需要等待几秒钟以重建扩展)。

默认情况下,jlpm run build 命令生成此扩展的源映射,以便更容易使用浏览器开发工具进行调试。要为 JupyterLab 核心扩展生成源映射,可以运行以下命令

jupyter lab build --minimize=False

使用 Husky(需要 Git > 2.13)安装了预提交钩子来格式化文件。

使用以下命令在任何时间运行格式化工具

black ibis_vega_transform
jlpm run prettier

跟踪

我们使用 jupyter-jaeger 跟踪每个交互以进行基准测试。

卸载

pip uninstall ibis-vega-transform

项目详情


下载文件

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

源代码分发

ibis-vega-transform-5.3.0.tar.gz (332.0 kB 查看哈希值)

上传时间 源代码

构建分发

ibis_vega_transform-5.3.0-py3-none-any.whl (651.8 kB 查看哈希值)

上传时间 Python 3

支持者

AWSAWS云计算和安全赞助商DatadogDatadog监控FastlyFastlyCDNGoogleGoogle下载分析MicrosoftMicrosoftPSF赞助商PingdomPingdom监控SentrySentry错误日志StatusPageStatusPage状态页面