Skip to main content

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)

Source distribution for outerproduct-sdk 0.1.10
File Size Uploaded
outerproduct_sdk-0.1.10.tar.gz 1.2 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for outerproduct-sdk 0.1.10
File
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}

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

This release

0.1.10 This release

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

0.1.0

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