pbar have unique id

This commit is contained in:
Benoît Sierro
2021-07-12 18:15:36 +02:00
parent 21e70e2000
commit ab5e7dde9a
2 changed files with 9 additions and 1 deletions

View File

@@ -24,7 +24,12 @@ def fingerprint(params: BareParams):
def plot_all(sim_dir: Path, limits: list[str], **opts): def plot_all(sim_dir: Path, limits: list[str], **opts):
for k, v in opts.items():
if k in ["skip"]:
opts[k] = int(v)
dir_list = list(p for p in sim_dir.glob("*") if p.is_dir()) dir_list = list(p for p in sim_dir.glob("*") if p.is_dir())
if len(dir_list) == 0:
dir_list = [sim_dir]
limits = [ limits = [
tuple(func(el) for func, el in zip([float, float, str], lim.split(","))) for lim in limits tuple(func(el) for func, el in zip([float, float, str], lim.split(","))) for lim in limits
] ]

View File

@@ -17,6 +17,7 @@ from pathlib import Path
from typing import Any, Dict, Iterable, Iterator, List, Tuple, TypeVar, Union from typing import Any, Dict, Iterable, Iterator, List, Tuple, TypeVar, Union
import numpy as np import numpy as np
import random
from tqdm import tqdm from tqdm import tqdm
@@ -38,6 +39,8 @@ class PBars:
worker_kwargs=None, worker_kwargs=None,
) -> "PBars": ) -> "PBars":
self.id = random.randint(100000, 999999)
if isinstance(task, abc.Iterable): if isinstance(task, abc.Iterable):
self.iterator: Iterable[T_] = iter(task) self.iterator: Iterable[T_] = iter(task)
self.num_tot: int = len(task) self.num_tot: int = len(task)
@@ -63,7 +66,7 @@ class PBars:
if "desc" in kwargs: if "desc" in kwargs:
kwargs["desc"] = kwargs["desc"].format(worker_id=i) kwargs["desc"] = kwargs["desc"].format(worker_id=i)
self.append(tqdm(position=i, ncols=100, ascii=False, **kwargs)) self.append(tqdm(position=i, ncols=100, ascii=False, **kwargs))
self.print_path = Path("progress " + self.pbars[0].desc).resolve() self.print_path = Path(f"progress {self.pbars[0].desc} {self.id}").resolve()
self.close_ev = threading.Event() self.close_ev = threading.Event()
if "file" in self.policy: if "file" in self.policy:
self.thread = threading.Thread(target=self.print_worker, daemon=True) self.thread = threading.Thread(target=self.print_worker, daemon=True)