Skip to main content

Jupyter kernel for ggsql - SQL extension for declarative data visualization

Project description

ggsql Jupyter Kernel

A Jupyter kernel for executing ggsql queries with rich inline Vega-Lite visualizations.

Overview

The ggsql Jupyter kernel enables you to run ggsql queries directly in Jupyter notebooks, with automatic rendering of visualizations using Vega-Lite. It maintains a persistent DuckDB session across cells, allowing you to build up datasets and create visualizations interactively.

Features

  • Execute ggsql queries in Jupyter notebooks
  • Rich visualizations with Vega-Lite rendered inline
  • Persistent DuckDB session across cells
  • Pure SQL support with HTML table output
  • Grammar of Graphics syntax for declarative visualization

Installation

Prerequisites

  • Jupyter Lab or Notebook installed

Option 1: Install from PyPI (Recommended)

The easiest way to install the ggsql kernel is from PyPI. This provides pre-built binaries for Linux, macOS, and Windows.

Using pip:

pip install ggsql-jupyter
ggsql-jupyter --install

Using uv:

uv tool install ggsql-jupyter
ggsql-jupyter --install

The --install flag registers the kernel with Jupyter. It automatically detects and respects your current environment (virtualenv, conda, uv, etc.).

Option 2: Install from crates.io

Requires a Rust toolchain:

cargo install ggsql-jupyter
ggsql-jupyter --install

Option 3: Download Pre-built Binary

Pre-built binaries are available from GitHub Releases:

Platform Binary
Linux (x86_64) ggsql-jupyter-linux-x64
Linux (ARM64) ggsql-jupyter-linux-arm64
macOS (Intel) ggsql-jupyter-macos-x64
macOS (Apple Silicon) ggsql-jupyter-macos-arm64
Windows (x64) ggsql-jupyter-windows-x64.exe

After downloading, make it executable and install:

chmod +x ggsql-jupyter-*
./ggsql-jupyter-linux-x64 --install

On Windows (PowerShell):

.\ggsql-jupyter-windows-x64.exe --install

Option 4: Build from Source

Requires a Rust toolchain. From the workspace root:

cargo build --release --package ggsql-jupyter
./target/release/ggsql-jupyter --install

Installation Flags

  • --install: Install the kernel (default: user install)
  • --install --user: Explicitly install for current user
  • --install --sys-prefix: Install into sys.prefix (for conda envs)

Verify Installation

jupyter kernelspec list

You should see ggsql in the list of available kernels.

Usage

Start Jupyter

jupyter lab
# or
jupyter notebook

Create a ggsql Notebook

  1. In Jupyter, click "New" and select "ggsql" from the dropdown
  2. Start writing ggsql queries!

Example Queries

Simple Point Plot

SELECT 1 as x, 2 as y, 'A' as category
UNION ALL
SELECT 2, 4, 'A'
UNION ALL
SELECT 3, 3, 'B'
VISUALISE x, y, category AS color
DRAW point

Time Series

SELECT
    '2024-01-01'::DATE + INTERVAL (n) DAY as date,
    n * 10 as revenue
FROM generate_series(0, 30) as t(n)
VISUALISE date AS x, revenue AS y
DRAW line
SCALE x SETTING type => 'date'
LABEL title => 'Revenue Growth', x => 'Date', y => 'Revenue ($)'

Multi-Layer Plot with Global Mapping

SELECT x, x*x as y, x*x*x as z
FROM generate_series(1, 10) as t(x)
VISUALISE x AS x
DRAW line MAPPING y AS y
DRAW line MAPPING z AS y
LABEL title => 'Polynomial Functions'

Pure SQL (Data Tables)

SELECT * FROM (VALUES (1, 'a'), (2, 'b'), (3, 'c')) AS t(id, name)

This will display as an HTML table without visualization.

Building Up Data Across Cells

Cell 1:

CREATE TABLE products AS
SELECT * FROM (VALUES
    (1, 'Widget', 10.99),
    (2, 'Gadget', 24.99),
    (3, 'Doohickey', 5.99)
) AS t(id, name, price)

Cell 2:

SELECT * FROM products
VISUALISE name AS x, price AS y
DRAW bar
LABEL title => 'Product Prices', y => 'Price ($)'

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ggsql_jupyter-0.1.6.tar.gz (807.4 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

ggsql_jupyter-0.1.6-py3-none-win_amd64.whl (35.1 MB view details)

Uploaded Python 3Windows x86-64

ggsql_jupyter-0.1.6-py3-none-manylinux_2_28_x86_64.whl (41.5 MB view details)

Uploaded Python 3manylinux: glibc 2.28+ x86-64

ggsql_jupyter-0.1.6-py3-none-manylinux_2_28_aarch64.whl (40.1 MB view details)

Uploaded Python 3manylinux: glibc 2.28+ ARM64

ggsql_jupyter-0.1.6-py3-none-macosx_11_0_arm64.whl (36.4 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

ggsql_jupyter-0.1.6-py3-none-macosx_10_12_x86_64.whl (39.0 MB view details)

Uploaded Python 3macOS 10.12+ x86-64

File details

Details for the file ggsql_jupyter-0.1.6.tar.gz.

File metadata

  • Download URL: ggsql_jupyter-0.1.6.tar.gz
  • Upload date:
  • Size: 807.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for ggsql_jupyter-0.1.6.tar.gz
Algorithm Hash digest
SHA256 54005d3c73d00a34b11a839ef56ace1bd0d8a70e7f2d57c2a12fc96e23a740e8
MD5 0b20e9f41a8000504e6178f450335004
BLAKE2b-256 2e396096adbc867755fc9130b1cf528440cbbff8148e84c7cb43c69679fdb955

See more details on using hashes here.

Provenance

The following attestation bundles were made for ggsql_jupyter-0.1.6.tar.gz:

Publisher: release-jupyter.yml on posit-dev/ggsql

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ggsql_jupyter-0.1.6-py3-none-win_amd64.whl.

File metadata

File hashes

Hashes for ggsql_jupyter-0.1.6-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 5dba0f5a167aea72c59ff0e95581313c9f0b02c030cf58812ec6e8f027bc9dc5
MD5 4e583f3131d00a626077f4bb0e2806c0
BLAKE2b-256 0f9ca9bb0a40f63a78da659b6b500c7be9d3fa6a502c0b009f20600a00c142b2

See more details on using hashes here.

Provenance

The following attestation bundles were made for ggsql_jupyter-0.1.6-py3-none-win_amd64.whl:

Publisher: release-jupyter.yml on posit-dev/ggsql

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ggsql_jupyter-0.1.6-py3-none-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for ggsql_jupyter-0.1.6-py3-none-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 62ada946f1110732681e334f28b7b8711c42298741ba63b64c76458fac33379f
MD5 d5135873dc908b3ec3a66ba59987b313
BLAKE2b-256 832571efe95698160d2c01ce70a309e11920840a2fd3abbbfd021ce9cd347d0f

See more details on using hashes here.

Provenance

The following attestation bundles were made for ggsql_jupyter-0.1.6-py3-none-manylinux_2_28_x86_64.whl:

Publisher: release-jupyter.yml on posit-dev/ggsql

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ggsql_jupyter-0.1.6-py3-none-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for ggsql_jupyter-0.1.6-py3-none-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 b3102ac6f5c58adf47c8a1b959fc5b26cf056d4270effa0934c68965ffe79406
MD5 7c88f84f07333bad5d06af217d374d31
BLAKE2b-256 5a96347530101d57c013001576b42f7c6398a34589a8feb04d916d21c6068ddc

See more details on using hashes here.

Provenance

The following attestation bundles were made for ggsql_jupyter-0.1.6-py3-none-manylinux_2_28_aarch64.whl:

Publisher: release-jupyter.yml on posit-dev/ggsql

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ggsql_jupyter-0.1.6-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for ggsql_jupyter-0.1.6-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 398b2af21ab79bd2c97cf643e19efa71d58c06c8a4864c1b72428d939b567fc0
MD5 d1837ab47a7fdc16fe7ee7c149c9fe17
BLAKE2b-256 22f0838fcbd0ba0a3f2fc380f4cb436d70171a4bd94d230c1d832b89f8b24a5c

See more details on using hashes here.

Provenance

The following attestation bundles were made for ggsql_jupyter-0.1.6-py3-none-macosx_11_0_arm64.whl:

Publisher: release-jupyter.yml on posit-dev/ggsql

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ggsql_jupyter-0.1.6-py3-none-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for ggsql_jupyter-0.1.6-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 d143e1c623ec5768b38fe8796538f48a4132e8254e1bffafb3781f16e9e02248
MD5 6b2a46ec1941b3646215cc4168e6d7b3
BLAKE2b-256 a84b9cd368da805831c60e11b27c762cb3ba40e0428c50ef56e73a542e1dc3e3

See more details on using hashes here.

Provenance

The following attestation bundles were made for ggsql_jupyter-0.1.6-py3-none-macosx_10_12_x86_64.whl:

Publisher: release-jupyter.yml on posit-dev/ggsql

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page