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.2.5.tar.gz (900.8 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.2.5-py3-none-win_amd64.whl (35.7 MB view details)

Uploaded Python 3Windows x86-64

ggsql_jupyter-0.2.5-py3-none-manylinux_2_28_x86_64.whl (43.4 MB view details)

Uploaded Python 3manylinux: glibc 2.28+ x86-64

ggsql_jupyter-0.2.5-py3-none-manylinux_2_28_aarch64.whl (42.6 MB view details)

Uploaded Python 3manylinux: glibc 2.28+ ARM64

ggsql_jupyter-0.2.5-py3-none-macosx_11_0_arm64.whl (38.1 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

ggsql_jupyter-0.2.5-py3-none-macosx_10_12_x86_64.whl (40.7 MB view details)

Uploaded Python 3macOS 10.12+ x86-64

File details

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

File metadata

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

File hashes

Hashes for ggsql_jupyter-0.2.5.tar.gz
Algorithm Hash digest
SHA256 291aa2016beb7669af79b3d9583c68f1de2a2074e4a8deeec1fa9c4b5cb3c324
MD5 8bbade0399d572cc14ecef2c11fe25c9
BLAKE2b-256 a62afcb20c831da931aeeeb3bd7e0138c8fd75217d91e22b5613e442dd717e2d

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: ggsql_jupyter-0.2.5-py3-none-win_amd64.whl
  • Upload date:
  • Size: 35.7 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.2.5-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 6459d16211c8029a247de970e67ee0874bd7a0d266f413967f25bbc6c89f079a
MD5 249e5cefd810d557308af06b3771fe49
BLAKE2b-256 333e9e4e2e4390cbea507de4e839c3a142c1d574595f32238fb097446ec3a3db

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for ggsql_jupyter-0.2.5-py3-none-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a6c7d6b7aa369799dd69be3e99c61ea5ea9ef1bc182933950da58e0b90e19d52
MD5 520b839ed07576a29d30a9f6a2beda01
BLAKE2b-256 4ce2eb0b604ec26ff38d98c78801561161b1a0847d5db137574f0650b3b09885

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for ggsql_jupyter-0.2.5-py3-none-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 81d0f8250d890210b1b95bc9652c674f9ea25709f241ddf0c874da3b2cd45eff
MD5 7a84a183d500e63116245779a0024254
BLAKE2b-256 29f66542df99adf9277c632a1ac9ab3d09556ccc918c986cc3c9e359663daf88

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for ggsql_jupyter-0.2.5-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3358c835c507c643cb5135d68fd2d886134adfa5af502620e85e7a8318960247
MD5 3aa65066783989a413a3c6e7d1e8feec
BLAKE2b-256 52e094a74606576c543832df3c7f06c3c453c278a663de7637118e5ec45a6b5f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for ggsql_jupyter-0.2.5-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 de68f79e37ef2f21e3866c6d19fa6c4a814bcd082edf73eaf47c613fcc8a2537
MD5 f180ad04e7dcccfd5855a54fb66659f4
BLAKE2b-256 dc18d39d64b5f0086c3a52f25842e25f46ab8034e9897cee0714ec534efb125d

See more details on using hashes here.

Provenance

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