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.7

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.7
File Size Uploaded
outerproduct_sdk-0.1.7.tar.gz 1.1 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for outerproduct-sdk 0.1.7
File
outerproduct_sdk-0.1.7-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.7-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.7-cp312-abi3-manylinux_2_28_x86_64.whl CPython 3.12 abi3 Linux glibc 2.28+ x86-64 Details
outerproduct_sdk-0.1.7-cp312-abi3-manylinux_2_28_aarch64.whl CPython 3.12 abi3 Linux glibc 2.28+ ARM64 Details

Total release size: 18.0 MB

Release files / outerproduct_sdk-0.1.7.tar.gz

Download URL outerproduct_sdk-0.1.7.tar.gz
Size 1.1 MB
Tags Source
SHA-256 checksum
How to use checksums
9e9560347488e6c4ecd89d65271e75a5bfac666ad1ac8d9f0208630319d91f8f
BLAKE2b-256 checksum
How to use checksums
1439480aa83aa2c9e5d3f8d000880307acf64e7da3b011ff9a1c30e8ee602157
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.7-cp314-cp314t-manylinux_2_28_x86_64.whl

Download URL outerproduct_sdk-0.1.7-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
5388814cc053a4b37ebc40a7f3c18e7f2eb4b1a87f451f13c0ff03011e7db8cf
BLAKE2b-256 checksum
How to use checksums
7022a83996edc79b55cf17e115d42f36d210fcfdf49475699428d8e555febaa6
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.7-cp314-cp314t-manylinux_2_28_aarch64.whl

Download URL outerproduct_sdk-0.1.7-cp314-cp314t-manylinux_2_28_aarch64.whl
Size 4.1 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
7fcc4b0992c77de398aeda7f9e5d735cee84c7d018acb041627fa136f6e4cbf1
BLAKE2b-256 checksum
How to use checksums
1ab81402a72af57f8adbc9cc0f9ee29c425102ca436f7ec51fd9a5358bf13b16
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.7-cp312-abi3-manylinux_2_28_x86_64.whl

Download URL outerproduct_sdk-0.1.7-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
17fd3d4b4a1951cb480367550ae7df257db23f03ec4c5f7ef90c1474484799ca
BLAKE2b-256 checksum
How to use checksums
1393e909919e88d4d75c7953a19f3040845cb5f20357396f7614cf6c75194d2c
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.7-cp312-abi3-manylinux_2_28_aarch64.whl

Download URL outerproduct_sdk-0.1.7-cp312-abi3-manylinux_2_28_aarch64.whl
Size 4.1 MB
Tags CPython 3.12 Linux glibc 2.28+ ARM64 abi3
SHA-256 checksum
How to use checksums
d9b36f84a4075a964a1dc629fafd9ca3e5226030e1237c1036044d88e91fe7ae
BLAKE2b-256 checksum
How to use checksums
4e00b52d9fde87407760073fb795c089b72d0e1e7b3f2710a69f8fdb5199a687
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 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

This release

0.1.7 This release

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