OuterProduct SDK
outerproduct-sdk is the sole public Python package for OuterProduct. It owns
the natural workspace API, the recovered workflow API, runtime serialization,
Files, Unity Catalog adaptation, Flight SQL, and UC-governed object storage.
Generated clients are private transport details inside one aggregate native
extension and are not re-exported from the package root.
Natural workspace API
An API token selects one workspace, so workspace() takes no arguments.
from outerproduct_sdk import OuterProductClient, WorkspaceClient
client = OuterProductClient("token")
workspace = client.workspace()
created = await workspace.environments.create(
"containerImages/00000000-0000-0000-0000-000000000001",
cpu=1,
)
environment = workspace.get_runtime_handle(created.name)
async def add(
runtime: WorkspaceClient,
left: int,
right: int,
) -> int:
return left + right
run = await environment.submit(add, 20, 22)
result = await environment.compute(add, 20, 22)
await workspace.files.write("results/answer.txt", str(result).encode())
answer = await workspace.files.read("results/answer.txt")
Environments are immutable snapshots. Their collection implements the full
server lifecycle: create(), get(), and list(). submit() returns after
the scheduler acknowledges a durable computation. compute() submits and
polls to a terminal state, yielding to asyncio between polls. Natural computed
functions are async and receive their runtime workspace as the first positional
parameter.
Recovered workflow API
The prior attached-function workflow remains available. It shares the same private transport and value codec as the natural API.
import outerproduct_sdk as op
async def main() -> None:
async with op.init() as client:
environment = client.execution.environment(
"environments/00000000-0000-0000-0000-000000000000"
).get()
@environment.fn
def child(value: int, *, client):
return value * 2
@environment.fn
async def parent(value: int, *, client):
return await client.run(child, value)
result = await client.run(parent, 21)
Client also exposes Unity Catalog CRUD as client.uc and through direct
delegation, temporary table/volume/path/model credentials, lazy client.sql,
and the newer client.workspace() API. JSON literals, objects implementing the
SDK serialization contract, and Pydantic models can cross workflow boundaries.
Storage boundaries
workspace.files is the workspace-scoped durable Files service. Environment
volumes map Unity Catalog volumes to container paths and are materialized for
each managed invocation; they are not a provider-native POSIX mount or a
write-back filesystem.
Use store_from_url, store_from_volume, store_from_table, or
store_from_path for refresh-aware UC-governed object stores.
download_s3_prefix(client, prefix, target) securely streams such a prefix
into a local directory with bounded concurrency.
Packaging
The published distribution is one wheel with one native extension. Internal
serialization and UC object-store Python sources are vendored under
outerproduct_sdk._vendor; the wheel has no dependency on separately
published OuterProduct client packages. Third-party runtime dependencies remain
ordinary wheel dependencies.
Release files for outerproduct-sdk 0.1.9
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| outerproduct_sdk-0.1.9.tar.gz | 1.2 MB | Details |
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| outerproduct_sdk-0.1.9-cp314-cp314t-manylinux_2_28_x86_64.whl | CPython 3.14 | CPython 3.14 free-threading | Linux glibc 2.28+ x86-64 | Details |
| outerproduct_sdk-0.1.9-cp314-cp314t-manylinux_2_28_aarch64.whl | CPython 3.14 | CPython 3.14 free-threading | Linux glibc 2.28+ ARM64 | Details |
| outerproduct_sdk-0.1.9-cp314-cp314t-macosx_15_0_arm64.whl | CPython 3.14 | CPython 3.14 free-threading | macOS 15.0+ ARM64 | Details |
| outerproduct_sdk-0.1.9-cp312-abi3-manylinux_2_28_x86_64.whl | CPython 3.12 | abi3 | Linux glibc 2.28+ x86-64 | Details |
| outerproduct_sdk-0.1.9-cp312-abi3-manylinux_2_28_aarch64.whl | CPython 3.12 | abi3 | Linux glibc 2.28+ ARM64 | Details |
| outerproduct_sdk-0.1.9-cp312-abi3-macosx_15_0_arm64.whl | CPython 3.12 | abi3 | macOS 15.0+ ARM64 | Details |
Total release size: 26.1 MB
Release files / outerproduct_sdk-0.1.9.tar.gz
| Download URL | outerproduct_sdk-0.1.9.tar.gz |
|---|---|
| Size | 1.2 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9b3fd54b02716f525f79f8980542445dfd406493e7db694cf32ad4ac4028f30c
|
|
BLAKE2b-256 checksum How to use checksums |
e04ba14db837eaf3937da299aba08ffa690f63fe747e4a659f8efb5e8a43f8c2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / outerproduct_sdk-0.1.9-cp314-cp314t-manylinux_2_28_x86_64.whl
| Download URL | outerproduct_sdk-0.1.9-cp314-cp314t-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 4.3 MB |
| Tags | CPython 3.14 CPython 3.14 free-threading Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
eaea45a25aedf86f4851eb678dfd774341d4e4a8074fca4fa72c6aac6c05a239
|
|
BLAKE2b-256 checksum How to use checksums |
244941bfa748f094f4eb492ebdba9754610435d78ede1b5432079eaa49045463
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / outerproduct_sdk-0.1.9-cp314-cp314t-manylinux_2_28_aarch64.whl
| Download URL | outerproduct_sdk-0.1.9-cp314-cp314t-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 4.2 MB |
| Tags | CPython 3.14 CPython 3.14 free-threading Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
d877f58aa69c89cd98e5c28d686028d1d264a99ef0004e0ac732d14057effea8
|
|
BLAKE2b-256 checksum How to use checksums |
b5fa44685f7f0c51a97860511f4489bd9112ec800a3fb2aacd7f3007ba49e713
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / outerproduct_sdk-0.1.9-cp314-cp314t-macosx_15_0_arm64.whl
| Download URL | outerproduct_sdk-0.1.9-cp314-cp314t-macosx_15_0_arm64.whl |
|---|---|
| Size | 4.0 MB |
| Tags | CPython 3.14 CPython 3.14 free-threading macOS 15.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
fc0c81cccd5a361d2a0677d7fb01653abb637c7dacb2862bd6bce25332a8fea8
|
|
BLAKE2b-256 checksum How to use checksums |
c2fdaafc3f83d74a064b4d1726f2707f9b8d548215dcb00bfa83582bd4c3b1d2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / outerproduct_sdk-0.1.9-cp312-abi3-manylinux_2_28_x86_64.whl
| Download URL | outerproduct_sdk-0.1.9-cp312-abi3-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 4.3 MB |
| Tags | CPython 3.12 Linux glibc 2.28+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
0e47105eb54446f21555f4cf06aab4ebf0a5a99200fdfcaf120f1136e3d17a0b
|
|
BLAKE2b-256 checksum How to use checksums |
19a2535f8ec62a3f98cae0ded0a46b722a190f6babcf2167bac0033d366e48f4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / outerproduct_sdk-0.1.9-cp312-abi3-manylinux_2_28_aarch64.whl
| Download URL | outerproduct_sdk-0.1.9-cp312-abi3-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 4.2 MB |
| Tags | CPython 3.12 Linux glibc 2.28+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
60c348807cd9f320bafc4940e87a7e89de4c96908e076fe0f874883a42fc26ca
|
|
BLAKE2b-256 checksum How to use checksums |
3e544aeefdfaf32c2b5fef4a1f3181e5b002e1ee557a4249b2b307698c58747a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / outerproduct_sdk-0.1.9-cp312-abi3-macosx_15_0_arm64.whl
| Download URL | outerproduct_sdk-0.1.9-cp312-abi3-macosx_15_0_arm64.whl |
|---|---|
| Size | 4.0 MB |
| Tags | CPython 3.12 abi3 macOS 15.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
482608d8d86e9dff0f0720e6407c06f61277a3a8e021dcae32585ab38bf67360
|
|
BLAKE2b-256 checksum How to use checksums |
f4a83f1c5da3a3b45d823adc500aa4ad33d0a6020b86cf46cb2a4fc1ca18cc5c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|