from concurrent.futures import ThreadPoolExecutor from utils.local import get_local_metrics class ThreadPoolWithLocalExecutor(ThreadPoolExecutor): def submit(self, fn, *args, **kwargs): metrics = get_local_metrics() kwargs["metrics"] = metrics return super().submit(fn, *args, **kwargs)