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

Uploaded Python 3Windows x86-64

ggsql_jupyter-0.2.7-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.7-py3-none-manylinux_2_28_aarch64.whl (42.6 MB view details)

Uploaded Python 3manylinux: glibc 2.28+ ARM64

ggsql_jupyter-0.2.7-py3-none-macosx_11_0_arm64.whl (38.2 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

ggsql_jupyter-0.2.7-py3-none-macosx_10_12_x86_64.whl (41.9 MB view details)

Uploaded Python 3macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: ggsql_jupyter-0.2.7.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.7.tar.gz
Algorithm Hash digest
SHA256 8e6ec8217c282d2704652af5e486aa6c7ebb9863bfd0c2e27984fdaf05a0db20
MD5 b9fb10a51f0c39c85ff313eb73675706
BLAKE2b-256 7960a058527acff6c3817a41dae37a96e4b5a01ae3047be8fa907b6b338e79cb

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: ggsql_jupyter-0.2.7-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.7-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 6b3169bc4c6c8d50c5286a3f17fc72544fd41887f5965eba40748daef87cd4a6
MD5 ef2250f645147c456eae0f5bc02ca237
BLAKE2b-256 95306522ef8cfd53925bfa8116735eccb6ffa1be7ebeefa933da673664fa14bc

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for ggsql_jupyter-0.2.7-py3-none-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b3af3194cfdf650eddc494f2bcef3201086d9a3b57276f395a2d9111af48eb6a
MD5 077e85d614497cf0e5dbfa1e0f856ba1
BLAKE2b-256 c8d34270727776140ab58adc5051f31e36dc2087e91becfd746418a0cee2b09b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for ggsql_jupyter-0.2.7-py3-none-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 796058deb6464c7b268eff9249cfb88fd2411a72027158028d459e3ec86c85b2
MD5 e0adb7c8ab1476eab81ed5d350545034
BLAKE2b-256 810d399931149cacee552ffd9573a1bd8bd50ee5f4e102a6c640e229c2725d1c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for ggsql_jupyter-0.2.7-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a7a0a6f93dfcffa523c6d5a9203b79f8a5897c26b7ee319188ff5d41c5237b8c
MD5 7712bf09214ff2ce3e16f9d0a218750f
BLAKE2b-256 3ae64a36af6a4baecfc3d85dc35f9de4bbb8ea411b7cdf8938100d9c6586c708

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for ggsql_jupyter-0.2.7-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 6c9d5d91da0a10538ab2375cb07c3d3f6cc75800291692643ef91ab5816dd4d8
MD5 ff651f4f71e22c8d1b6d2e652cf9fb37
BLAKE2b-256 281e7fd4a582753bd626ce8139c207ff74eb0807e33f62e856059cd3d0f445dd

See more details on using hashes here.

Provenance

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