Skip to main content

standcloud-integration

Русская версия: README.ru.md

CI PyPI License: MIT

standcloud-integration — a Python SDK for exporting specialized test reports from the StandCloud service via its public API. An optional command-line interface ships alongside the SDK.

License

MIT

Requirements

Installation

Install the SDK from PyPI:

pip install standcloud-integration

This gives you the library itself — the StandCloudClient client, the typed models, and helpers for building reports — with a minimal set of dependencies and no CLI framework.

If you also need the standcloud-integration command-line tool, install it together with the cli extra:

pip install 'standcloud-integration[cli]'

Authentication

SDK. The client is authenticated only by the key you give it:

client = StandCloudClient(api_key)   # sent as Authorization: Bearer <key>

It does not read the environment or prompt for anything: deciding where to get the key is your application's job. An empty key raises ValueError immediately.

CLI. The standcloud-integration command finds the key itself, in this order:

  1. the --api-key <KEY> option;
  2. the STANDCLOUD_API_KEY environment variable (recommended);
  3. an interactive secure prompt if the first two are not set.
export STANDCLOUD_API_KEY="ak_..."

Prefer passing the key via the environment variable rather than --api-key: command-line arguments can leak into your shell history and the process list.

Using the SDK

A report is a transformation of StandCloud API data into typed report records. TestRun is one of the API's models; a given report works with the models it needs.

from standcloud_integration import StandCloudClient
from standcloud_integration.reports.devices_with_last_stage import (
    DEVICES_WITH_LAST_STAGE_REPORT,
    DevicesWithLastStageRecord,
)

sc_client = StandCloudClient(api_key)
runs = sc_client.get_test_runs(part_number="ACME-CTRL-001 Rev A")

records: list[DevicesWithLastStageRecord] = DEVICES_WITH_LAST_STAGE_REPORT.build(runs)
# records is typed data — plot it, load it into pandas, write your own CSV, …

Each bundled report is a Report pairing a builder with its record type (the full list is standcloud_integration.reports.REPORTS). Writing files is not the SDK's job — it only returns the built report. A complete, runnable example (with a plain-csv writer) is in examples/custom_report.py; to create your own report, see docs/en/writing-reports.md.

The SDK logs through the standard logging module under the standcloud_integration logger and installs no handlers of its own. To surface request traces and warnings, attach your own handler — one logging.basicConfig() call is enough; see writing-reports.md.

Command-line interface (optional)

If the cli extra is installed, the package adds the standcloud-integration command (short alias sci):

standcloud-integration [GLOBAL OPTIONS] <report> [REPORT OPTIONS]

Global options come before the report name:

Option Env variable Default Description
--api-key STANDCLOUD_API_KEY — (prompted) API key. If omitted, taken from the env variable or a secure prompt.
--timeout — 30.0 HTTP request timeout in seconds.
-v, --verbose — off Print DEBUG logs (request traces) to stderr.
-h, --help — — Show help.
--version — — Show the package version.

List reports and options with --help:

standcloud-integration --help

A report's own options come after its name.

Report help:

standcloud-integration devices-with-last-stage --help

Example query:

standcloud-integration \
    devices-with-last-stage \
    --part-number "ACME-CTRL-001 Rev A" \
    -o devices.csv

Reports

For now the package ships a single example report, devices-with-last-stage. Its options and output format are described in docs/en/reports.md.

If you need your own report type, see the development docs.

Development

This project uses the uv package manager.

Linux, macOS:

curl -LsSf https://astral.sh/uv/install.sh | sh

macOS:

brew install uv

Windows

powershell -c "irm https://astral.sh/uv/install.ps1 | iex"

The installer places uv in %USERPROFILE%\.local\bin and adds that directory to PATH, but your current PowerShell session does not know about it yet. Close and reopen the PowerShell window — after that the uv command becomes available. Verify with: uv --version.

If uv is still not found after reopening, add the directory to PATH manually:

$env:Path = "$env:USERPROFILE\.local\bin;$env:Path"

The command above only affects the current session. To make it permanent:

[Environment]::SetEnvironmentVariable("Path", "$env:USERPROFILE\.local\bin;" + [Environment]::GetEnvironmentVariable("Path", "User"), "User")

Set up the environment and run the tooling:

uv venv .venv                   # create the virtual environment
source .venv/bin/activate        # activate it
uv sync --group dev              # install the package (with the cli extra) + dev tools
uv run standcloud-integration --help   # run the CLI from the source checkout
uv run pytest              # run the tests
uv run ruff check          # lint
uv run ruff format         # format
uv run ty check ./src      # type-check
pre-commit install         # enable the git hooks (optional)

Metadata

Release files for standcloud-integration 0.1.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 standcloud-integration 0.1.0
File Size Uploaded Provenance
standcloud_integration-0.1.0.tar.gz 59.1 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for standcloud-integration 0.1.0
File Interpreter ABI Platform
standcloud_integration-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 79.9 kB

Release files / standcloud_integration-0.1.0.tar.gz

Download URL standcloud_integration-0.1.0.tar.gz
Size 59.1 kB
Tags Source
SHA-256 checksum
How to use checksums
f11a9a555255df38dccd9a0ee2bcff2414df8f34c0e678cfb15a6830b1cdaf50
BLAKE2b-256 checksum
How to use checksums
a55116838df155fa056f442e152b55c6c1bfd63485559dbb420485bed0980252
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 9, 2026.

Transparency log

Release files / standcloud_integration-0.1.0-py3-none-any.whl

Download URL standcloud_integration-0.1.0-py3-none-any.whl
Size 20.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c6ea9a39aa7cee1a91f2372184a34f44bc832adcbcb3f936e625b6ca771e2860
BLAKE2b-256 checksum
How to use checksums
35278828b6088654a86d19a8610094c7b55464017f7453a92ead7d7f619289ee
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 9, 2026.

Transparency log

Security for standcloud-integration 0.1.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.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for standcloud_integration-0.1.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 9, 2026.

Transparency log

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.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files Full provenance

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