from scraper.job import * from datetime import datetime _jobs: list[Job] = [] def _clean_jobs(): global _jobs _jobs = list(filter(lambda j: datetime.fromtimestamp(j.deadline) > datetime.now(), _jobs)) def working_on(block_start: int) -> bool: global _jobs _clean_jobs() for job in _jobs: if job.start <= block_start and job.start + job.size > block_start: return True return False def assign_job(block_start: int, block_size: int) -> Job: global _jobs if working_on(block_start): raise Exception("Job already assigned") job = Job(block_start, block_size) _jobs.append(job) return job def jobs() -> Job: global _jobs _clean_jobs() for job in _jobs: yield job def any_job() -> bool: global _jobs _clean_jobs() return bool(len(_jobs))