Skip to main content

xoople-sdk

Official Python SDK for the Xoople Products API.

from xoople.sdk import Config, XoopleClient, StaticToken, models

client = XoopleClient.from_credentials(
    "https://api.xoople.com", StaticToken("...")
)
# Or pass the complete transport configuration directly:
# client = XoopleClient(Config.from_env())

estimate = client.analyses.estimate(request)
analysis = client.analyses.create(request)

# `list` returns a paginator: iterate it for items across every page.
for run in client.analyses.runs.list(analysis.uid):
    print(run.state)

# Sub-resources take the parent analysis uid:
output = client.analyses.outputs.get(analysis.uid, output_uid)
access = client.analyses.outputs.generate_access_url(analysis.uid, output_uid, ttl_seconds=900)

# A table output resolves to a handle that reads itself:
table = client.table(analysis.uid)          # or client.table(uid, output=output_uid)
print(table.shared)                         # measures, grid, size, created time
df = table.to_pandas()                      # pip install "xoople-sdk[sharing]"
sdf = table.to_spark(spark)                 # your session, your connector

# Custom verbs are plain methods:
client.analyses.cancel(analysis.uid)
client.analyses.schedules.pause(analysis.uid, schedule_uid)

# Cross-analysis reads and catalogs are top-level:
client.schedules.list(state=models.ScheduleStatus.ACTIVE)
client.usage.limits()
client.catalog.measures(product="tabular_time_series")

Config.from_env() reads XOOPLE_API_URL and XOOPLE_TOKEN.

Connection profiles

Config.from_profile(path) reads the URL and the credential from one file, for tools that take a file and not an environment:

{
  "version": 1,
  "api_url": "https://gateway.xoople.com",
  "auth": { "type": "bearer", "token": "<token>" },
  "expires_at": "2026-09-30T00:00:00Z"
}

expires_at is optional and is what the issuer stamped. It carries a UTC offset. A profile past it raises ProfileExpiredError on load, not at the first request.

The file is a credential. Keep it out of projects and repositories. Restrict who can read it.

client.table() is the authenticated half of xoople.sdk.sharing, which reads a .share profile with no API credential at all. It downloads one profile for the client's lifetime and removes it on close(), so keep the client open through every read — Spark reads lazily. client.table(uid, profile_path=...) uses a profile you own instead; the SDK never writes or removes that one.

Every failure raises a subclass of xoople.sdk.errors.XoopleError.

Metadata

Release files for xoople-sdk 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for xoople-sdk 0.3.0
File Size Uploaded Provenance
xoople_sdk-0.3.0.tar.gz 50.4 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for xoople-sdk 0.3.0
File Interpreter ABI Platform
xoople_sdk-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 107.5 kB

Release files / xoople_sdk-0.3.0.tar.gz

Download URL xoople_sdk-0.3.0.tar.gz
Size 50.4 kB
Tags Source
SHA-256 checksum
How to use checksums
137415929d65fe7f4434e880c15d48ffde472f432d46a803d1eec3e8de4283be
BLAKE2b-256 checksum
How to use checksums
4431c296f249534704f2126030d6cb030d1d1b114ba605140e387dd19f38bcef
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.9 {"installer":{"name":"uv","version":"0.12.9","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 / xoople_sdk-0.3.0-py3-none-any.whl

Download URL xoople_sdk-0.3.0-py3-none-any.whl
Size 57.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8bb9c68cfce73ab59879a5f396dce0a381907dced7d880af16e25c79d3ad48f3
BLAKE2b-256 checksum
How to use checksums
8136c562693e1237ac1615a3868e195df7ddf52240881ec6e60cdf2c827ab07c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.9 {"installer":{"name":"uv","version":"0.12.9","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}

Security for xoople-sdk 0.3.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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