Skip to main content

Python SDK for the Arga API

Project description

Arga Python SDK

Typed Python client for the Arga API. Supports both synchronous and asynchronous usage.

Installation

Install with uv:

uv add arga-py-sdk

Or, if you're using pip:

pip install arga-py-sdk

Quick Start

from arga_sdk import Arga

client = Arga(api_key="arga_...")

# Create a URL run with service twins
run = client.runs.create_url_run(
    url="https://staging.myapp.com",
    twins=["stripe", "slack"],
)
print(run.run_id, run.status)

# Poll until the run completes
detail = client.runs.wait(run.run_id, timeout=300)
print(detail.status, detail.results_json)

# Stream live results
for event in client.runs.stream_results(run.run_id):
    print(event)

# Cancel a run
client.runs.cancel(run.run_id)

Async Usage

import asyncio
from arga_sdk import AsyncArga

async def main():
    client = AsyncArga(api_key="arga_...")

    run = await client.runs.create_url_run(url="https://staging.myapp.com")

    # Stream results
    async for event in client.runs.stream_results(run.run_id):
        print(event)

    # Wait for completion
    detail = await client.runs.wait(run.run_id)
    print(detail.status)

    await client.close()

asyncio.run(main())

Context Manager

Both clients support context managers to ensure proper cleanup:

with Arga(api_key="arga_...") as client:
    run = client.runs.create_url_run(url="https://staging.myapp.com")

async with AsyncArga(api_key="arga_...") as client:
    run = await client.runs.create_url_run(url="https://staging.myapp.com")

Examples

Runnable examples live in examples/. They are the best way to see realistic customer workflows end to end.

Before running any example, set your API key:

export ARGA_API_KEY=arga_your_api_key

If you need a non-default API environment, you can also set:

export ARGA_BASE_URL=https://app.argalabs.com

Start with the staging validation example:

uv run python examples/validate_staging_release.py

Each example is a small workflow script with an editable config block near the top of the file. Open the file, adjust the business-specific values, then run it with uv.

Choose an example based on the customer job you want to model:

See examples/README.md for exact commands, required edits, and expected output for each example.

Available Methods

Runs

Method Description
client.runs.create_url_run(url, ...) Test a live URL with browser validation
client.runs.create_pr_run(repo, ...) Validate code changes from a PR or branch
client.runs.create_agent_run(...) Deploy an autonomous agent for exploration
client.runs.get(run_id) Get full run details
client.runs.stream_results(run_id) Stream SSE result events
client.runs.cancel(run_id) Cancel a running run
client.runs.wait(run_id, ...) Poll until terminal status

Twins

Method Description
client.twins.list() List available service twins
client.twins.provision(twins, ...) Provision twin instances
client.twins.get_status(run_id) Get provisioning status
client.twins.extend(run_id, ...) Extend twin TTL

Scenarios

Method Description
client.scenarios.create(name, ...) Create a test scenario
client.scenarios.list(...) List scenarios (with optional filters)
client.scenarios.get(scenario_id) Get a scenario by ID
client.scenarios.ensure_twin_environment(scenario_id, ...) Create or return permanent twin URLs for a scenario
client.scenarios.get_twin_environment(scenario_id) Get permanent twin environment status and URLs
client.scenarios.reseed_twin_environment(scenario_id) Reseed a permanent twin environment from the scenario
client.scenarios.delete_twin_environment(scenario_id) Tear down a permanent twin environment
client.scenarios.list_twin_environments() List permanent scenario twin environments

Error Handling

from arga_sdk import Arga, ArgaAPIError, ArgaError

client = Arga(api_key="arga_...")

try:
    run = client.runs.get("nonexistent-id")
except ArgaAPIError as e:
    print(e.status_code)  # e.g. 404
    print(e.message)
except ArgaError as e:
    print(e.message)

Documentation

Full API documentation is available at docs.argalabs.com.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

arga_py_sdk-0.1.3.tar.gz (38.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

arga_py_sdk-0.1.3-py3-none-any.whl (8.9 kB view details)

Uploaded Python 3

File details

Details for the file arga_py_sdk-0.1.3.tar.gz.

File metadata

  • Download URL: arga_py_sdk-0.1.3.tar.gz
  • Upload date:
  • Size: 38.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for arga_py_sdk-0.1.3.tar.gz
Algorithm Hash digest
SHA256 447fe79454d97cf3d8359b0c3e9823479476d725c56435302aacf2739b67c267
MD5 922a1381bd817c24b30a84f3e53335b6
BLAKE2b-256 cd472606ceb8db659100e63bc4443a0c6786ce7e637c590f684e3a2cb432b2d9

See more details on using hashes here.

Provenance

The following attestation bundles were made for arga_py_sdk-0.1.3.tar.gz:

Publisher: publish.yml on ArgaLabs/arga-python-sdk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file arga_py_sdk-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: arga_py_sdk-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 8.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for arga_py_sdk-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 a93547c56ab8a5656c9ea325127bc5299d36687f603a3e4fde2363143fb12665
MD5 b3232a1aef157f45c0850ccefe635db4
BLAKE2b-256 de88d061e1b69b3e1e9020800a54b20f219ca8fc1d891c1aae547970143d5b4b

See more details on using hashes here.

Provenance

The following attestation bundles were made for arga_py_sdk-0.1.3-py3-none-any.whl:

Publisher: publish.yml on ArgaLabs/arga-python-sdk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page