Client

class dazpy.DazClient(host='127.0.0.1', port=18811, token=None, timeout=30.0)[source]

Bases: object

HTTP client for the DAZ Studio Script Server.

Handles authentication, request serialisation, and response mapping for all server endpoints. The token is loaded automatically from ~/.daz3d/dazscriptserver_token.txt when token is None.

Parameters:
  • host (str) – Hostname or IP address of the Script Server.

  • port (int) – Listening port of the Script Server.

  • token (str | None) – API token. Pass an empty string to disable authentication or None to auto-load from the default token file.

  • timeout (float) – Per-request HTTP timeout in seconds.

Example:

client = DazClient()                          # default 127.0.0.1:18811
client = DazClient(token="my-secret-token")   # explicit token
execute(script, args=None)[source]

Execute a DazScript string synchronously.

Parameters:
  • script (str) – DazScript source code to execute.

  • args (object) – Optional value passed into the script as getArguments()[0]. Must be JSON-serialisable.

Returns:

The execution result containing the script return value and any console output.

Raises:
Return type:

ExecutionResult

execute_file(script_file, args=None)[source]

Execute a .dsa script file that resides on the DAZ Studio host.

Parameters:
  • script_file (str) – Absolute path to the .dsa file on the server host.

  • args (object) – Optional argument passed to the script.

Returns:

The execution result.

Raises:
Return type:

ExecutionResult

execute_async_submit(script, args=None)[source]

Submit a script for asynchronous execution and return immediately.

Parameters:
  • script (str) – DazScript source code.

  • args (object) – Optional argument for the script.

Returns:

The server-assigned request_id string. Use it with get_request_status() or get_request_result() to poll for the outcome.

Raises:
Return type:

str

get_request_status(request_id)[source]

Return the current status of an async request.

Parameters:

request_id (str) – The ID returned by execute_async_submit().

Returns:

"queued", "running", "completed", "failed", "cancelled", or "not_found".

Return type:

A dict with at least a "status" key. Possible values

get_request_result(request_id, wait=False, wait_timeout=30)[source]

Fetch the result of a completed async request.

Parameters:
  • request_id (str) – The ID returned by execute_async_submit().

  • wait (bool) – If True, the server will long-poll until the request completes or wait_timeout is reached.

  • wait_timeout (int) – Maximum number of seconds the server should wait before returning (only relevant when wait is True).

Returns:

A dict containing success, result, output, error, duration_ms, and status keys.

Return type:

dict

cancel_request(request_id)[source]

Cancel a queued or running async request.

Parameters:

request_id (str) – The ID returned by execute_async_submit().

Returns:

True if the server confirmed cancellation, False otherwise.

Return type:

bool

status()[source]

Return the server status dict from GET /status.

health()[source]

Return the health check dict from GET /health.

metrics()[source]

Return the metrics dict from GET /metrics.