#!/usr/bin/env python3

import os
from farpy_client import FarpyClient, FarpyError

client = FarpyClient(os.environ["FARPY_API_KEY"])

capabilities = client.capabilities()
pricing = client.pricing()
limits = client.limits()

print("capabilities:", capabilities)
print("pricing:", pricing)
print("limits:", limits)

try:
    result = client.render(
        "scene.blend",
        "render-result.zip",
        webhook_url=os.environ["FARPY_WEBHOOK_URL"],
        idempotency_key=os.environ["FARPY_IDEMPOTENCY_KEY"],
        frame_start=1,
        frame_end=1,
        overall_timeout=1800.0,
        maximum_retries=4,
        overwrite=False,
    )
    print({
        "job_id": result["job_id"],
        "state": result["state"],
        "artifact_path": result["artifact_path"],
        "receipt": result["receipt"],
        "proof": result["proof"],
        "request_id": result["request_id"],
    })
except FarpyError as exc:
    print({
        "status": exc.status,
        "code": exc.code,
        "message": exc.message,
        "retryable": exc.retryable,
        "suggested_action": exc.suggested_action,
        "request_id": exc.request_id,
    })
    raise
