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

# Select an inclusive Delta Change Data Feed range. Start at 0 on the first sync.
changes = table.changes(starting_version=0)
change_df = changes.to_pandas()
change_sdf = changes.to_spark(spark)
latest = table.latest_changes()
latest_df = latest.to_pandas()
latest_sdf = latest.to_spark(spark)

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

Change Data Feed reads accept either starting_version with an optional ending_version, or starting_timestamp with an optional ending_timestamp. Ranges are inclusive and return the standard _change_type, _commit_version, and _commit_timestamp columns. Persist the highest commit version you apply, then begin the next read at that value plus one. For inspection rather than cursor-based synchronization, latest_changes().to_pandas() and latest_changes().to_spark(spark) read only the newest available table commit.

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

Metadata

Release files for xoople-sdk 0.4.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.4.0
File Size Uploaded Provenance
xoople_sdk-0.4.0.tar.gz 59.2 kB Without provenance Details

Built distribution (wheel)

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

Total release size: 125.4 kB

Release files / xoople_sdk-0.4.0.tar.gz

Download URL xoople_sdk-0.4.0.tar.gz
Size 59.2 kB
Tags Source
SHA-256 checksum
How to use checksums
a68204731f793d6230ee41c3779c1ad3e9220228b56268ea1e42ac2699ab3b25
BLAKE2b-256 checksum
How to use checksums
81106f12a37b3a21ad71ddc78ff212d9e7308459e01bd2264003f8682358a375
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.11 {"installer":{"name":"uv","version":"0.12.11","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.4.0-py3-none-any.whl

Download URL xoople_sdk-0.4.0-py3-none-any.whl
Size 66.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0ecd0f7f9739756a694c1452c76103267559bd5b97d6b8089e8cd90d06ede941
BLAKE2b-256 checksum
How to use checksums
0231077b0b0aecca7ceddfe18f20d35100dc5c004d6be08772042d7fb1f7dec2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.11 {"installer":{"name":"uv","version":"0.12.11","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.4.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