in mapillary_tools/upload.py [0:0]
def _setup_api_stats(emitter: uploader.EventEmitter):
all_stats: T.List[_APIStats] = []
@emitter.on("upload_start")
def collect_start_time(payload: _APIStats) -> None:
payload["upload_start_time"] = time.time()
payload["upload_total_time"] = 0
@emitter.on("upload_fetch_offset")
def collect_restart_time(payload: _APIStats) -> None:
payload["upload_last_restart_time"] = time.time()
payload["upload_first_offset"] = min(
payload["offset"], payload.get("upload_first_offset", payload["offset"])
)
@emitter.on("upload_interrupted")
def collect_interrupted(payload: _APIStats):
# could be None if it failed to fetch offset
restart_time = payload.get("upload_last_restart_time")
if restart_time is not None:
payload["upload_total_time"] += time.time() - restart_time
# reset the restart time
del payload["upload_last_restart_time"]
@emitter.on("upload_end")
def collect_end_time(payload: _APIStats) -> None:
now = time.time()
payload["upload_end_time"] = now
payload["upload_total_time"] += now - payload["upload_last_restart_time"]
all_stats.append(payload)
return all_stats