Skip to main content

OuterProduct SDK

outerproduct-sdk owns both the caller-facing client and the transport-independent capability contract used by managed compute. Client composes workflows, container images, environments, Flight SQL, Unity Catalog, and temporary-credential vending behind one authenticated lifecycle. It can be passed directly to the SDK's store_from_* functions.

download_s3_prefix(client, s3_prefix, target_path) copies a UC-governed S3 prefix into a local directory with vended credentials. No Files RPC or provider-native bucket mount is involved.

The published wheel is self-contained with respect to this monorepo. It vendors the Unity Catalog client and the SDK's internal sandbox and serialization packages; only third-party libraries are installed as separate dependencies.

Unity Catalog and Flight SQL are direct client capabilities:

async with op.init() as client:
    catalog = client.uc
    with client.sql.cursor() as cursor:
        cursor.execute("SELECT 1")
        row = cursor.fetchone()

UC-governed object storage

Use the SDK's store_from_* functions to create refresh-aware stores for UC volumes, UC tables, or raw cloud paths:

import outerproduct_sdk as op

client = op.init()

volume_store = op.store_from_volume(
    client, "main.default.files", sub_path="incoming"
)
table_store = op.store_from_table(
    client, "main.default.events"
)
s3_store = op.store_from_path(
    client,
    "s3://example-bucket/datasets/events",
    region="us-east-1",
)

Libraries with their own S3 reader can use the client's temporary-credential methods directly. For Polars, vend credentials from its callback so a lazy scan can refresh an expiring lease:

import polars as pl

s3_prefix = "s3://example-bucket/datasets/events"


def credentials() -> pl.CredentialProviderFunctionReturn:
    credential, _ = client.temporary_path_credential(s3_prefix, "read")
    aws = credential.aws_temp_credentials
    if aws is None:
        raise RuntimeError("Unity Catalog did not vend AWS credentials")

    return {
        "aws_access_key_id": aws.access_key_id,
        "aws_secret_access_key": aws.secret_access_key,
        "aws_session_token": aws.session_token,
    }, credential.expiration_time // 1_000


frame = pl.scan_parquet(
    f"{s3_prefix}/*.parquet",
    credential_provider=credentials,
    storage_options={"aws_region": "us-east-1"},
).collect()

Unity Catalog reports expiration in milliseconds; Polars expects Unix seconds. The complete runnable version is examples/uc_storage.py.

Run functions in an existing environment:

import outerproduct_sdk as op


async def main() -> None:
    client = op.init()
    environment = await client.environments.get(
        "environments/00000000-0000-0000-0000-000000000000"
    )

    @environment.function()
    def child(value: int, *, client):
        return value * 2

    @environment.function()
    async def parent(value: int, *, client):
        return await client.run(child, value)

    result = await client.run(parent, 21)

Release files for outerproduct-sdk 0.1.0

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

Built distributions (wheels)

Table of built distributions (wheels) for outerproduct-sdk 0.1.0
File
outerproduct_sdk-0.1.0-cp39-abi3-win_amd64.whl CPython 3.9 abi3 Windows x86-64 Details
outerproduct_sdk-0.1.0-cp39-abi3-manylinux_2_28_x86_64.whl CPython 3.9 abi3 Linux glibc 2.28+ x86-64 Details
outerproduct_sdk-0.1.0-cp39-abi3-manylinux_2_28_aarch64.whl CPython 3.9 abi3 Linux glibc 2.28+ ARM64 Details
outerproduct_sdk-0.1.0-cp39-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl CPython 3.9 abi3 macOS 10.12+ x86-64, macOS 10.12+ universal2 (ARM64, x86-64), macOS 11.0+ ARM64 Details

Total release size: 16.6 MB

Release files / outerproduct_sdk-0.1.0-cp39-abi3-win_amd64.whl

Download URL outerproduct_sdk-0.1.0-cp39-abi3-win_amd64.whl
Size 3.7 MB
Tags CPython 3.9 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
f0d5705b0aa045358c8edeeb9dbfa12d1ae0b40bd96221b2f866a4f0be8d8686
BLAKE2b-256 checksum
How to use checksums
52b4fb6e29112c2bbdbdda8f24f9ed52c52d0634d6308781e45399fa61cb9a4a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.17 {"installer":{"name":"uv","version":"0.11.17","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 / outerproduct_sdk-0.1.0-cp39-abi3-manylinux_2_28_x86_64.whl

Download URL outerproduct_sdk-0.1.0-cp39-abi3-manylinux_2_28_x86_64.whl
Size 3.4 MB
Tags CPython 3.9 Linux glibc 2.28+ x86-64 abi3
SHA-256 checksum
How to use checksums
eee60296633801e760ed4e23557d8e93d2a32503408b99bd19877e439d03570d
BLAKE2b-256 checksum
How to use checksums
cedc7059ad9a88a863e0f3ea37159ad0d979feaf0efd2d1d8099d3e1bcacc7b0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.17 {"installer":{"name":"uv","version":"0.11.17","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 / outerproduct_sdk-0.1.0-cp39-abi3-manylinux_2_28_aarch64.whl

Download URL outerproduct_sdk-0.1.0-cp39-abi3-manylinux_2_28_aarch64.whl
Size 3.2 MB
Tags CPython 3.9 Linux glibc 2.28+ ARM64 abi3
SHA-256 checksum
How to use checksums
586fca35c448465e4728e123ca5c7e0af3866317b68ff06896c993bcfd54207d
BLAKE2b-256 checksum
How to use checksums
98f2126e4f06eee33499d5107f8c3db9509d9f24b6d52af1f86388634d0ba314
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.17 {"installer":{"name":"uv","version":"0.11.17","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 / outerproduct_sdk-0.1.0-cp39-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl

Download URL outerproduct_sdk-0.1.0-cp39-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Size 6.3 MB
Tags CPython 3.9 abi3 macOS 10.12+ universal2 (ARM64, x86-64) macOS 10.12+ x86-64 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
71a2810a94634fe570a721232bdfe3ffd6814f2368d2c65af0cde98f1c4cd749
BLAKE2b-256 checksum
How to use checksums
b22e97eb63a7bd093c2a17ec015768f04057d7e4699db2071b84d9ec38e9e17b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.17 {"installer":{"name":"uv","version":"0.11.17","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 history Release notifications | RSS feed

0.1.17

7 release files

0.1.16

7 release files

0.1.12

6 release files

0.1.11

6 release files

0.1.10

6 release files

0.1.9

7 release files

0.1.7

5 release files

0.1.5

4 release files

0.1.4

4 release files

0.1.3

4 release files

This release

0.1.0 This release

4 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