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.10
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.10.tar.gz | 1.2 MB | Details |
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| outerproduct_sdk-0.1.10-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.10-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.10-cp314-cp314t-macosx_15_0_arm64.whl | CPython 3.14 | CPython 3.14 free-threading | macOS 15.0+ ARM64 | Details |
| outerproduct_sdk-0.1.10-cp312-abi3-manylinux_2_28_x86_64.whl | CPython 3.12 | abi3 | Linux glibc 2.28+ x86-64 | Details |
| outerproduct_sdk-0.1.10-cp312-abi3-manylinux_2_28_aarch64.whl | CPython 3.12 | abi3 | Linux glibc 2.28+ ARM64 | Details |
Total release size: 22.1 MB
Release files / outerproduct_sdk-0.1.10.tar.gz
| Download URL | outerproduct_sdk-0.1.10.tar.gz |
|---|---|
| Size | 1.2 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3a0f60b548d60e8fe8257f2e58cf1ca9f1b670890e7045084f25ac96152a5be3
|
|
BLAKE2b-256 checksum How to use checksums |
651335c02fe499c6ee96eb7fb29c87ab13058b00c9e5589a3c3a6b6a67ba0e77
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.1 {"installer":{"name":"uv","version":"0.12.1","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.10-cp314-cp314t-manylinux_2_28_x86_64.whl
| Download URL | outerproduct_sdk-0.1.10-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 |
3274e1c28e1af700eebcde7426710198b19cc996262dc7fdf110c3ad6146f42a
|
|
BLAKE2b-256 checksum How to use checksums |
bca5bbe3970d11e1a7b80b65b7441b84e4b9932ddb1ddbb92b68dd25e7c49757
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.1 {"installer":{"name":"uv","version":"0.12.1","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.10-cp314-cp314t-manylinux_2_28_aarch64.whl
| Download URL | outerproduct_sdk-0.1.10-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 |
00eb16e42715dee9924dc5ad4be17880c261989c76d43b66ad1e4fbf097d2b79
|
|
BLAKE2b-256 checksum How to use checksums |
0df1bb7ac5847365f4aec83d107437ae99e3b4cea58d5601e1e5acf193fa2f00
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.1 {"installer":{"name":"uv","version":"0.12.1","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.10-cp314-cp314t-macosx_15_0_arm64.whl
| Download URL | outerproduct_sdk-0.1.10-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 |
910a8d0b9a731f57f4f31ab33210da2631372a29705dbaa9ea71320546f72780
|
|
BLAKE2b-256 checksum How to use checksums |
97ab4c5710555b07609a1fd97b103e6586d51f99d623bb6347795d2e50d7699c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.1 {"installer":{"name":"uv","version":"0.12.1","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.10-cp312-abi3-manylinux_2_28_x86_64.whl
| Download URL | outerproduct_sdk-0.1.10-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 |
311a367bc5e946c3b3bcdfb840ee32a64aa1de4b87fca9ee6b45858af22c6031
|
|
BLAKE2b-256 checksum How to use checksums |
a18aec3c173598c80a63e97f433ec63369b204d1edff4d32320834867d33fcb2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.1 {"installer":{"name":"uv","version":"0.12.1","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.10-cp312-abi3-manylinux_2_28_aarch64.whl
| Download URL | outerproduct_sdk-0.1.10-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 |
17b1c2317244e0e501fc4efa18f9a6a96ef1377223162792f65d478d150b2f67
|
|
BLAKE2b-256 checksum How to use checksums |
361cec39df27a0a7ad051422f33b7d454a255ccc643874f2ba636d890cc68fae
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.1 {"installer":{"name":"uv","version":"0.12.1","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}
|