Spaces:
Runtime error
Runtime error
File size: 1,025 Bytes
d82cf6a |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
"""
Responsabilities
Handles accumulation of debug events while playing media_player and saves
when sample's play ends.
"""
import time
import pickle
class BufferedLogger:
def __init__(self, outfile):
self.outfile = outfile
self.log_entries = []
self.start_wall_time = None
# (fn, args)
self.on_close_callback_info = None
def init_wall_time(self):
self.start_wall_time = time.perf_counter()
def log(self, *args):
self.log_entries.append(args)
def rebased_wall_time(self):
return time.perf_counter() - self.start_wall_time
def close(self):
self.save_log_entries_as_pickle()
if self.on_close_callback_info is not None:
fn, args = self.on_close_callback_info
fn(self.log_entries, *args)
def save_log_entries_as_pickle(self):
with open(self.outfile, "wb") as f:
pickle.dump(self.log_entries, f)
def clear(self):
self.log_entries = []
logger = None
|