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)
| File | Reset | |||
|---|---|---|---|---|
| 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}
|