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

Uploaded Python 3Windows x86-64

ggsql_jupyter-0.1.8-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.8-py3-none-manylinux_2_28_aarch64.whl (40.1 MB view details)

Uploaded Python 3manylinux: glibc 2.28+ ARM64

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

Uploaded Python 3macOS 11.0+ ARM64

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

File metadata

  • Download URL: ggsql_jupyter-0.1.8.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.8.tar.gz
Algorithm Hash digest
SHA256 9a0cbce51a4f4ee3e43a2f9de33072cc08c4c516f050054103a68bb460ef15f2
MD5 7e815d8b31c768e02ca0d5f9e1517aea
BLAKE2b-256 8601ddd03e72b79ee9102bfe95a754c1de22350cac4608c216a8b09f3ded8a89

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for ggsql_jupyter-0.1.8-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 bbd131c690f7c1f3ff5cad661e121bd1994036db213b3d331fdce96142d24f51
MD5 a3b456d143d3b2b1b5470122c1daaafc
BLAKE2b-256 e627a10b86bed059b911a60509e3de2b0d5537f1a805e9e7e119c9736920ee9c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for ggsql_jupyter-0.1.8-py3-none-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 404442951c3163a8456466a12191795a111df40202ef6e1d1c4800302e0bd082
MD5 c93996ec3eff76cc69cbcdea6d03f6b0
BLAKE2b-256 aaa83ba476b72599091474be55a37c3cc212e601939a04d26763174d2de7a83a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for ggsql_jupyter-0.1.8-py3-none-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 4a66276731115d77daf06ffbd4e037a0db2525b521f9d7b6e5c6e464d2deab1a
MD5 388eed8be06ead37d497670e145b0225
BLAKE2b-256 1b3e144de1dd457203d02b63400f801387f80e5b5cb4284ce5453ceefcc66f71

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for ggsql_jupyter-0.1.8-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ddee9c70a5fcf24502eaccfb0b80cce1d9fffe7e48b88ee8b6ba520869a03fae
MD5 2f60e71bb55d2d248b22766a738a24a9
BLAKE2b-256 13986e40895eae42e21f9d205ac202127ada248427a50c62107f9e713a8e868f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for ggsql_jupyter-0.1.8-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 5851b27bd48840ce43a0274e3916dcae89e4e1ba4bc753997ce95bd2cb57c432
MD5 5f6ac38e9ad47169efde5a17d0e8c0d0
BLAKE2b-256 4854875f0cf07073402fe9401b8017c1076286a8d51bf18efd9669aeeb1c5c38

See more details on using hashes here.

Provenance

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