Giskard Core
Core shared utilities and foundational components for the Giskard library ecosystem.
Installation
uv add giskard-core
# or
pip install giskard-core
Requirements
- Python >= 3.12
- pydantic >= 2.11.0, < 3
Telemetry
giskard-core includes optional usage analytics to help maintainers understand how the libraries are used (versions, environment, coarse feature usage). Analytics are sent to PostHog hosted in the EU (https://eu.i.posthog.com).
What we collect
Installed versions of Giskard libraries (each the package version or not_installed), a coarse environment label (ci, colab, kaggle, or local), and aggregated non-content metrics for Checks runs, Scan runs, and Hub-format exports. These metrics include counts, counts of checks by kind (including custom kind identifiers you register), fixed feature modes, booleans, durations, and pass/fail/error/skip-style outcomes. Descriptions, language values, scenario names, prompts, model outputs, recommendations, trace content, file paths, and exception messages are not sent.
If an error propagates through the telemetry context, a single event may record exception_type (the Python class name only), not the exception string or traceback.
Anonymous identifier
A random persistent ID may be stored under ~/.giskard/id so repeated sessions can be counted without logging in. If the home directory is not writable, a one-off anonymous value is used for that process instead.
How to disable telemetry
Set any of these environment variables to a truthy value (matched case-insensitively; wrapping quotes are ignored; common examples: 1, true, yes, on):
DO_NOT_TRACKGISKARD_TELEMETRY_DISABLED
Flags are read from the process environment and from a .env file in the working directory (process env wins). Set them before importing Giskard packages to skip creating ~/.giskard/id and to never start the analytics sender. If you set them later, further events are dropped and the sender is stopped so no requests are made to PostHog (including in environments that block eu.i.posthog.com).
You can also call disable_telemetry() from giskard.core at runtime to turn off further sends for that process (for example from test harnesses). That does not remove ~/.giskard/id if it was already created; use env-based opt-out before import to avoid writing the file.
from giskard.core import disable_telemetry
disable_telemetry()
GeoIP
When telemetry is enabled, PostHog may apply GeoIP enrichment to events (server-side location metadata used in dashboards). That enrichment is off whenever telemetry is fully disabled (see above) or when you call disable_telemetry().
To keep usage analytics but disable GeoIP only, set this environment variable to a truthy value (same matching rules and .env behavior as in How to disable telemetry):
GISKARD_TELEMETRY_DISABLE_GEOIP
For library authors
The client and helpers are exported from giskard.core: telemetry, telemetry_tag, telemetry_run_context, scoped_telemetry, and disable_telemetry. New events should follow the same rules: no user strings, secrets, file paths, or model I/O in analytics payloads.
Development
make setup # Install dependencies
make test # Run tests
make lint # Run linting
make format # Format code
License
This project is licensed under the MIT License - see the LICENSE file for details.
Metadata
Release files for giskard-core 1.0.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| giskard_core-1.0.2.tar.gz | 14.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| giskard_core-1.0.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 30.6 kB
Release files / giskard_core-1.0.2.tar.gz
| Download URL | giskard_core-1.0.2.tar.gz |
|---|---|
| Size | 14.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6003e793d84483afbfc4a23342df3f59377c86aadf69a04f3c102116a53d4855
|
|
BLAKE2b-256 checksum How to use checksums |
19857e43a549274ef5960108fafb2cd33ef5d971bf545ba45a4ab794c07db1d0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.22 {"installer":{"name":"uv","version":"0.12.22","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / giskard_core-1.0.2-py3-none-any.whl
| Download URL | giskard_core-1.0.2-py3-none-any.whl |
|---|---|
| Size | 16.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
43b6f70bb20803c0cf9bf9c6e51fcbfb89710f89fe12e58d16f5551c6af4d39a
|
|
BLAKE2b-256 checksum How to use checksums |
0220fb93471d7f285104664c87a55a90e141056a61664fdd655fb9d3cda3a73f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.22 {"installer":{"name":"uv","version":"0.12.22","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|