Skip to main content

icegraph-client

Python client and CLI for the IceGraph server API - script access to tables, snapshot history, and the metadata graph.

Install

icegraph-client is only guaranteed compatible with the exact version of the IceGraph server it talks to - pin to that version:

pip install icegraph-client==<version>

CLI

icegraph --base-url http://<icegraph-server-host> tables
icegraph --base-url http://<icegraph-server-host> snapshots <database.table> [--before-snapshot-id ID]
icegraph --base-url http://<icegraph-server-host> metadata <database.table>
icegraph --base-url http://<icegraph-server-host> sparkdesc <database.table>
icegraph --base-url http://<icegraph-server-host> graph <database.table> [--start-snapshot-id ID] [--end-snapshot-id ID]

--base-url also falls back to the ICEGRAPH_BASE_URL environment variable. If your server sits behind a proxy that requires auth, pass --token/--cookie (or ICEGRAPH_TOKEN/ICEGRAPH_COOKIE).

Each command prints its result as JSON on stdout; status messages go to stderr, so output pipes cleanly.

snapshots returns one page, starting from the table's newest snapshots, as {"snapshots": [...], "next_before_snapshot_id": ...}. Pass next_before_snapshot_id as --before-snapshot-id to get the next older page; it is null when no older snapshots remain.

metadata returns the table's latest metadata, plus warnings, which maps a source to a list of messages and is empty when there are none. For example, it warns when the table uses an Iceberg format version other than 2, which IceGraph doesn't fully support yet.

sparkdesc returns Spark's description of any table Spark can resolve, Iceberg or not, as {"spark_schema": {...}, "spark_partitions": [...], "sections": [...], "properties": {...}, "warnings": {...}}. Use it when another command reports that the table is not an Iceberg table.

Python

from icegraph_client import IceGraphClient

client = IceGraphClient("http://<icegraph-server-host>")
client.list_tables()
page = client.get_snapshot_map("database.table")
if page.next_before_snapshot_id is not None:  # None when no older snapshots remain
    client.get_snapshot_map("database.table", before_snapshot_id=page.next_before_snapshot_id)
client.get_table_metadata("database.table")
client.get_table_description("database.table")
client.get_graph("database.table", start_snapshot_id, end_snapshot_id)

Docs

Product page: https://yanivzalach.github.io/IceGraph-Site/

Full documentation, the IceGraph application, and the source code: github.com/YanivZalach/IceGraph

License

icegraph-client is licensed under the GNU Affero General Public License version 3 only.

Copyright (c) 2026 Yaniv Zalach and the IceGraph contributors.

Metadata

Release files for icegraph-client 0.20.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for icegraph-client 0.20.2
File Size Uploaded
icegraph_client-0.20.2.tar.gz 34.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for icegraph-client 0.20.2
File Interpreter ABI Platform
icegraph_client-0.20.2-py3-none-any.whl Python 3 none any Details

Total release size: 55.4 kB

Release files / icegraph_client-0.20.2.tar.gz

Download URL icegraph_client-0.20.2.tar.gz
Size 34.5 kB
Tags Source
SHA-256 checksum
How to use checksums
30c87f0a99bfe49a163c6c28c2c2a2e677527f76f356af773bf389ebb93238b1
BLAKE2b-256 checksum
How to use checksums
30befebfccb9c8e0cfafdc777f9fada5c3e02cf94dc5032d482b9dbb11f44207
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / icegraph_client-0.20.2-py3-none-any.whl

Download URL icegraph_client-0.20.2-py3-none-any.whl
Size 20.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
07cd9ba640a4c8e194d3adafa40177d735f46653f241c6aaa8aada0bc6d0580e
BLAKE2b-256 checksum
How to use checksums
bc0b9ad4e4233765420cef4a71680e7cb4939a43fd1d1ada80291c56fb5698d0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release history Release notifications | RSS feed

This release

0.20.2 This release

2 release files

0.19.4

2 release files

0.19.3

2 release files

0.19.2

2 release files

0.19.1

2 release files

0.19.0

2 release files

0.18.0

2 release files

0.17.0

2 release files

0.16.9

2 release files

0.16.8

2 release files

0.16.7

2 release files

0.16.6

2 release files

0.16.5

2 release files

0.16.4

2 release files

0.16.3

2 release files

0.16.2

2 release files

0.16.1

2 release files

0.16.0

2 release files

0.15.6

2 release files

0.15.1

2 release files

0.15.0

2 release files

0.14.4

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page