28 lines
784 B
Python

import os
from dataclasses import dataclass
from typing import Optional
@dataclass
class BeakerState:
job_id: Optional[str] = None
job_kind: Optional[str] = None
task_id: Optional[str] = None
experiment_id: Optional[str] = None
replica_rank: Optional[str] = None
leader_replica_hostname: Optional[str] = None
leader_replica_node_id: Optional[str] = None
user_id: Optional[str] = None
def __post_init__(self):
for key, value in os.environ.items():
if not key.startswith("BEAKER_"):
continue
setattr(self, key.lstrip("BEAKER_").lower(), value)
@property
def url(self) -> Optional[str]:
if self.job_id:
return f"https://beaker.org/jobs/{self.job_id}"
return None