# coding=utf-8 """ @Time :2026/6/24 @Author :tao.chen """ from datetime import datetime from pydantic import BaseModel, Field class Job(BaseModel): job_id: str application_id: str script_path: str queue: str submit_time: datetime connection: str class JobStatus(BaseModel): application_id: str state: str raw: str = Field(default="") class SubmitResult(BaseModel): job_id: str application_id: str tracking_url: str | None = None class Connection(BaseModel): name: str master: str deploy_mode: str = "cluster" yarn_rm_url: str | None = None spark_conf: dict[str, str] = Field(default_factory=dict) class PendingSubmission(BaseModel): pending_id: str connection: str master: str deploy_mode: str script_path: str queue: str executor_memory: str executor_cores: int num_executors: int spark_conf: dict[str, str] = Field(default_factory=dict) created_at: datetime status: str = "PENDING" # PENDING | SUBMITTED | CANCELLED | FAILED error: str | None = None job_id: str | None = None application_id: str | None = None