github-actions
Sync backend from GitHub 47e8067
5f7afef
Raw History Blame Contribute Delete
1.66 kB
"""Data models for CodeStar Judge API and statistics."""
from __future__ import annotations
from enum import Enum
from typing import Any, Dict, List, Optional
from pydantic import BaseModel, Field
class JudgeTaskStatus(str, Enum):
QUEUED = "queued"
RUNNING = "running"
WAKING_UP = "waking_up"
COMPLETED = "completed"
NETWORK_FAILED = "network_failed"
class AsyncJudgeRequest(BaseModel):
problem_slug: str = Field(..., max_length=128)
code: str = Field(..., max_length=65536)
custom_testcase: Optional[str] = Field(None, max_length=16384)
is_test: bool = False
class AsyncJudgeSubmitResponse(BaseModel):
task_id: str
status: str = "queued"
created_at: str
class AsyncJudgeResult(BaseModel):
status: str
passed: int
total: int
execution_time_ms: float
peak_memory_mb: float
beat_time_percent: Optional[float] = None
beat_memory_percent: Optional[float] = None
message: str
passed_count: Optional[int] = None
total_count: Optional[int] = None
beats_runtime_pct: Optional[float] = None
beats_memory_pct: Optional[float] = None
cases: Optional[List[Dict[str, Any]]] = None
stdout: Optional[str] = None
class AsyncJudgeTaskResponse(BaseModel):
task_id: str
status: str
result: Optional[Dict[str, Any]] = None
error: Optional[str] = None
class ProblemStats(BaseModel):
slug: str
total_submissions: int
accepted_submissions: int
pass_rate: Optional[float] = None
has_sufficient_data: bool
display_pass_rate: str
execution_time_p50_ms: Optional[float] = None
peak_memory_p50_mb: Optional[float] = None