siro1's picture
siro1 HF Staff
Feat: claude stuff but works
0339ef7
raw
history blame
1.19 kB
from dataclasses import dataclass, field
from datetime import datetime
import json
@dataclass(frozen=True, slots=True)
class Result:
submission_name: str
submission_time: datetime
submission_score: float
user_id: str
rank: int
@classmethod
def from_dict(cls, data: dict) -> "Result":
return cls(
submission_name=data["submission_name"],
submission_time=datetime.fromisoformat(data["submission_time"]),
submission_score=data["submission_score"],
user_id=data["user_id"],
rank=data["rank"],
)
@classmethod
def from_json(cls, json_path: str) -> "Result":
with open(json_path, "r") as f:
data = json.load(f)
return cls.from_dict(data)
def to_dict(self) -> dict:
return {
"filename": self.filename,
"score": self.score,
"user_name": self.user_name,
"created_at": self.created_at.isoformat(),
}
@dataclass
class LbData:
name: str
gpu: str
results: list[Result] = field(default_factory=list)
def add_result(self, result: Result):
self.results.append(result)