diff options
| author | Karan Jayachandra <mail@karanjayachandra.com> | 2024-10-25 18:03:18 +0200 |
|---|---|---|
| committer | Karan Jayachandra <mail@karanjayachandra.com> | 2024-10-25 18:03:18 +0200 |
| commit | 60a489cfb3fb7a12a06212c2c7ed3c05cd0757b5 (patch) | |
| tree | 8bf7b9cc50d8b133fe0666b0bff7fa143cd095a5 /utilities.py | |
| parent | 2b18e0929a0b3e083cbe9e5e8ffd421ed8d17e52 (diff) | |
Moved the files into a folder structure
Diffstat (limited to 'utilities.py')
| -rw-r--r-- | utilities.py | 58 |
1 files changed, 0 insertions, 58 deletions
diff --git a/utilities.py b/utilities.py deleted file mode 100644 index 7a9d55d..0000000 --- a/utilities.py +++ /dev/null @@ -1,58 +0,0 @@ -from os import getenv -from time import time -from typing import Tuple -from random import shuffle -from dataclasses import dataclass - -SECS_IN_MIN = 60 - - -def _shuffle_two_lists(a: list, b: list) -> Tuple[list, list]: - indices = list(range(len(a))) - shuffle(indices) - a = [a[index] for index in indices] - b = [b[index] for index in indices] - return a, b - - -def _pick_from_list_after_sorting_other(a: list, b: list[int]) -> list: - indices = [i[0] for i in sorted(enumerate(b), key=lambda x: x[1])] - return [a[index] for index in indices] - - -def sample_list(indices: list, cost: list[int], count: int = None) -> list: - if count is None: - count = len(indices) - indices, cost = _shuffle_two_lists(indices, cost) - indices = _pick_from_list_after_sorting_other(indices, cost)[:count] - return indices - - -@dataclass -class Timer: - ref: float = None - running: bool = False - max_mins: float = float(getenv("TIMER")) - default: str = ("00", "00") - - def __post_init__(self): - self.max_seconds = self.max_mins * SECS_IN_MIN - - def start(self): - self.ref = time() + self.max_seconds - self.running = True - - def stop(self): - self.ref = None - self.running = False - - def get(self): - if not self.running: - return self.default - total_seconds = self.ref - time() - if total_seconds < 0: - self.stop() - return self.default - mins = f"{int(total_seconds // SECS_IN_MIN):02d}" - secs = f"{int(total_seconds % SECS_IN_MIN):02d}" - return mins, secs |
