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.7.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.7-py3-none-win_amd64.whl (35.1 MB view details)

Uploaded Python 3Windows x86-64

ggsql_jupyter-0.1.7-py3-none-manylinux_2_28_x86_64.whl (41.6 MB view details)

Uploaded Python 3manylinux: glibc 2.28+ x86-64

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

Uploaded Python 3manylinux: glibc 2.28+ ARM64

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

Uploaded Python 3macOS 11.0+ ARM64

ggsql_jupyter-0.1.7-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.7.tar.gz.

File metadata

  • Download URL: ggsql_jupyter-0.1.7.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.7.tar.gz
Algorithm Hash digest
SHA256 ade32bb11ff9f95680ef1eed2f1300d4e7bea6835835768d7876dfc979c34b22
MD5 a692c109ca150743af626ad69648e726
BLAKE2b-256 1d5f46649f099b3aa0cc4ac673cdb7b6cfd5fc500305721f1b3184372717f2cd

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for ggsql_jupyter-0.1.7-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 de3808290e89c891d3ca6d7b2a71a12db16498d563cb53e3b6238a6519049f14
MD5 08a7a2a631f77e9ae29da231c17e34c2
BLAKE2b-256 cb00be5798f7379bd4840eebec970fb0225eb592a9336cec1b8b275bfa0e2dd8

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for ggsql_jupyter-0.1.7-py3-none-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 cb154c57b5c9494a0b39edeeacebfc0eea91ff037c5a2bbdcb54cd719fb90450
MD5 7548cc969878e0d68d554f7f3212f0e7
BLAKE2b-256 f747f565de4e1589e9be79a0ba17c8a77446976c072504b6ee067a433fa1c14f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for ggsql_jupyter-0.1.7-py3-none-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 88f0424f8f465968c217d0da73ecc679a495a669ad7338cd9996ef12abf4022a
MD5 47437e430c57bb801b3c07224bc237c0
BLAKE2b-256 e873caaf107148dd0a89c8bc2bc5de29b83a1ec4031f5ea94c2c6a305ffa3ef1

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for ggsql_jupyter-0.1.7-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0ae42fd68ed9df2b8c6bd32f532cf233da1a1a7c721de6ddb6b2a67fda526539
MD5 bbea11f81883dadd9ca6725d08881147
BLAKE2b-256 9fbd719007cc563377ec8b457be64bdaaccac78b7205a8cc3be0d7b52cda6c24

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for ggsql_jupyter-0.1.7-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 60e4d4300b58f15add42042519b44ce8313b4a1071ea2d7986a1e0bf0f2cc7e8
MD5 18b8e87dcd462f9803f5763b3283f79d
BLAKE2b-256 d238d75e2b53c568407dec733554662dc131b067c49baf2ba95f1d0991ff5970

See more details on using hashes here.

Provenance

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