Skip to main content

Chalk Sandbox SDK

Python SDK for the Chalk Sandbox gRPC service. Create sandboxes, execute commands, and stream output over bidirectional gRPC streams.

Contributor note: for testing deployed functions against local chalkcompute or local chalk-remote-call-python changes, see local-sdk-remote-call-testing.md.

Install

pip install grpcio protobuf

Quick start

from chalkcompute import SandboxClient

with SandboxClient.from_env() as client:
    # Create a sandbox from a pre-built image
    sandbox = client.create(image="ubuntu:latest")

    # Run a command
    result = sandbox.exec("echo", "hello world")
    print(result.stdout_text)  # "hello world"
    print(result.exit_code)    # 0

    # Clean up
    sandbox.terminate()

Declarative images

Build custom container images with a fluent API instead of writing Dockerfiles. The image spec is serialized as protobuf and transmitted to the sandbox service, which builds and caches the image before starting the container.

from chalkcompute import Image, SandboxClient

# Build a data-science image declaratively
img = (
    Image.debian_slim()
    .pip_install(["pandas", "numpy", "scikit-learn"])
    .run_commands(
        "apt-get update && apt-get install -y git curl",
    )
    .workdir("/home/user/app")
    .env({"PYTHONDONTWRITEBYTECODE": "1"})
)

with SandboxClient.from_env() as client:
    sandbox = client.create(image=img)
    result = sandbox.exec("python", "-c", "import pandas; print(pandas.__version__)")
    print(result.stdout_text)
    sandbox.terminate()

Base images

# Arbitrary base image
img = Image.base("node:25-trixie-slim")

# Convenience: python + debian slim
img = Image.debian_slim()  # python:3.14-slim-trixie

# From an existing Dockerfile (contents are inlined, so you can chain more steps)
img = Image.from_dockerfile("Dockerfile").pip_install(["extra-dep"])

Build steps

img = (
    Image.debian_slim()
    # Install Python packages
    .pip_install(["requests", "flask"])

    # Install from a requirements.txt (read locally, inlined into the spec)
    .pip_install_from_requirements("requirements.txt")

    # Run shell commands (each becomes a Docker RUN layer)
    .run_commands(
        "apt-get update && apt-get install -y git",
        "mkdir -p /app/data",
    )

    # Add local files into the image
    .add_local_file("config.yaml", "/app/config.yaml")
    .add_local_file("entrypoint.sh", "/app/entrypoint.sh", mode=0o755)
    .add_local_dir("src", "/app/src")

    # Raw Dockerfile instructions
    .dockerfile_commands(["EXPOSE 8080", "HEALTHCHECK CMD curl -f http://localhost:8080/"])

    # Image-level configuration
    .workdir("/app")
    .env({"FLASK_APP": "app:create_app"})
    .entrypoint(["/app/entrypoint.sh"])
    .cmd(["serve"])
)

Immutable composition

Each builder method returns a new Image, so intermediate images can be shared:

base = Image.debian_slim().pip_install(["requests"])

# Two different images that share the same base
api_image = base.pip_install(["flask"]).workdir("/api")
worker_image = base.pip_install(["celery"]).workdir("/worker")

api_sandbox = client.create(image=api_image)
worker_sandbox = client.create(image=worker_image)

api_sandbox.terminate()
worker_sandbox.terminate()

Connecting

from chalkcompute import SandboxClient
import grpc

# Insecure (local dev)
client = SandboxClient("localhost:50051")

# With TLS
creds = grpc.ssl_channel_credentials()
client = SandboxClient("sandbox.example.com:443", credentials=creds)

# As a context manager
with SandboxClient("localhost:50051") as client:
    ...

Rotating workload identity

The SDK can use a directly usable Chalk JWT from a rotating token file instead of a client ID and secret:

export CHALK_WEB_IDENTITY_TOKEN_FILE=/var/run/secrets/chalk/identity-token
export CHALK_API_SERVER=https://api.chalk.ai

Each SDK client caches the token for the shorter of one hour or half of the token's remaining lifetime from its exp claim, then re-reads the file on its next authenticated operation. Tokens without exp use the one-hour limit. Changing the configured file path bypasses the cache. The JWT's environment_id claim selects the environment unless CHALK_ENVIRONMENT or CHALK_ENVIRONMENT_ID is set explicitly. Queued function calls additionally require CHALK_GRPC_ENGINE, because identity JWTs do not contain engine-routing data.

Workload identity federation

Use the authenticated Connect client to mint a short-lived OIDC token for a third-party workload identity provider. For example, with Snowflake configured to trust Chalk's issuer and JWKS:

from chalkcompute import ConnectClient

token = ConnectClient().get_workload_identity_token("snowflakecomputing.com")

The token is scoped to the active Chalk environment. Its audience is the value passed to get_workload_identity_token, and its signing key is published by the Chalk API server at /.well-known/jwks.json.

Evaluations

Create a reusable evaluation by pinning a completed dataset revision to a deployed task function and one or more deployed scorer functions. A dataset name resolves to its latest revision when the evaluation is created, and the resolved revision is then pinned. Function parameters bind to dataset columns by name; scorers may additionally declare output and trace parameters.

import chalkcompute as cc

dataset = cc.DatasetRevisionRef(
    dataset_name="support_goldens",
)

@cc.function(name="support-answer")
def answer(input: str) -> str:
    return call_support_model(input)

@cc.function(name="response-quality")
def response_quality(
    input: str, output: str
) -> list[cc.EvaluationScorerResult]:
    brand_score, conciseness_score, details = score_response(
        input=input, output=output
    )
    return [
        cc.EvaluationScorerResult(
            name="brand-alignment",
            score=brand_score,
            metadata={"details": details},
        ),
        cc.EvaluationScorerResult(
            name="conciseness",
            score=conciseness_score,
        ),
    ]

evaluation = cc.Evaluation.create(
    "Customer Support Chatbot",
    dataset=dataset,
    task=answer,
    scorers=[response_quality],
    metadata={"suite": "release"},
)

run = evaluation.run(metadata={"git_sha": "abc123"}).wait()
print(run.status, run.result_dataset)

@cc.function deploys synchronously, so the direct handles above already have immutable function version IDs by the time Evaluation.create runs. Existing functions can instead be attached by reference:

evaluation = cc.Evaluation.create(
    "Customer Support Chatbot",
    dataset=dataset,
    task=cc.RemoteFunction.from_name("support-answer"),
    scorers=[cc.RemoteFunction.from_id("fn_brand_alignment_v2")],
)

RemoteFunction.from_name resolves the latest version at lookup time; evaluation creation then pins that version. An imperative RemoteFunction must be explicitly deployed before it can be used in an evaluation.

Scorers may return a numeric scalar, one EvaluationScorerResult, or a list[EvaluationScorerResult]. Returning a list lets one scorer emit multiple named metrics from shared computation; an empty list emits no scores for that row. Each result carries a required metric name, a normalized score, and optional row-level JSON-serializable metadata. The return annotation declares the Arrow schema, and the class-level Arrow hooks handle nested serialization, so the generic function runtime does not need scorer-specific behavior.

Sandbox lifecycle

# Create with resource limits
sandbox = client.create(
    image="ubuntu:latest",
    cpu="2",
    memory="4Gi",
    env={"DEBIAN_FRONTEND": "noninteractive"},
    chalk_identity=True,
)

# List all sandboxes
for info in client.list():
    print(f"{info.id} {info.status} {info.name}")

# Get a handle to an existing sandbox by ID
existing_sandbox = client.get(id="550e8400-e29b-41d4-a716-446655440000")

# Fetch info from server
info = existing_sandbox.refresh()  # force re-fetch
print(info.status)

# Terminate, optionally with a grace period
sandbox.terminate()
existing_sandbox.terminate(grace_period_seconds=30)

Set chalk_identity=True to give the sandbox a platform-managed Chalk identity. The sandbox receives CHALK_WEB_IDENTITY_TOKEN_FILE and the Chalk API/environment settings it needs to authenticate without caller credentials being copied into the workload.

Executing commands

Run and wait

result = sandbox.exec("ls", "-la", "/tmp")
for line in result.stdout:
    print(line)
for line in result.stderr:
    print(f"ERR: {line}")
print(f"exit code: {result.exit_code}")

# Or get the full text at once
print(result.stdout_text)
print(result.stderr_text)

Stream output in real time

for event in sandbox.exec_stream("make", "build", workdir="/app"):
    if event.stdout:
        print(event.stdout, end="")
    if event.stderr:
        print(event.stderr, end="", file=sys.stderr)
    if event.is_exited:
        print(f"\nDone: exit code {event.exit_code}")

Interactive processes (stdin + signals)

process = sandbox.exec_start("bash")

process.write_stdin("echo hello\n")
process.write_stdin("exit\n")
process.close_stdin()

for event in process.output():
    if event.stdout:
        print(event.stdout, end="")

Send signals to running processes:

import signal

process = sandbox.exec_start("sleep", "300")
process.send_signal(signal.SIGTERM)
result = process.wait()

Options

All exec methods accept the same keyword arguments:

result = sandbox.exec(
    "python", "train.py",
    workdir="/app",                     # working directory
    timeout_secs=3600,                  # kill after 1 hour
    env={"CUDA_VISIBLE_DEVICES": "0"},  # environment variables
)

Examples

Clone a GitHub repo into a sandbox

from chalkcompute import SandboxClient

client = SandboxClient.from_env()
sandbox = client.create(image="ubuntu:latest")

# Install git
sandbox.exec("apt-get", "update")
sandbox.exec("apt-get", "install", "-y", "git")

# Clone
result = sandbox.exec(
    "git", "clone", "https://github.com/chalk-ai/chalk.git", "/workspace/chalk"
)
if result.exit_code != 0:
    print(f"Clone failed: {result.stderr_text}")
else:
    # List what we got
    result = sandbox.exec("ls", "-la", "/workspace/chalk")
    for line in result.stdout:
        print(line)

sandbox.terminate()
client.close()

Spawn an OpenCode agent in a sandbox

OpenCode is a terminal-based AI coding agent. You can run it inside a sandbox to give it an isolated environment to work in.

from chalkcompute import SandboxClient

client = SandboxClient.from_env()
sandbox = client.create(
    image="ubuntu:latest",
    cpu="2",
    memory="4Gi",
    env={
        "ANTHROPIC_API_KEY": "sk-ant-...",
    },
)

# Install dependencies
sandbox.exec("apt-get", "update")
sandbox.exec("apt-get", "install", "-y", "git", "curl", "build-essential")

# Install Go (opencode is a Go binary)
sandbox.exec("bash", "-c", "curl -fsSL https://go.dev/dl/go1.26.3.linux-amd64.tar.gz | tar -C /usr/local -xz")
sandbox.exec("bash", "-c", "echo 'export PATH=$PATH:/usr/local/go/bin:/root/go/bin' >> /root/.bashrc")

# Install opencode
sandbox.exec("bash", "-c", "export PATH=$PATH:/usr/local/go/bin:/root/go/bin && go install github.com/opencode-ai/opencode@latest")

# Clone a repo to work on
sandbox.exec("git", "clone", "https://github.com/your-org/your-repo.git", "/workspace/repo")

# Run opencode non-interactively with a prompt
result = sandbox.exec(
    "bash", "-c",
    "export PATH=$PATH:/usr/local/go/bin:/root/go/bin && cd /workspace/repo && opencode -p 'fix the failing tests in pkg/auth'",
    timeout_secs=600,
)
print(result.stdout_text)

# Or run it interactively and feed it commands
process = sandbox.exec_start(
    "bash", "-c",
    "export PATH=$PATH:/usr/local/go/bin:/root/go/bin && cd /workspace/repo && opencode",
)

# Stream its output
for event in process.output():
    if event.stdout:
        print(event.stdout, end="")
    if event.stderr:
        print(event.stderr, end="", file=sys.stderr)
    if event.is_exited:
        break

sandbox.terminate()
client.close()

Long-running build with real-time output

from chalkcompute import SandboxClient

client = SandboxClient.from_env()
sandbox = client.create(image="node:25-trixie-slim")

sandbox.exec("git", "clone", "https://github.com/your-org/frontend.git", "/app")
sandbox.exec("npm", "install", workdir="/app")

# Stream the build output as it happens
for event in sandbox.exec_stream("npm", "run", "build", workdir="/app"):
    if event.stdout:
        print(event.stdout, end="")
    if event.stderr:
        print(event.stderr, end="", file=sys.stderr)
    if event.is_exited and event.exit_code != 0:
        print(f"Build failed with exit code {event.exit_code}")

sandbox.terminate()
client.close()

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

chalkcompute-2.9.4.tar.gz (323.3 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

chalkcompute-2.9.4-cp314-cp314-musllinux_1_2_x86_64.whl (5.5 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

chalkcompute-2.9.4-cp314-cp314-manylinux_2_28_x86_64.whl (5.1 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ x86-64

chalkcompute-2.9.4-cp314-cp314-macosx_11_0_arm64.whl (4.7 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

chalkcompute-2.9.4-cp313-cp313-musllinux_1_2_x86_64.whl (5.5 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

chalkcompute-2.9.4-cp313-cp313-manylinux_2_28_x86_64.whl (5.1 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

chalkcompute-2.9.4-cp313-cp313-macosx_11_0_arm64.whl (4.6 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

chalkcompute-2.9.4-cp312-cp312-musllinux_1_2_x86_64.whl (5.5 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

chalkcompute-2.9.4-cp312-cp312-manylinux_2_28_x86_64.whl (5.1 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

chalkcompute-2.9.4-cp312-cp312-macosx_11_0_arm64.whl (4.6 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

chalkcompute-2.9.4-cp311-cp311-musllinux_1_2_x86_64.whl (5.5 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

chalkcompute-2.9.4-cp311-cp311-manylinux_2_28_x86_64.whl (5.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

chalkcompute-2.9.4-cp311-cp311-macosx_11_0_arm64.whl (4.7 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

File details

Details for the file chalkcompute-2.9.4.tar.gz.

File metadata

  • Download URL: chalkcompute-2.9.4.tar.gz
  • Upload date:
  • Size: 323.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for chalkcompute-2.9.4.tar.gz
Algorithm Hash digest
SHA256 23c663ad08674589e7ba695341a4ef34284b0c9b1fbc733451d47fc909e2ac88
MD5 8900cf91b496e80e404504b9aa3ac876
BLAKE2b-256 087b5e8d1da309b00bdd70ffe5fbcc336c3144d396aae7b35598c78c28a2bdae

See more details on using hashes here.

Provenance

The following attestation bundles were made for chalkcompute-2.9.4.tar.gz:

Publisher: release.yml on chalk-ai/chalk-sandbox-sdk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file chalkcompute-2.9.4-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for chalkcompute-2.9.4-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 30a809096171bab6089da0bdc80e9ad2bab11b6011f35a0eb392cd1c690f05a6
MD5 ebfe81db3714dd713f1aec45abc99d39
BLAKE2b-256 e2ce74f75e77732905aaf8f1d62440deca5d273eefd46cb34267c5a0b36d2a20

See more details on using hashes here.

Provenance

The following attestation bundles were made for chalkcompute-2.9.4-cp314-cp314-musllinux_1_2_x86_64.whl:

Publisher: release.yml on chalk-ai/chalk-sandbox-sdk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file chalkcompute-2.9.4-cp314-cp314-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for chalkcompute-2.9.4-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4ed0419f5c482283b22c892aef9fe13e1f1fef3cd43bc7a62c9150a5f0b67ace
MD5 07462d97690a0a964d53292f8c2f31a2
BLAKE2b-256 d8380ccc08f73a05669683bf039e2b31645806067662a916804d7af5dfdcebbd

See more details on using hashes here.

Provenance

The following attestation bundles were made for chalkcompute-2.9.4-cp314-cp314-manylinux_2_28_x86_64.whl:

Publisher: release.yml on chalk-ai/chalk-sandbox-sdk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file chalkcompute-2.9.4-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for chalkcompute-2.9.4-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a10234457d60d63e414c1ffc5552bb08e65ad042c1180d0d7ed161094e0cc3db
MD5 9a51057a47e598bd10b84c01a4d041f8
BLAKE2b-256 40dc0c2dcd6d20a0254c5d0c66e07a7ac8a4bcb74a81d398453c496d13710363

See more details on using hashes here.

Provenance

The following attestation bundles were made for chalkcompute-2.9.4-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: release.yml on chalk-ai/chalk-sandbox-sdk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file chalkcompute-2.9.4-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for chalkcompute-2.9.4-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e301bf695162a0c4a96846987eddd2cd9f195d559b2f05db1f964c2dc9903391
MD5 221dc7fa58eea0c146a03702e97384ae
BLAKE2b-256 fce5d491060a011fdf7588a000408b6ec40b6a0fcb2dd17b4cc42d9deb1c2f82

See more details on using hashes here.

Provenance

The following attestation bundles were made for chalkcompute-2.9.4-cp313-cp313-musllinux_1_2_x86_64.whl:

Publisher: release.yml on chalk-ai/chalk-sandbox-sdk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file chalkcompute-2.9.4-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for chalkcompute-2.9.4-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ed22f7bf46cddef6e5d1ff39e586c5b1e365fba2f7b3f99433208b156aa09c65
MD5 691119c968dc28080fe636f1192b716d
BLAKE2b-256 c32e7d441bab7dd3b9c8991642e39f6a4e7423dd0b7313d63fe1fda63f865d59

See more details on using hashes here.

Provenance

The following attestation bundles were made for chalkcompute-2.9.4-cp313-cp313-manylinux_2_28_x86_64.whl:

Publisher: release.yml on chalk-ai/chalk-sandbox-sdk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file chalkcompute-2.9.4-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for chalkcompute-2.9.4-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3270b606008d45afead85ffebf7aaa4f9f0306a060edc1650943ea761245b8a2
MD5 f2578ff3fce69eab1ea43415c9f6e64c
BLAKE2b-256 fb6a19fa8c42776a00698246a862a7b15802d3f8bbd266e47ac393f59a9cf61d

See more details on using hashes here.

Provenance

The following attestation bundles were made for chalkcompute-2.9.4-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: release.yml on chalk-ai/chalk-sandbox-sdk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file chalkcompute-2.9.4-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for chalkcompute-2.9.4-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 392555bbc3e52b236efd23e4e046a1e6bbced59033d6df07c0ceb967cf89d2a4
MD5 3a0352941cb7d55000ab89140189d8f1
BLAKE2b-256 3c4c2cbaadc5089eb785b9b6643d3e324b151c5c08bf5e986d682be2c56bb18b

See more details on using hashes here.

Provenance

The following attestation bundles were made for chalkcompute-2.9.4-cp312-cp312-musllinux_1_2_x86_64.whl:

Publisher: release.yml on chalk-ai/chalk-sandbox-sdk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file chalkcompute-2.9.4-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for chalkcompute-2.9.4-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 efffe22d10a938e3a89907abbcc9387da9df2e42bcda98f5551085a527e60adc
MD5 5ae8a6e67107c8c5310ad22ffd5902ad
BLAKE2b-256 7755d7a40483346efc0040c76a825a970e68cee9dae502c781b6f8fa44998831

See more details on using hashes here.

Provenance

The following attestation bundles were made for chalkcompute-2.9.4-cp312-cp312-manylinux_2_28_x86_64.whl:

Publisher: release.yml on chalk-ai/chalk-sandbox-sdk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file chalkcompute-2.9.4-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for chalkcompute-2.9.4-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1d6aed8c5e2d1c682f47aa3f7609d2d69829051c403baccbda223fbdaa619bfb
MD5 fc87864447c96cc3c566840d2c6d49ab
BLAKE2b-256 d148c559733ec7a107c8882394aca20393fed9950114c1cbdf99716808ea3edd

See more details on using hashes here.

Provenance

The following attestation bundles were made for chalkcompute-2.9.4-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: release.yml on chalk-ai/chalk-sandbox-sdk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file chalkcompute-2.9.4-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for chalkcompute-2.9.4-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 8d77ee8f8bc8ca35a28bdb5058cdab9f1d2124d231cd3c16f3012104570de9bb
MD5 006d16bf95205ffad1d6795115fbcbc5
BLAKE2b-256 6e5133699f7c9c73cc819ce7ebb157849febe887413bd83c43ea379071ab4ec8

See more details on using hashes here.

Provenance

The following attestation bundles were made for chalkcompute-2.9.4-cp311-cp311-musllinux_1_2_x86_64.whl:

Publisher: release.yml on chalk-ai/chalk-sandbox-sdk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file chalkcompute-2.9.4-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for chalkcompute-2.9.4-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 14a485b155200379254f0c599dcd1b27ddbba85344d1144c91cb26942098bf20
MD5 9eaf31d52556291699bd77435f5b9182
BLAKE2b-256 11226f189dd877be0fd6632209044b77e58f8a40267402b3b2178a898cf30f47

See more details on using hashes here.

Provenance

The following attestation bundles were made for chalkcompute-2.9.4-cp311-cp311-manylinux_2_28_x86_64.whl:

Publisher: release.yml on chalk-ai/chalk-sandbox-sdk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file chalkcompute-2.9.4-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for chalkcompute-2.9.4-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a6674cadecced01ac54ce30d7dac324238185e800082d88e7213ecf02ccae813
MD5 afe6b79ac9ed80c70772d03aa669da23
BLAKE2b-256 ab5181b64b9b3644189fe54b66893c2028cbc597b96a2d381f7b75a72b88b981

See more details on using hashes here.

Provenance

The following attestation bundles were made for chalkcompute-2.9.4-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: release.yml on chalk-ai/chalk-sandbox-sdk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

2.11.8

13 files

2.11.7

13 files

2.11.6

13 files

2.11.5

13 files

2.11.4

13 files

2.11.3

13 files

2.11.2

13 files

2.11.1

13 files

2.9.8

13 files

2.9.7

13 files

2.9.6

13 files

2.9.5

13 files

This release

2.9.4 This release

13 files

2.9.3

13 files

2.9.2

13 files

2.9.1

13 files

2.9.0

13 files

2.8.1

13 files

2.8.0

13 files

2.7.0

13 files

2.6.2

13 files

2.6.1

9 files

2.5.3

9 files

2.5.2

9 files

2.5.1

9 files

2.5.0

9 files

2.4.1

9 files

2.3.9

9 files

2.3.8

9 files

2.3.7

9 files

2.3.6

9 files

2.3.5

9 files

2.3.4

9 files

2.3.3

9 files

2.3.2

9 files

2.3.1

9 files

2.3.0

9 files

2.2.0

9 files

2.1.8

9 files

2.1.3

9 files

2.1.2

9 files

2.1.1

9 files

2.1.0

9 files

2.0.1

9 files

2.0.0

9 files

1.5.17

9 files

1.5.16

9 files

1.5.15

9 files

1.5.14

9 files

1.5.13

9 files

1.5.12

9 files

1.5.11

9 files

1.5.10

9 files

1.5.9

5 files

1.5.6

5 files

1.5.5

2 files

1.5.3

2 files

1.5.2

2 files

1.5.1

2 files

1.5.0

2 files

1.4.2

2 files

1.4.1

2 files

1.4.0

2 files

1.3.0

2 files

1.2.0

2 files

1.1.1

2 files

1.1.0

2 files

1.0.0

2 files

0.1.1

2 files

0.1.0

2 files

0.0.0

9 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