Skip to main content

clickzetta-studio-utils

clickzetta-studio-utils is a Python utility package built on top of clickzetta-connector. It currently provides a lightweight wrapper around ClickZetta's FsUtil, making it convenient to work with Volume files from Studio or scripts.

Installation

This project requires Python >=3.10.

pip install clickzetta-studio-utils

For local development, use uv to install dependencies:

uv sync --dev

Basic Usage

from clickzetta.connector.v0.connection import connect
from clickzetta_studio_utils._utils import _Utils

conn = connect(
    username="<USERNAME>",
    password="<PASSWORD>",
    service="<SERVICE>",
    instance="<INSTANCE>",
    workspace="<WORKSPACE>",
    schema="<SCHEMA>",
    vcluster="<VCLUSTER>",
)

try:
    dbutils = _Utils(conn)

    dbutils.fs.put("volume://<VOLUME>/data/1.txt", "hello clickzetta")
    print(dbutils.fs.ls("volume://<VOLUME>/data/"))
    print(dbutils.fs.head("volume://<VOLUME>/data/1.txt"))
    dbutils.fs.rm("volume://<VOLUME>/data/1.txt")
finally:
    conn.close()

dbutils.fs returns a clickzetta.connector.v0._fsutil.FsUtil instance, so you can continue using the filesystem capabilities provided by clickzetta-connector.

Notebook dbutils.widgets

Notebook runtimes can initialize a Databricks-like dbutils.widgets object from scheduler-provided runtime config.

from clickzetta_studio_utils import init_dbutils

dbutils = init_dbutils(
    {
        "runtime": {
            "tenantId": 1,
            "projectId": 2,
            "scheduleTaskId": 3,
            "scheduleInstanceId": 4,
            "executeLogId": 5,
        },
        "dbutilsApi": {
            "baseUrl": "http://scheduler-worker:8080",
        },
        "widgetValues": {
            "biz_date": "2026-07-27",
        },
    }
)

dbutils.widgets.text("biz_date", "2026-07-20", "Business Date")
print(dbutils.widgets.get("biz_date"))  # keeps the runtime value: 2026-07-27

Supported APIs:

dbutils.widgets.text(name, defaultValue="", label=None)
dbutils.widgets.dropdown(name, defaultValue, choices, label=None)
dbutils.widgets.combobox(name, defaultValue, choices, label=None)
dbutils.widgets.multiselect(name, defaultValue, choices, label=None)
dbutils.widgets.get(name)
dbutils.widgets.getAll()
dbutils.widgets.remove(name)
dbutils.widgets.removeAll()

Widget declaration and removal events are posted to POST /v1/dbutils/widgets/events when dbutilsApi.baseUrl is configured. Event write failures are logged as warnings and do not change local widget behavior.

Notebook dbutils.jobs.taskValues

Notebook runtimes can use dbutils.jobs.taskValues to persist values for downstream task instances and to share values across cells in the current Python kernel.

dbutils.jobs.taskValues.set("row_count", 100)

print(dbutils.jobs.taskValues.get("row_count"))
print(dbutils.jobs.taskValues.get(taskKey="extract_orders", key="row_count", default=0))

set() writes local in-memory state first, then posts serialized JSON to POST /v1/dbutils/task-values/set when dbutilsApi.baseUrl is configured. get(taskKey=...) reads upstream values through POST /v1/dbutils/task-values/get using scheduler-provided producer mappings.

Development

Common commands:

# Check code style and lint issues
uv run ruff check .

# Format Python files
uv run ruff format .

# Run tests
uv run pytest

# Build source and wheel distributions
uv build

Testing Notes

The test suite includes integration tests that connect to a real ClickZetta service and operate on temporary Volumes. Before running them, make sure that:

  • Connection parameters are valid, and the account has permission to create and delete Volumes and read/write files.
  • Personal, production, or long-lived credentials are not committed. Prefer environment variables or local untracked configuration when credentials are needed.
  • You run targeted tests for the code you changed first, then run the full test suite when appropriate.

Project Information

  • Package name: clickzetta-studio-utils
  • Import module: clickzetta_studio_utils
  • Runtime dependency: clickzetta-connector>=1.0.25
  • Build backend: pdm-backend

Metadata

Release files for clickzetta-studio-utils 0.1.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 clickzetta-studio-utils 0.1.2
File Size Uploaded
clickzetta_studio_utils-0.1.2.tar.gz 8.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for clickzetta-studio-utils 0.1.2
File Interpreter ABI Platform
clickzetta_studio_utils-0.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 15.8 kB

Release files / clickzetta_studio_utils-0.1.2.tar.gz

Download URL clickzetta_studio_utils-0.1.2.tar.gz
Size 8.1 kB
Tags Source
SHA-256 checksum
How to use checksums
9953ae0a5999d8753502475c0b77f0c2631a81d8fd116d352e2a174b2ed3098f
BLAKE2b-256 checksum
How to use checksums
5d2830013f61b7f703e96add0c4a27b83b51f64a63da2b939daa1d588134a056
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.4

Release files / clickzetta_studio_utils-0.1.2-py3-none-any.whl

Download URL clickzetta_studio_utils-0.1.2-py3-none-any.whl
Size 7.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e80f4b7cf536092dbfafc1b7f938eb1bfaaeb3bb21b91c46a8b4ee09af768368
BLAKE2b-256 checksum
How to use checksums
93ecc3f72268c332c94d174f00510b7e88f98ed2e055c552510ff6a3e952c4db
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.4

Release history Release notifications | RSS feed

0.1.3

2 release files

This release

0.1.2 This release

2 release files

0.1.1

1 release file

0.1.0

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