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.3

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.3
File Size Uploaded
clickzetta_studio_utils-0.1.3.tar.gz 8.4 kB Details

Built distribution (wheel)

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

Total release size: 16.5 kB

Release files / clickzetta_studio_utils-0.1.3.tar.gz

Download URL clickzetta_studio_utils-0.1.3.tar.gz
Size 8.4 kB
Tags Source
SHA-256 checksum
How to use checksums
4abfce2d4ce8b05464d274aab2bc63a4e2f10040dc389d66e73093d0250f1313
BLAKE2b-256 checksum
How to use checksums
2a39329fd1842d7a7e0dd6616acd9b91dcd7d26cbc01331ccb75179f4a7b4d28
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.3-py3-none-any.whl

Download URL clickzetta_studio_utils-0.1.3-py3-none-any.whl
Size 8.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
297d9f7b07c5d2e52fc9d07d2ed5a18d64200fab86c15d7c426c92d93497b6f1
BLAKE2b-256 checksum
How to use checksums
7a1600e9ec396c0daf7bdc98dba7545c2c879eebfb0d3788798577792e6651a8
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

This release

0.1.3 This release

2 release files

0.1.2

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