|
"""Pydantic data models and other dataclasses. This is the only file that uses Optional[] |
|
typing syntax instead of | None syntax to work with pydantic""" |
|
from enum import Enum, auto |
|
from typing import Any, Dict, List, Optional, Union |
|
|
|
from pydantic import BaseModel |
|
from typing_extensions import Literal |
|
|
|
|
|
class PredictBody(BaseModel): |
|
session_hash: Optional[str] = None |
|
event_id: Optional[str] = None |
|
data: List[Any] |
|
event_data: Optional[Any] = None |
|
fn_index: Optional[int] = None |
|
batched: Optional[ |
|
bool |
|
] = False |
|
request: Optional[ |
|
Union[Dict, List[Dict]] |
|
] = None |
|
|
|
|
|
class ResetBody(BaseModel): |
|
session_hash: str |
|
fn_index: int |
|
|
|
|
|
class InterfaceTypes(Enum): |
|
STANDARD = auto() |
|
INPUT_ONLY = auto() |
|
OUTPUT_ONLY = auto() |
|
UNIFIED = auto() |
|
|
|
|
|
class Estimation(BaseModel): |
|
msg: Optional[str] = "estimation" |
|
rank: Optional[int] = None |
|
queue_size: int |
|
avg_event_process_time: Optional[float] = None |
|
avg_event_concurrent_process_time: Optional[float] = None |
|
rank_eta: Optional[float] = None |
|
queue_eta: float |
|
|
|
|
|
class ProgressUnit(BaseModel): |
|
index: Optional[int] = None |
|
length: Optional[int] = None |
|
unit: Optional[str] = None |
|
progress: Optional[float] = None |
|
desc: Optional[str] = None |
|
|
|
|
|
class Progress(BaseModel): |
|
msg: str = "progress" |
|
progress_data: List[ProgressUnit] = [] |
|
|
|
|
|
class LogMessage(BaseModel): |
|
msg: str = "log" |
|
log: str |
|
level: Literal["info", "warning"] |
|
|