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.3.2.tar.gz (945.3 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.3.2-py3-none-win_amd64.whl (15.5 MB view details)

Uploaded Python 3Windows x86-64

ggsql_jupyter-0.3.2-py3-none-manylinux_2_28_x86_64.whl (19.3 MB view details)

Uploaded Python 3manylinux: glibc 2.28+ x86-64

ggsql_jupyter-0.3.2-py3-none-manylinux_2_28_aarch64.whl (17.4 MB view details)

Uploaded Python 3manylinux: glibc 2.28+ ARM64

ggsql_jupyter-0.3.2-py3-none-macosx_11_0_arm64.whl (15.5 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

ggsql_jupyter-0.3.2-py3-none-macosx_10_12_x86_64.whl (17.2 MB view details)

Uploaded Python 3macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: ggsql_jupyter-0.3.2.tar.gz
  • Upload date:
  • Size: 945.3 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.3.2.tar.gz
Algorithm Hash digest
SHA256 800ec8640275f7a3b810414cb16153502934bcc8e4d6189b801d886dc5527867
MD5 f738f5d8574294c75572cf9b9299cdaf
BLAKE2b-256 2a7f7d14341dde150c0f8d8f82e1afb93f71b7535df919386029ee0b3152d267

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for ggsql_jupyter-0.3.2-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 2afc9c06af0119c32c9073f2f5920c5edced1e72995f52759229cc58504b72d1
MD5 765f8553a21eebbcbde8cb374d33cc85
BLAKE2b-256 f210a6e94d28a26e27ae90403d73dfc721cecde7f438e3ffdd1f8c13df0c324b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for ggsql_jupyter-0.3.2-py3-none-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 608acc3e83fc84bd86c6c35b19d4c5d4251604b5d451a9d60dcb99f0a9baa7ac
MD5 af4b202537b8742426411ec95cea0e9c
BLAKE2b-256 c9c34d2d0a85eb27f60b9cf205e408a40c1650a09a08c5d30ce79660cd169e6c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for ggsql_jupyter-0.3.2-py3-none-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 3593df9844612565c59f68ac7fc1b78d7402d0d6fee66546750c1f11edc78025
MD5 543641c08032272867e62775a0a1262d
BLAKE2b-256 50f66688268d4efe4be9ccfb1837ef1e48c1db23a987a1e0042e14056c1d7063

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for ggsql_jupyter-0.3.2-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 781d3ff60e192f99eb38eced6755e343640d57e92dc63d4c23c394055c94cc67
MD5 27268cc139127ddf9e279b942ef8fa07
BLAKE2b-256 f78cfb4ba2f3d368d48115a27080476c57c6bd8ee2bfcffbf55fa2dd6f22cf07

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for ggsql_jupyter-0.3.2-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 922679d1610dafbd6587294ab4043c0d051dd2b4b75ef128042c5721fc2c1466
MD5 52382c275a1b0e595629a5ebee995d41
BLAKE2b-256 d83fe25913dd6b106301f0d577b235b5836870d1aa97b813d9279799eb962bd3

See more details on using hashes here.

Provenance

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