Using the Python SDK

Authenticating Using Service Account Credentials

The example Python code shows how to authenticate the Arthur SDK using Service Account credentials.

import os

from scope_client.api_bindings import WorkspacesV1Api
from scope_client.api_bindings.api_client import ApiClient
from scope_client.auth import (
    ArthurOAuthSessionAPIConfiguration,
    ArthurOIDCMetadata,
    ArthurClientCredentialsAPISession,
)

ARTHUR_HOST = "https://platform.arthur.ai"
SERVICE_ACCOUNT_ID = os.environ["ARTHUR_CLIENT_ID"]
SERVICE_ACCOUNT_SECRET = os.environ["ARTHUR_CLIENT_SECRET"]

if __name__ == "__main__":
    sess = ArthurClientCredentialsAPISession(
        client_id=SERVICE_ACCOUNT_ID,
        client_secret=SERVICE_ACCOUNT_SECRET,
        metadata=ArthurOIDCMetadata(arthur_host=ARTHUR_HOST),
    )
    api_client = ApiClient(
        configuration=ArthurOAuthSessionAPIConfiguration(session=sess)
    )
    workspaces_client = WorkspacesV1Api(api_client)
    print(f"Workspaces: {[ws.name for ws in workspaces_client.get_workspaces().records]}")

Authenticating Using User Credentials

This example Python code shows how to authenticate the Arthur SDK using user credentials (email + password).

from scope_client.api_bindings import WorkspacesV1Api
from scope_client.api_bindings.api_client import ApiClient
from scope_client.auth import ArthurOAuthSessionAPIConfiguration, DeviceAuthorizer

ARTHUR_HOST = "https://platform.arthur.ai"


if __name__ == "__main__":
    sess = DeviceAuthorizer(arthur_host=ARTHUR_HOST).authorize()
    api_client = ApiClient(
        configuration=ArthurOAuthSessionAPIConfiguration(session=sess)
    )
    workspaces_client = WorkspacesV1Api(api_client)
    print(f"Workspaces: {[ws.name for ws in workspaces_client.get_workspaces().records]}")