GitHub source

evo.compute.client.JobClient

Client for managing a submitted compute task (a job).

id property

id: UUID

The job id.

topic property

topic: str

The topic of the task.

task property

task: str

The task.

url property

url: str

The status URL of the job.

__init__

__init__(
    connector: APIConnector,
    org_id: UUID,
    topic: str,
    task: str,
    job_id: UUID,
    result_type: type[T_Result] = dict,
    preview: bool = False,
) -> None

Parameters:

Name Type Description Default
connector APIConnector

The API connector to use.

required
org_id UUID

The organization ID.

required
topic str

The topic of the task.

required
task str

The task to be executed.

required
job_id UUID

The job ID.

required
result_type type[T_Result]

The type to validate the result against.

dict
preview bool

Whether to use preview mode and include necessary header information.

False

from_url staticmethod

from_url(
    connector: APIConnector, url: str, result_type: type[T_Result] = dict, preview: bool = False
) -> JobClient[T_Result]

Create a job client from a status URL.

The URL hostname must match the connector base URL.

Parameters:

Name Type Description Default
connector APIConnector

The API connector to use.

required
url str

The status URL of a submitted job.

required
result_type type[T_Result]

The type to validate the result against.

dict
preview bool

Whether to use preview mode and include necessary header information.

False

Returns:

Type Description
JobClient[T_Result]

A client for managing the referenced job.

submit async staticmethod

submit(
    connector: APIConnector,
    org_id: UUID,
    topic: str,
    task: str,
    parameters: Mapping[str, Any],
    result_type: type[T_Result] = dict,
    preview: bool = False,
) -> JobClient[T_Result]

Trigger an asynchronous task within a specific topic with the given parameters.

Parameters:

Name Type Description Default
connector APIConnector

The API connector to use.

required
topic str

The topic of the task.

required
task str

The task to be executed.

required
parameters Mapping[str, Any]

The parameters for the task.

required
result_type type[T_Result]

The type to validate the result against.

dict
preview bool

Whether to use preview mode and include necessary header information.

False

Returns:

Type Description
JobClient[T_Result]

The job that was created.

Raises:

Type Description
UnknownResponseError

If the Location header is missing or invalid.

get_status async

get_status() -> JobProgress

Get the status of the job.

Returns:

Type Description
JobProgress

The job progress.

get_results async

get_results() -> T_Result

Get the results of the job.

Returns:

Type Description
T_Result

The results.

Raises:

Type Description
UnknownResponseError

If the response or results fail validation.

JobPendingError

If the job is still pending.

JobError

If the job failed.

cancel async

cancel() -> None

Cancel the job.

wait_for_results async

wait_for_results(
    polling_interval_seconds: float = 0.5, retry: Retry | None = None, fb: IFeedback = NoFeedback
) -> T_Result

Wait for the job to complete and return the results.

Parameters:

Name Type Description Default
polling_interval_seconds float

The interval in seconds between status checks.

0.5
retry Retry | None

A Retry object with a wait strategy. If None, a default Retry is created.

None
fb IFeedback

The feedback object to use.

NoFeedback

Returns:

Type Description
T_Result

The results.

Raises:

Type Description
UnknownResponseError

If the response or results fail validation.

JobPendingError

If the job is still pending.

JobError

If the job failed.