from apscheduler.schedulers.background import BackgroundScheduler from huggingface_hub import HfApi from huggingface_hub.utils import RepositoryNotFoundError class RestartScheduler: def __init__(self, space_id: str, interval_minutes: int, hf_token: str | None): api = HfApi(token=hf_token) if api.get_token_permission() != 'write': raise ValueError('The HF token must have write permission.') try: api.space_info(repo_id=space_id) except RepositoryNotFoundError: raise ValueError('The Space ID does not exist.') if interval_minutes <= 0: raise ValueError('The interval must be positive.') self.scheduler = BackgroundScheduler() self.scheduler.add_job(func=lambda: api.restart_space(space_id), trigger='interval', seconds=60 * interval_minutes) def start(self): self.scheduler.start()