plexus.dashboard.api.models.task module

class plexus.dashboard.api.models.task.Task(id: str, accountId: str, type: str, status: str, target: str, command: str, description: str | None = None, metadata: Dict | None = None, createdAt: datetime.datetime | None = None, updatedAt: datetime.datetime | None = None, startedAt: datetime.datetime | None = None, completedAt: datetime.datetime | None = None, estimatedCompletionAt: datetime.datetime | None = None, errorMessage: str | None = None, errorDetails: Dict | None = None, stdout: str | None = None, stderr: str | None = None, currentStageId: str | None = None, workerNodeId: str | None = None, dispatchStatus: str | None = None, scorecardId: str | None = None, scoreId: str | None = None, client: plexus.dashboard.api.client._BaseAPIClient | None = None)

Bases: BaseModel

__init__(id: str, accountId: str, type: str, status: str, target: str, command: str, description: str | None = None, metadata: Dict | None = None, createdAt: datetime | None = None, updatedAt: datetime | None = None, startedAt: datetime | None = None, completedAt: datetime | None = None, estimatedCompletionAt: datetime | None = None, errorMessage: str | None = None, errorDetails: Dict | None = None, stdout: str | None = None, stderr: str | None = None, currentStageId: str | None = None, workerNodeId: str | None = None, dispatchStatus: str | None = None, scorecardId: str | None = None, scoreId: str | None = None, client: _BaseAPIClient | None = None)
accountId: str
acquire_lock(timeout=1800)
advance_stage(stage: TaskStage) None

Update the task’s current stage.

command: str
complete_processing()

Complete processing of the task.

completedAt: datetime | None = None
classmethod create(client, type: str, target: str, command: str, **kwargs) Task

Create a new task record.

Args:

client: The API client instance type: Task type target: Task target command: Command string **kwargs: Additional task fields

Returns:

Task: The created task instance

create_stage(name: str, order: int, status: str = 'PENDING', status_message: str | None = None, total_items: int | None = None, estimated_completion_at: str | None = None, **kwargs) TaskStage

Create a new TaskStage for this Task.

createdAt: datetime | None = None
currentStageId: str | None = None
description: str | None = None
dispatchStatus: str | None = None
errorDetails: Dict | None = None
errorMessage: str | None = None
estimatedCompletionAt: datetime | None = None
fail_current_stage(error_message: str, error_details: Dict | None = None, current_items: int | None = None) None

Mark the current running stage as failed with error message and progress.

Args:

error_message: The error message to display error_details: Optional dictionary of additional error details current_items: The number of items processed when the failure occurred

fail_processing(error_message: str, error_details: Dict | None = None, current_items: int | None = None) None

Mark the task as failed with error information.

Args:

error_message: The error message to display error_details: Optional dictionary of additional error details current_items: The number of items processed when the failure occurred

classmethod fields() str

Return the GraphQL fields to query for this model

classmethod from_dict(data: Dict[str, Any], client: _BaseAPIClient) Task

Create an instance from a dictionary of data

classmethod get_by_id(id: str, client: _BaseAPIClient) Task
get_stages() List[TaskStage]

Get all stages for this task, handling pagination properly.

classmethod list_tasks(client: _BaseAPIClient, updated_at: str = '', limit: int = 100) List[Task]

List tasks using the listTaskByUpdatedAt query for proper pagination.

Args:

client: The API client instance updated_at: The updatedAt timestamp to start from (empty string for most recent) limit: Maximum number of tasks to return per page

Returns:

List[Task]: List of Task instances

lock_expires: datetime | None = None
lock_token: str | None = None
metadata: Dict | None = None
release_lock()
scoreId: str | None = None
scorecardId: str | None = None
start_processing() None

Mark the task as started.

startedAt: datetime | None = None
status: str
stderr: str | None = None
stdout: str | None = None
target: str
type: str
update(**kwargs) Task
update_progress(current_items: int, total_items: int, stage_configs: Dict[str, Dict], estimated_completion_at: datetime | None = None) List[TaskStage]

Update task progress and stage information.

updatedAt: datetime | None = None
workerNodeId: str | None = None