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.4.1.tar.gz (1.2 MB 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.4.1-py3-none-win_amd64.whl (16.8 MB view details)

Uploaded Python 3Windows x86-64

ggsql_jupyter-0.4.1-py3-none-manylinux_2_28_x86_64.whl (20.8 MB view details)

Uploaded Python 3manylinux: glibc 2.28+ x86-64

ggsql_jupyter-0.4.1-py3-none-manylinux_2_28_aarch64.whl (18.8 MB view details)

Uploaded Python 3manylinux: glibc 2.28+ ARM64

ggsql_jupyter-0.4.1-py3-none-macosx_11_0_arm64.whl (16.8 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

ggsql_jupyter-0.4.1-py3-none-macosx_10_12_x86_64.whl (18.6 MB view details)

Uploaded Python 3macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: ggsql_jupyter-0.4.1.tar.gz
  • Upload date:
  • Size: 1.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ggsql_jupyter-0.4.1.tar.gz
Algorithm Hash digest
SHA256 b80ef84deb79dc604b3ad1f4f575114bd5fc123ab938215d24472a52f0ae517f
MD5 9f667907cda5bfe28ca971df28bdf690
BLAKE2b-256 79f7a7b2d2fb64e632e06fe5a8edccb363faece5b66ab9f11eb2ff4bdc87f09f

See more details on using hashes here.

Provenance

The following attestation bundles were made for ggsql_jupyter-0.4.1.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.4.1-py3-none-win_amd64.whl.

File metadata

  • Download URL: ggsql_jupyter-0.4.1-py3-none-win_amd64.whl
  • Upload date:
  • Size: 16.8 MB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ggsql_jupyter-0.4.1-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 8e9b8f1b9e15d5941199c3e5cce6433e5a56468e29971368476bbbb1c6f18db9
MD5 35a762deb324f3e5974f0b9ea7778a8a
BLAKE2b-256 b91be5afb988da5e53e89644fb34729e8c153ebf578158d47e9f1edc1e44e5b8

See more details on using hashes here.

Provenance

The following attestation bundles were made for ggsql_jupyter-0.4.1-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.4.1-py3-none-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for ggsql_jupyter-0.4.1-py3-none-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 83c0229a89d882033c00fcfcc380c5d7567167e183d0f1a79abdf232bc5f1ae2
MD5 564b3d5f4c398f9c315615caadfea951
BLAKE2b-256 b8d0a16b6b228c9323c49678d9d1af91c35f330de1eed87eb5f60700bef5162a

See more details on using hashes here.

Provenance

The following attestation bundles were made for ggsql_jupyter-0.4.1-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.4.1-py3-none-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for ggsql_jupyter-0.4.1-py3-none-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 3e479abc15d147a6a9a51225feea33755affee45328b684e2edc5618d8c43207
MD5 01a2812cd4a585495293be31cf999044
BLAKE2b-256 2e89bf5480ccb7011db4c425e3fbc6b700927b9dd2f93997a357a1e4d89db186

See more details on using hashes here.

Provenance

The following attestation bundles were made for ggsql_jupyter-0.4.1-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.4.1-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for ggsql_jupyter-0.4.1-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a058a25453f1e09f3304f5c3fe6ded681154e7aeb1f5110c53de0d99590196a7
MD5 6c936ef6b4381f7e27ee1a077e9bb31e
BLAKE2b-256 0b4149a379ce731240de313b030b642a122ebad4c9231129d22298329967e39d

See more details on using hashes here.

Provenance

The following attestation bundles were made for ggsql_jupyter-0.4.1-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.4.1-py3-none-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for ggsql_jupyter-0.4.1-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 61b5c20a4387dcc40392350946df1b6205631d9660af66fc7eb326002a589a17
MD5 b09c2a9696788c6b5580e99ad7980cd8
BLAKE2b-256 5559789b6797067ae49ea89d9b76170522ecb74884cee62dd446f913fcb451d2

See more details on using hashes here.

Provenance

The following attestation bundles were made for ggsql_jupyter-0.4.1-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